Как настроить индексацию логов веб-сервера (например, Nginx) для мониторинга?
«Как настроить индексацию логов веб-сервера (например, Nginx) для мониторинга?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.
Тип вопроса:Мониторинг и логированиеВероятность:
23% Категория:Devops Инженер
Ответ
Для эффективной индексации и анализа логов веб-сервера я использовал стек **EFK (Elasticsearch, Fluentd/Fluent Bit, Kibana)** или его вариацию **ELK (с Logstash)**. Вот типичный pipeline для Nginx.
**Архитектура:**
`Nginx Access/Error Logs` → `Fluent Bit (агент)` → `Kafka (буфер, опционально)` → `Fluentd (агрегатор)` → `Elasticsearch` → `Kibana (визуализация)`.
**1. Конфигурация Fluent Bit для сбора логов (устанавливается на каждой ноде с Nginx):**
```ini
# /etc/fluent-bit/fluent-bit.conf
[SERVICE]
Parsers_File /etc/fluent-bit/parsers.conf
[INPUT]
Name tail
Path /var/log/nginx/access.log
Parser nginx
Tag nginx.access
Mem_Buf_Limit 5MB
[OUTPUT]
Name forward
Match *
Host fluentd-aggregator.example.com
Port 24224
```
**2. Парсер для формата Nginx (parsers.conf):**
```ini
[PARSER]
Name nginx
Format regex
Regex ^(?[^ ]*) (?[^ ]*) (?[^ ]*) [(?