Middle+
Kuidas seadistaksite jälgimise 200 serveri jaoks? Milliseid lähenemisviise ja tööriistu kasutaksite ning kuidas kujundaksite jälgimissüsteemi?
sobes.tech AI
Vastus AI-lt
200 serveri jälgimiseks arendaksin mahtu ja usaldusväärset süsteemi, mis hõlmab metrikkide ja logide kogumist, salvestamist, analüüsi ja visualiseerimist:
Lähendid:
- Agent-põhine ja agentivaba: Kasutaksin kombinatsiooni. Agent-põhine — sügava süsteemimetrika kogumise jaoks (CPU, RAM, ketas, võrk), agentivaba — teenuste ja portide kättesaadavuse kontrollimiseks (ping, curl).
- Keskne jälgimine: Kõik andmed kogutakse ja töödeldakse keskse süsteemi kaudu.
- Automatiseerimine: Kasutaksin automatiseerimisvahendeid agentide paigaldamiseks, konfiguratsioonide seadistamiseks ja armatuurlaudade loomiseks.
- Hoiatusstrateegia: Seadistaksin selged reeglid, eskaleerimise ja teavitustööriistade (Slack, PagerDuty) integratsiooni.
- Logide kogumine: Keskne logide kogumine analüüsiks ja probleemide lahendamiseks.
- Visualiseerimine: Informatiivsed armatuurlaud kiireks süsteemi seisundi ülevaatamiseks.
Tööriistad:
- Metrikkide kogumine: Prometheus (eksportijad: node_exporter — hostidele, blackbox_exporter — kättesaadavuse kontrolliks).
- Metrikkide salvestamine: Prometheus (kohalikult) ja Thanos või VictoriaMetrics — pikaajaline salvestus ja skaleerimine.
- Logide kogumine: Fluentd või Filebeat — kogumiseks, Kafka või RabbitMQ (valikuline) — buferiseerimiseks.
- Logide salvestamine: Elasticsearch.
- Visualiseerimine: Grafana — metrikkide ja logide visualiseerimiseks.
- Hoiatused: Alertmanager (integreeritud Prometheus-iga), Slack, PagerDuty.
- Automatiseerimine: Ansible või Puppet — agentide paigaldamiseks ja konfiguratsioonide seadistamiseks.
- Orkestreerimine (valikuline, kuid soovitatav): Kubernetes — jälgimisketi paigaldamiseks.
Süsteemi projekteerimine:
-
Arhitektuur:
- Mitmed
node_exportereksemplarid serverites. - Üks või mitu replikatsiooniga Prometheus serverit (kasutades Thanos Receiver või VictoriaMetrics VMAgent) andmete kogumiseks.
- Thanos / VictoriaMetrics — agregatsiooniks, pikaajaliseks salvestamiseks ja päringuteks.
- Ühtne Elasticsearch klaster logide salvestamiseks.
- Armatuurlaudklaster visualiseerimiseks.
- Üks või mitu Alertmanager näidet.
- Fluentd / Filebeat agentid serverites logide kogumiseks.
graph TD A[200 Serverit] -- node_exporter --> B(Prometheus Server) A -- Fluentd/Filebeat --> C(Kafka/RabbitMQ - Valikuline) C -- Fluentd/Logstash --> D(Elasticsearch Klaster) B -- Kaugjuhitav Kirjutamine --> E(Thanos/VictoriaMetrics) E -- Päring --> F(Grafana) D -- Päring --> F B -- Hoiatus --> G(Alertmanager) G -- Teavitus --> H(Slack/PagerDuty) - Mitmed
-
Metrikkide kogumise konfiguratsioon (Prometheus):
- Dünaamiline sihtkohtade avastamine (serverid) — kasutades teenuse avastamist (nt, Consul või Kubernetes) või staatilist konfiguratsiooni (Ansible kaudu hallatav):
- Kogumise intervallide seadistamine (
scrape_interval). - Sageli nõutavate metrikkide reeglite rakendamine (
recording rules).
# Prometheuse näidiskogumise konfiguratsioon scrape_configs: - job_name: 'node_exporter' # Dünaamiline avastamine või static_configs static_configs: - targets: ['server1:9100', 'server2:9100', ...] # metrics_path: /metrics # Vaikimisi väärtus -
Logide kogumise konfiguratsioon:
- Agentide (Fluentd või Filebeat) konfiguratsioonid — logifailide jälgimine ja saatmine keskpunkti.
- Logide analüüs agentide tasemel või saatmisel Elasticsearchi — andmete struktureerimine.
# Filebeat konfiguratsiooni näide (filebeat.yml) filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log - /var/log/syslog #-------------------------- Elasticsearch väljund --------------------------- output.elasticsearch: hosts: ["elasticsearch:9200"] -
Grafana seadistused:
- Andmeallikate lisamine (Prometheus, Elasticsearch).
- Armatuurlaudade loomine:
- Ülevaate armatuurlaud (Health Overview).
- Kategooriate kaupa armatuurlaud (CPU, Memory, Disk, Network).
- Konkreetsete teenuste/rakenduste armatuurlaud.
- Logide armatuurlaud.
- Muutujate mallide kasutamine — dünaamiline serverite/teenuste valik.
-
Hoiatussüsteemi seadistamine:
- Parameetrite määramine metrikkide põhjal.
- Hoiatusreeglite loomine Prometheus-is (või Alertmanager-is).
- Saajate konfiguratsioon — Alertmanager (integreerimine).
- Eskalatsioonipoliitika määramine (näiteks, esmalt teavitus Slackis, siis kõne PagerDuty kaudu).
# Prometheuse reeglite ja hoiatussüsteemi näide (rules.yml) # CPU kasutusprotsendi reegel — 5 minutit - record: instance:node_cpu_user_percent:rate5m expr: 100 - avg without (cpu)(rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100) # Hoiatusreegel: Kõrge CPU koormus (> 80%) - alert: HighCPULoad expr: instance:node_cpu_user_percent:rate5m > 80 for: 5m # oodata 5 minutit labels: severity: warning annotations: summary: "CPU koormus on kõrge {{ $labels.instance }}" description: "CPU koormus {{ $labels.instance }} — {{ $value }}%." -
Automatiseerimine:
- Kasutades Ansible playbook-e —
node_exporter, Fluentd/Filebeat paigaldamine ja konfiguratsioon.- Prometheus/Alertmanager/Grafana/Elasticsearch staki paigaldamine.
- Konfiguratsioonifailide haldamine (scrape configs, rules, dashboards).
- Kasutades Ansible playbook-e —
See oleks keeruline, skaleeritav ja paindlik jälgimissüsteem suure hulga serverite jaoks.