Журналы: логи серверов и приложений
Агент собирает логи вместе с метриками и отправляет их в ваше пространство. Искать, фильтровать и строить по ним графики можно в дашборде «Журналы» (Log Explorer) в вашей Grafana.
Что собирается
| Источник | Linux | Windows |
|---|---|---|
| Системный журнал | journald: всё, что пишут systemd-службы и ядро, включая sshd, sudo и фаервол | Event Log: журналы Application и System |
| Журнал безопасности | — (события входа и учётных записей уже есть в journald) | Security — только значимые события, см. Безопасность (агент 1.6.2+) |
| Контейнеры | Docker: stdout/stderr каждого контейнера через Docker API | — |
| Файлы приложений | по маскам из портала (агент 1.6+) | по маскам из портала (агент 1.6+) |
| Kubernetes | логи подов — см. Мониторинг Kubernetes | |
| 1С | события технологического журнала — см. Мониторинг 1С | |
Логи хранятся 30 дней (метрики — 90).
Файловые логи
Логи, которые приложения пишут в файлы, а не в journald или Docker: nginx и apache из пакетов, PostgreSQL, собственные журналы приложений. Подключаются в портале: карточка клиента → вкладка «Файловые логи».
- Готовые кнопки: nginx (
/var/log/nginx/*.log), apache (/var/log/apache2/*.log), PostgreSQL (/var/log/postgresql/*.log), IIS (C:\inetpub\logs\LogFiles\*\*.log). Или своя маска, например/var/log/app/*.log. - Формат: «как есть» — строка уходит целиком; «nginx» — дополнительно разбираются клиент, метод, путь, статус и время ответа, ответам 5xx ставится уровень error, 4xx — warning. Подходит и для apache (тот же формат combined). Поля после стандартной строки (
rt=…,vhost=…) тоже разбираются. - Читать на хосте: конкретный хост или «Все агенты, у кого есть файлы» — тогда маску проверяет каждый агент, а файлы читает тот, у кого они есть.
- Каждая строка приходит с полями
file(имя файла) иlog_source(название источника из портала).
monagent из группы adm — стандартной группы «читать /var/log» в Debian и Ubuntu. Файл, недоступный этой группе на чтение, агент не увидит. Читаются только новые строки с момента подключения; ротированные файлы (.1, .gz) и syslog/auth.log (их содержимое уже есть в journald) не читаются. На Windows файлы читает агент от SYSTEM, разбор формата nginx там пока не применяется.Уровни
У каждой строки есть поле level по шкале syslog — одно для всех источников, поэтому фильтр «только ошибки» работает одинаково для Linux, Windows и файлов:
| level | Значение | Откуда |
|---|---|---|
| 0–2 | emergency, alert, critical | journald; Windows Critical → 2 |
| 3 | error | journald; Windows Error; nginx 5xx |
| 4 | warning | journald; Windows Warning; nginx 4xx; неудачные входы Windows |
| 5–7 | notice, info, debug | всё остальное (Windows Information → 6) |
Дашборд «Журналы»
Создаётся автоматически. Вверху — фильтры: уровень, поиск, хост, контейнер, файл и число строк. Панели:
- Объём по уровням и Топ источников — когда и откуда пошёл всплеск;
- Ошибки и предупреждения по всем хостам — только level 0–4, независимо от того, сколько информационных строк шлют соседние хосты;
- Logs — последние строки по фильтру;
- Логи контейнеров — Docker и Kubernetes, с полями
container,image,stream; - Логи файлов приложений — ответы nginx по классам статуса, пути с ошибками 4xx/5xx и сами строки файлов;
- Расширенный поиск — по всем полям, медленнее; включайте с конкретным запросом и коротким периодом.
Как искать
| Нужно | Что ввести в «Поиск» |
|---|---|
| Все строки | * |
| Слово или число | timeout, 550000 |
| Несколько слов в одной строке | connection refused |
| Часть слова | ~"oxy_ove", без учёта регистра — ~"(?i)oxy_ove" |
| По полю | status:502, path:~"^/api/", container:nginx |
| Исключить | error -healthcheck |
Синтаксис — LogsQL (документация VictoriaLogs). Те же запросы работают в Grafana → Explore с источником логов.
Готовые дашборды на логах
- Безопасность — входы, перебор паролей, учётные записи, sudo, фаервол;
- Сайт: посетители — посещаемость сайта по access-логу nginx.