Sobes.tech
Middle+

Чӣ гуна шумо назорати 200 серверро танзим мекунед? Кадом усулҳо ва асбобҳоро истифода мебаред ва системаи назоратро чӣ гуна тарҳрезӣ мекунед?

sobes.tech AI

Ҷавоб аз AI

Барои мониторинг 200 сервер, манзур дорам системаи масштабшаванда ва боэътимод, ки дар бар мегирад ҷамъоварӣ, нигоҳдорӣ, таҳлил ва визуализатсияи метрикҳо ва логҳо.

Равишҳо:

  1. Agent-based vs Agentless: Ман комбинацияро истифода мебурдам. Agent-based барои ҷамъоварии амиқи метрикҳои системӣ (CPU, RAM, диск, шабака), agentless барои санҷиши дастрасии хизматрасониҳо ва портҳо (ping, curl).
  2. Мониторинги марказӣ: Ҳама маълумот дар системаи марказӣ ҷамъоварӣ ва коркард мешаванд.
  3. Автоматизатсия: Ман ба воситаи воситаҳои автоматизатсия барои паҳн кардани агентҳо, танзим ва сохтани dashboard-ҳо истифода мебурдам.
  4. Стратегия барои огоҳӣ: Ман системаи огоҳиро бо қоидаҳои равшан, эскалация ва ҳамгироӣ бо воситаҳои огоҳӣ (Slack, PagerDuty) танзим мекардам.
  5. Логгирӣ: Ҷамъоварии марказонидашудаи логҳо барои таҳлил ва ҳалли мушкилот.
  6. Визуализация: Dashboard-ҳои иттилоотӣ барои назарсанҷии зуд дар ҳолати системаи.

Воситаҳо:

  • Ҷамъоварии метрикҳо: Prometheus (бо экспортерҳо: node_exporter барои серверҳо, blackbox_exporter барои санҷиши дастрасӣ).
  • Нигоҳдории метрикҳо: Prometheus (ба маҳал), ва Thanos ё VictoriaMetrics барои нигоҳдории дарозмуддат ва масштабсозӣ.
  • Ҷамъоварии логҳо: Fluentd ё Filebeat барои ҷамъоварӣ, Kafka ё RabbitMQ (ихтиёрӣ) барои буфергирӣ.
  • Нигоҳдории логҳо: Elasticsearch.
  • Визуализация: Grafana барои метрикҳо ва логҳо.
  • Огоҳӣ: Alertmanager (ҳамгиро бо Prometheus), ҳамгиро бо Slack, PagerDuty.
  • Автоматизатсия: Ansible ё Puppet барои паҳн кардани агентҳо ва танзим.
  • Оркестратсия (ихтиёрӣ, аммо тавсияшаванда): Kubernetes барои паҳн кардани стеки мониторинг.

Тарҳрезии системаи мониторинг:

  1. Моҳа:

    • Миқдори нусхаҳои 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)
    
  2. Конфигуратсияи ҷамъоварии метрик (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 # Қимати пешфарз
    
  3. Конфигуратсияи ҷамъоварии логҳо:

    • Танзимоти агентҳо (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"]
    
  4. Танзимоти Grafana:

    • Илова кардани манбаъҳои маълумот (Prometheus, Elasticsearch).
    • Эҷод кардани dashboard-ҳо:
      • Dashboard-ҳои умумӣ (Health Overview).
      • Dashboard-ҳо ба категорияҳо (CPU, хотира, диск, шабака).
      • Dashboard-ҳо барои хизматрасониҳо/барномаҳои мушаххас.
      • Dashboard-ҳо барои логҳо.
    • Истифодаи тағйирёбандаҳои намунавӣ барои интихоби динамикӣ серверҳо/хизматрасониҳо.
  5. Танзимоти огоҳӣ:

    • Тарҳрезии ҳадди аққалҳо дар асоси метрикҳо.
    • Эҷод кардани қоидаҳои огоҳӣ дар 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 }}% аст."
    
  6. Автоматизатсия:

    • Истифодаи Ansible playbook-ҳо барои:
      • Насб ва танзими node_exporter, Fluentd/Filebeat.
      • Паҳн кардани стеки Prometheus/Alertmanager/Grafana/Elasticsearch.
      • Идоракунии файлҳои конфигуратсия (scrape configs, rules, dashboards).

Ин як равиши мураккаб, масштабшаванда ва чандир барои мониторинг кардани шумораи зиёди серверҳо мебошад.