Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| software:monitoring [2025/11/18 18:25] – 192.168.1.159 | software:monitoring [2025/12/07 02:38] (текущий) – [Программные средства] mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | {{tag> | + | {{tag> |
| - | ====== | + | ====== |
| - | Fluentd, Fluentd Bit, Logstash и Promtail являются клиентами Loki, а Distributor и Ingester — компонентами Loki. | + | {{: |
| - | ===== Версии: | + | Мониторинг IT-инфраструктуры (ИТ-мониторинг) — это процесс постоянного сбора, обработки и анализа данных о состоянии элементов ИТ-среды: серверов, |
| - | + | ||
| - | * grafana/ | + | |
| - | * grafana/ | + | |
| - | * grafana/ | + | |
| - | ===== Настройки | + | * Минимизация времени простоя — быстрая реакция на проблемы (перезапуск служб, уведомление администраторов, |
| + | * Снижение операционных расходов — автоматизация контроля сети, серверов, | ||
| + | * Улучшение пользовательского опыта — стабильная работа систем влияет на удовлетворённость клиентов и сотрудников, | ||
| + | * Планирование развития инфраструктуры — анализ исторических данных и трендов позволяет прогнозировать будущие потребности в ресурсах и планировать развитие ИТ-инфраструктуры. | ||
| - | ==== [[ loki_config ]] ==== | + | ===== Программы ===== |
| - | <code yaml> | + | Grafana, Promtail, Loki, Prometheus, Fluent Bit, Fluentd, Kibana, Logstah, Elasticsearch, |
| - | auth_enabled: | + | |
| - | server: | + | ==== Рекомендации ==== |
| - | http_listen_port: | + | |
| - | common: | + | * Использовать Fluentd или Fluent Bit, которые умеют отправлять данные в Loki. В отличие от Promtail они имеют готовые парсеры практически для любого вида лога и справляются в том числе с multiline-логами. |
| - | instance_addr: | + | |
| - | path_prefix: | + | |
| - | storage: | + | |
| - | filesystem: | + | |
| - | chunks_directory: | + | |
| - | rules_directory: | + | |
| - | replication_factor: | + | |
| - | ring: | + | |
| - | kvstore: | + | |
| - | store: inmemory | + | |
| - | schema_config: | + | ===== Программные средства ===== |
| - | configs: | + | |
| - | - from: 2020-10-24 | + | |
| - | store: tsdb | + | |
| - | object_store: | + | |
| - | schema: v13 | + | |
| - | index: | + | |
| - | prefix: index_ | + | |
| - | period: 24h | + | |
| - | ruler: | ||
| - | alertmanager_url: | ||
| - | limits_config: | + | * [[system: |
| - | retention_period: | + | |
| - | reject_old_samples: | + | |
| - | reject_old_samples_max_age: | + | |
| - | allow_structured_metadata: | + | * [[.monitoring: |
| - | max_query_length: | + | * [[system:ctop]] |
| - | + | * [[system:htop]] | |
| - | ingester: | + | |
| - | lifecycler: | + | * [[software:iperf3]] |
| - | ring: | + | |
| - | kvstore: | + | |
| - | store: inmemory | + | |
| - | replication_factor: | + | * [[mysql:mytop]] |
| - | final_sleep: | + | |
| - | chunk_idle_period: | + | |
| - | max_chunk_age: | + | |
| - | chunk_target_size: | + | |
| - | chunk_retain_period: | + | |
| - | + | | |
| - | table_manager: | + | |
| - | retention_deletes_enabled: | + | |
| - | retention_period: | + | |
| - | </ | + | * [[system:syslog]] |
| - | + | ||
| - | ==== [[ promtail_config | + | |
| - | + | ||
| - | [[software:monitoring: | + | |
| - | + | ||
| - | <code yaml> | + | |
| - | server: | + | |
| - | | + | |
| - | http_listen_address: | + | |
| - | + | ||
| - | positions: | + | |
| - | filename: / | + | |
| - | # Запись позиций каждые 15 секунд | + | |
| - | sync_period: | + | |
| - | + | ||
| - | clients: | + | |
| - | | + | |
| - | backoff_config: | + | |
| - | min_period: 5s | + | |
| - | max_period: 1m | + | |
| - | max_retries: | + | |
| - | batchwait: 10s | + | |
| - | batchsize: 1048576 | + | |
| - | timeout: 30s | + | |
| - | + | ||
| - | scrape_configs: | + | |
| - | + | ||
| - | | + | |
| - | docker_sd_configs: | + | |
| - | + | ||
| - | - host: unix:/// | + | |
| - | refresh_interval: 15s | + | |
| - | filters: | + | |
| - | | + | |
| - | values: [" | + | |
| - | + | ||
| - | relabel_configs: | + | |
| - | + | ||
| - | | + | |
| - | replacement: | + | |
| - | | + | |
| - | | + | |
| - | target_label: | + | |
| - | action: replace | + | |
| - | - source_labels: | + | |
| - | target_label: | + | |
| - | action: replace | + | |
| - | + | ||
| - | # Основной источник логов - stdout/ | + | |
| - | - source_labels: | + | |
| - | | + | |
| - | target_label: | + | |
| - | - source_labels: | + | |
| - | target_label: ' | + | |
| - | action: replace | + | |
| - | + | ||
| - | # Метаданные Docker Swarm | + | |
| - | - source_labels: | + | |
| - | | + | |
| - | - source_labels: | + | |
| - | target_label: | + | |
| - | - source_labels: | + | |
| - | | + | |
| - | - source_labels: | + | |
| - | target_label: | + | |
| - | + | ||
| - | # Добавляем hostname ноды | + | |
| - | - target_label: | + | |
| - | replacement: | + | |
| - | + | ||
| - | # Путь к логам контейнера | + | |
| - | - source_labels: | + | |
| - | | + | |
| - | replacement: | + | |
| - | + | ||
| - | # Пайплайн для обработки логов | + | |
| - | pipeline_stages: | + | |
| - | - docker: {} | + | |
| - | - timestamp: | + | |
| - | source: current_time | + | |
| - | format: RFC3339 | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Docker Compose ===== | + | |
| - | + | ||
| - | + | ||
| - | monitoring | + | |
| - | <code yaml> | + | |
| - | version: " | + | |
| - | + | ||
| - | x-logging: | + | |
| - | | + | |
| - | driver: " | + | |
| - | | + | |
| - | max-size: " | + | |
| - | max-file: " | + | |
| - | tag: " | + | |
| - | + | ||
| - | services: | + | |
| - | + | ||
| - | | + | |
| - | image: grafana/ | + | |
| - | ports: | + | |
| - | | + | |
| - | | + | |
| - | - source: loki_config | + | |
| - | target: / | + | |
| - | volumes: | + | |
| - | - loki_data:/ | + | |
| - | - / | + | |
| - | - / | + | |
| - | command: | + | |
| - | - -config.file=/ | + | |
| - | - -config.expand-env=true | + | |
| - | - -target=all | + | |
| - | environment: | + | |
| - | - TZ=${SYSTEM_TIMEZONE: | + | |
| - | networks: | + | |
| - | - monitoring | + | |
| - | deploy: | + | |
| - | placement: | + | |
| - | constraints: | + | |
| - | - node.role == manager | + | |
| - | resources: | + | |
| - | limits: | + | |
| - | memory: 2G # Уменьшаем память | + | |
| - | cpus: ' | + | |
| - | reservations: | + | |
| - | memory: 1G | + | |
| - | cpus: ' | + | |
| - | restart_policy: | + | |
| - | condition: on-failure | + | |
| - | delay: 10s | + | |
| - | max_attempts: | + | |
| - | logging: | + | |
| - | labels: | + | |
| - | logging: " | + | |
| - | logging_jobname: | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | image: grafana/ | + | |
| - | configs: | + | |
| - | - source: promtail_config | + | |
| - | target: / | + | |
| - | volumes: | + | |
| - | - / | + | |
| - | - / | + | |
| - | - / | + | |
| - | - promtail_positions:/ | + | |
| - | - / | + | |
| - | - / | + | |
| - | command: | + | |
| - | - -config.file=/ | + | |
| - | - -config.expand-env=true | + | |
| - | environment: | + | |
| - | - TZ=${SYSTEM_TIMEZONE: | + | |
| - | - HOSTNAME={{.Node.Hostname}} | + | |
| - | networks: | + | |
| - | - monitoring | + | |
| - | deploy: | + | |
| - | mode: global | + | |
| - | resources: | + | |
| - | limits: | + | |
| - | memory: 512M | + | |
| - | cpus: ' | + | |
| - | reservations: | + | |
| - | memory: 256M | + | |
| - | cpus: ' | + | |
| - | restart_policy: | + | |
| - | condition: any | + | |
| - | delay: 30s | + | |
| - | max_attempts: | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | image: grafana/ | + | |
| - | ports: | + | |
| - | - " | + | |
| - | environment: | + | |
| - | - TZ=${SYSTEM_TIMEZONE: | + | |
| - | # GF | + | |
| - | - GF_SECURITY_ADMIN_PASSWORD=admin | + | |
| - | - GF_SECURITY_ADMIN_USER=admin | + | |
| - | - GF_USERS_ALLOW_SIGN_UP=false | + | |
| - | - GF_AUTH_ANONYMOUS_ENABLED=true | + | |
| - | - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer | + | |
| - | # Настройки для решения проблемы блокировки БД | + | |
| - | - GF_DATABASE_TYPE=sqlite3 | + | |
| - | - GF_DATABASE_PATH=grafana.db | + | |
| - | # - GF_DATABASE_MAX_IDLE_CONN=1 | + | |
| - | # - GF_DATABASE_MAX_OPEN_CONN=1 | + | |
| - | - GF_DATABASE_CONN_MAX_LIFETIME=14400 | + | |
| - | # Отключаем функции, | + | |
| - | - GF_ALERTING_ENABLED=false | + | |
| - | - GF_REPORTING_ENABLED=false | + | |
| - | - GF_LIVE_ENABLED=false | + | |
| - | volumes: | + | |
| - | - grafana_data:/ | + | |
| - | - / | + | |
| - | - / | + | |
| - | networks: | + | |
| - | - monitoring | + | |
| - | deploy: | + | |
| - | placement: | + | |
| - | constraints: | + | |
| - | - node.role == manager | + | |
| - | resources: | + | |
| - | limits: | + | |
| - | memory: 1G | + | |
| - | cpus: ' | + | |
| - | reservations: | + | |
| - | memory: 512M | + | |
| - | cpus: ' | + | |
| - | restart_policy: | + | |
| - | condition: on-failure | + | |
| - | delay: 10s | + | |
| - | max_attempts: | + | |
| - | + | ||
| - | + | ||
| - | configs: | + | |
| - | | + | |
| - | external: true | + | |
| - | | + | |
| - | external: true | + | |
| - | + | ||
| - | networks: | + | |
| - | | + | |
| - | driver: overlay | + | |
| - | attachable: true | + | |
| - | + | ||
| - | volumes: | + | |
| - | | + | |
| - | driver: local | + | |
| - | | + | |
| - | driver: local | + | |
| - | | + | |
| - | driver: local | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Встраивание в docker-compose ===== | + | |
| - | + | ||
| - | <code yaml> | + | |
| - | x-logging: | + | |
| - | | + | |
| - | driver: " | + | |
| - | options: | + | |
| - | max-size: " | + | |
| - | max-file: " | + | |
| - | tag: " | + | |
| - | + | ||
| - | services: | + | |
| - | + | ||
| - | | + | |
| - | logging: | + | |
| - | labels: | + | |
| - | logging: " | + | |
| - | logging_jobname: | + | |
| - | </ | + | |