Middle+
Чӣ гуна шумо назорати 200 серверро танзим мекунед? Кадом усулҳо ва асбобҳоро истифода мебаред ва системаи назоратро чӣ гуна тарҳрезӣ мекунед?
sobes.tech AI
Ҷавоб аз AI
Барои мониторинг 200 сервер, манзур дорам системаи масштабшаванда ва боэътимод, ки дар бар мегирад ҷамъоварӣ, нигоҳдорӣ, таҳлил ва визуализатсияи метрикҳо ва логҳо.
Равишҳо:
- Agent-based vs Agentless: Ман комбинацияро истифода мебурдам. Agent-based барои ҷамъоварии амиқи метрикҳои системӣ (CPU, RAM, диск, шабака), agentless барои санҷиши дастрасии хизматрасониҳо ва портҳо (ping, curl).
- Мониторинги марказӣ: Ҳама маълумот дар системаи марказӣ ҷамъоварӣ ва коркард мешаванд.
- Автоматизатсия: Ман ба воситаи воситаҳои автоматизатсия барои паҳн кардани агентҳо, танзим ва сохтани dashboard-ҳо истифода мебурдам.
- Стратегия барои огоҳӣ: Ман системаи огоҳиро бо қоидаҳои равшан, эскалация ва ҳамгироӣ бо воситаҳои огоҳӣ (Slack, PagerDuty) танзим мекардам.
- Логгирӣ: Ҷамъоварии марказонидашудаи логҳо барои таҳлил ва ҳалли мушкилот.
- Визуализация: Dashboard-ҳои иттилоотӣ барои назарсанҷии зуд дар ҳолати системаи.
Воситаҳо:
- Ҷамъоварии метрикҳо: Prometheus (бо экспортерҳо: node_exporter барои серверҳо, blackbox_exporter барои санҷиши дастрасӣ).
- Нигоҳдории метрикҳо: Prometheus (ба маҳал), ва Thanos ё VictoriaMetrics барои нигоҳдории дарозмуддат ва масштабсозӣ.
- Ҷамъоварии логҳо: Fluentd ё Filebeat барои ҷамъоварӣ, Kafka ё RabbitMQ (ихтиёрӣ) барои буфергирӣ.
- Нигоҳдории логҳо: Elasticsearch.
- Визуализация: Grafana барои метрикҳо ва логҳо.
- Огоҳӣ: Alertmanager (ҳамгиро бо Prometheus), ҳамгиро бо Slack, PagerDuty.
- Автоматизатсия: Ansible ё Puppet барои паҳн кардани агентҳо ва танзим.
- Оркестратсия (ихтиёрӣ, аммо тавсияшаванда): Kubernetes барои паҳн кардани стеки мониторинг.
Тарҳрезии системаи мониторинг:
-
Моҳа:
- Миқдори нусхаҳои
node_exporterдар серверҳо. - Як ё чанд серверҳои репликаи Prometheus (бо истифода аз Thanos Receiver ё VictoriaMetrics VMAgent) барои ҷамъоварии маълумот.
- Thanos / VictoriaMetrics барои ҷамъбаст, нигоҳдории дарозмуддат ва пурсишҳо дар болои Prometheus.
- Як кластер Elasticsearch барои нигоҳдории логҳо.
- Кластер Grafana барои визуализатсия.
- Як ё чанд нусхаи Alertmanager.
- Агентҳои Fluentd / Filebeat дар серверҳо барои ҷамъоварии логҳо.
graph TD A[200 Server] -- node_exporter --> B(Prometheus Server) A -- Fluentd/Filebeat --> C(Kafka/RabbitMQ - Иловаӣ) C -- Fluentd/Logstash --> D(Elasticsearch Cluster) B -- Remote Write --> E(Thanos/VictoriaMetrics) E -- Query --> F(Grafana) D -- Query --> F B -- Alert --> G(Alertmanager) G -- Notify --> H(Slack/PagerDuty) - Миқдори нусхаҳои
-
Конфигуратсияи ҷамъоварии метрик (Prometheus):
- Динамикӣ муайян кардани ҳадафҳо (серверҳо) тавассути service discovery (масалан, бо истифода аз Consul ё Kubernetes) ё конфигуратсияҳои статикӣ (аз ҷониби Ansible идорашаванда).
- Танзимоти интервалҳои ҷамъоварӣ (
scrape_interval). - Истифодаи қоидаҳои сабт (
recording rules) барои ҷамъоварии метрикҳои зуд-зуд талабшаванда.
# Намунаи конфигуратсияи scrape барои Prometheus scrape_configs: - job_name: 'node_exporter' # Динамикӣ ё static_configs static_configs: - targets: ['server1:9100', 'server2:9100', ...] # metrics_path: /metrics # Қимати пешфарз -
Конфигуратсияи ҷамъоварии логҳо:
- Танзимоти агентҳо (Fluentd/Filebeat) барои мониторинг кардани лог-файлҳо ва фиристодани онҳо ба маркази асосӣ.
- Парсинг логҳо дар сатҳи агент ё пеш аз фиристодан ба Elasticsearch барои сохторӣ кардани маълумот.
# Намунаи конфигуратсияи Filebeat (filebeat.yml) filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log - /var/log/syslog #-------------------------- Output Elasticsearch --------------------------- output.elasticsearch: hosts: ["elasticsearch:9200"] -
Танзимоти Grafana:
- Илова кардани манбаъҳои маълумот (Prometheus, Elasticsearch).
- Эҷод кардани dashboard-ҳо:
- Dashboard-ҳои умумӣ (Health Overview).
- Dashboard-ҳо ба категорияҳо (CPU, хотира, диск, шабака).
- Dashboard-ҳо барои хизматрасониҳо/барномаҳои мушаххас.
- Dashboard-ҳо барои логҳо.
- Истифодаи тағйирёбандаҳои намунавӣ барои интихоби динамикӣ серверҳо/хизматрасониҳо.
-
Танзимоти огоҳӣ:
- Тарҳрезии ҳадди аққалҳо дар асоси метрикҳо.
- Эҷод кардани қоидаҳои огоҳӣ дар Prometheus (ё Alertmanager).
- Танзимоти қабулкунандагон дар Alertmanager (интегратсияҳо).
- Тарҳрезии сиёсати эскалация (масалан, аввал огоҳӣ дар Slack, сипас занг дар PagerDuty).
# Намунаи қоида барои сабт ва огоҳӣ дар Prometheus (rules.yml) # Қоида барои сабт: фоизи боркунии CPU барои 5 дақиқа - record: instance:node_cpu_user_percent:rate5m expr: 100 - avg without (cpu)(rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100) # Қоида барои огоҳӣ: боркунии баландии CPU (> 80%) - alert: HighCPULoad expr: instance:node_cpu_user_percent:rate5m > 80 for: 5m # интизор шавед 5 дақиқа пеш аз фаъол кардан labels: severity: warning annotations: summary: "Боркунии баландии CPU дар {{ $labels.instance }}" description: "Боркунии CPU дар {{ $labels.instance }} ба {{ $value }}% аст." -
Автоматизатсия:
- Истифодаи Ansible playbook-ҳо барои:
- Насб ва танзими
node_exporter, Fluentd/Filebeat. - Паҳн кардани стеки Prometheus/Alertmanager/Grafana/Elasticsearch.
- Идоракунии файлҳои конфигуратсия (scrape configs, rules, dashboards).
- Насб ва танзими
- Истифодаи Ansible playbook-ҳо барои:
Ин як равиши мураккаб, масштабшаванда ва чандир барои мониторинг кардани шумораи зиёди серверҳо мебошад.