Ответ
Для комплексного мониторинга инфраструктуры я настраиваю стек на основе Prometheus и Grafana.
1. Сбор метрик (Prometheus):
- На серверах запускается
node_exporter, который собирает метрики CPU, памяти, дисков, сети. - Prometheus по pull-модели забирает эти метрики.
- Для мониторинга приложений добавляются соответствующие экспортеры (например, для Nginx, PostgreSQL, Redis) или инструментация кода через клиентские библиотеки.
Пример правила оповещения (alert) в Prometheus для высокой загрузки CPU:
groups:
- name: host_alerts
rules:
- alert: HighCpuLoad
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU load on {{ $labels.instance }}"
2. Визуализация и дашборды (Grafana): Создаю дашборды, которые отображают использование ресурсов в реальном времени, тренды и SLA.
3. Логирование: Для агрегации и анализа логов использую стек ELK (Elasticsearch, Logstash/Fluentd, Kibana) или более легковесный Grafana Loki. Настраиваю парсинг логов, создаю алерты на критические ошибки в Kibana или Grafana.
4. Для быстрой ad-hoc проверки на самом сервере использую:
htop— интерактивный просмотр процессов.nmonилиglances— для комплексного просмотра.dstat— для анализа дискового и сетевого IO в реальном времени.