Skip to content

orangevi/test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание на мониторинг с помощью Prometheus и Grafana

Этот проект предоставляет комплексное решение для развертывания мониторинга Prometheus и Grafana.


Содержание

  1. Обзор
  2. Предварительные требования
  3. Установка и развертывание
  4. Описание метрик дашборда
  5. Устранение неисправностей

Обзор

Данный стек развертывает Fluentd (для сбора и обработки логов), Prometheus (для сбора метрик) и Grafana (для визуализации) на вашей хостовой машине. Fluentd будет настроен на экспорт своих метрик на порт 24231. Grafana предварительно настроена на автоматическое обнаружение источника данных Prometheus и импорт подробного дашборда Fluentd с использованием механизма Grafana Provisioning.


Предварительные требования

  • Docker и Docker Compose (v3.8+): Должны быть установлены на машине развертывания.
  • Ansible:
    • Добавьте целевой хост для развертывания в файл hosts.yml.
    • Настройте свой SSH-ключ и имя пользователя в ansible.cfg для безопасного доступа к хосту.

Установка и развертывание

Содержимое файлов (см. отдельные файлы)

  • Ansible Playbook (playbook.yml и связанные роли): Отвечает за установку и настройку Fluentd на вашей хостовой машине. Fluentd должен быть сконфигурирован для экспорта метрик на 24231/tcp.
  • prometheus/prometheus.yml: Конфигурирует Prometheus для сбора метрик Fluentd.
  • grafana/provisioning/datasources/datasource.yaml: Определяет источник данных Prometheus для Grafana.
  • grafana/provisioning/dashboards/dashboards.yaml: Инструктирует Grafana загружать дашборды из указанного пути.
  • grafana/dashboards/fluentd-output-metrics.json: Сам JSON-файл дашборда Grafana. Убедитесь, что все ссылки на источник данных внутри этого файла используют name: "Prometheus".
  • docker-compose.yml: Оркестрирует контейнеры Prometheus и Grafana.

Шаги развертывания

  1. Подготовьте структуру проекта и заполните все файлы, как описано выше.
  2. Выполните Ansible Playbook для развертывания и настройки Fluentd на вашей хостовой машине.
    ansible-playbook playbook.yml
  3. Откройте Grafana в вашем веб-браузере по адресу: http://<YOUR-IP>:80.
    • Используйте учетные данные по умолчанию: имя пользователя secure-admin / пароль secure-admin.
  4. Перейдите в раздел Dashboards (иконка с четырьмя квадратами в левом меню), чтобы найти "Fluentd Output Metrics Dashboard".

Описание метрик дашборда

Дашборд "Fluentd Output Metrics Dashboard" предоставляет ключевую информацию о производительности плагина Fluentd.

  • fluentd_output_status_emit_records: Количество успешно отправленных записей в секунду.
  • fluentd_output_status_num_errors: Количество ошибок в секунду, возникших при записи логов.
  • fluentd_output_status_buffer_total_bytes: Текущий общий размер (в байтах) данных, ожидающих записи в буферах.
  • fluentd_output_status_buffer_queue_length: Текущее количество буферных чанков в очереди.
  • fluentd_output_status_buffer_available_space_ratio: Процент свободного места в буфере.
  • fluentd_output_status_retry_count: Частота повторных попыток после неудачных записей.
  • fluentd_output_status_emit_count: Общее количество успешных отправлений данных.
  • fluentd_output_status_write_count: Общее количество успешных записей данных в буфер.
  • fluentd_output_status_rollback_count: Общее количество откатов операций записи (критично).
  • fluentd_output_status_flush_time_count: Общее время (в секундах), затраченное на операции сброса буферов.
  • fluentd_output_status_slow_flush_count: Общее количество медленных операций сброса буфера.
  • fluentd_output_status_retry_wait: Текущее время ожидания (в секундах) перед повторной попыткой.
  • fluentd_output_status_buffer_stage_length: Количество чанков в "stage" области буфера.
  • fluentd_output_status_buffer_stage_byte_size: Размер (в байтах) данных в "stage" области буфера.
  • fluentd_output_status_queue_byte_size: Размер (в байтах) данных в "queue" области буфера.
  • fluentd_output_status_buffer_newest_timekey: Временная метка самой новой записи в буфере.
  • fluentd_output_status_buffer_oldest_timekey: Временная метка самой старой записи в буфере.

Устранение неисправностей

  • Метрики Fluentd не поступают в Prometheus:
    • Проверьте статус службы Fluentd на хостовой машине (sudo systemctl status fluentd).
    • Убедитесь, что Fluentd прослушивает порт 24231 (например, sudo ss -tunl | grep 24231).
    • Проверьте статус целей Prometheus по адресу http://<YOUR-IP>:9090/targets; цель fluentd должна быть UP.
    • Проверьте логи контейнера Prometheus (docker logs prometheus).
    • Если Prometheus не может подключиться к Fluentd, убедитесь, что ваша версия Docker Engine поддерживает host.docker.internal на Linux. В качестве альтернативы установите network_mode: host для контейнера Prometheus в docker-compose.yml и используйте targets: ['localhost:24231'] в prometheus.yml.
  • Дашборд Grafana не отображается или не содержит данных:
    • Проверьте логи контейнера Grafana (docker logs grafana).
    • Убедитесь, что файл grafana/dashboards/fluentd-output-metrics.json корректен и все ссылки на источник данных внутри него используют name: "Prometheus", что соответствует имени, указанному в grafana/provisioning/datasources/datasource.yaml.
    • Убедитесь, что provisioning-файлы Grafana (datasources.yaml, dashboards.yaml) корректно смонтированы в контейнер Grafana (проверьте секцию volumes в docker-compose.yml).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages