Источник, спасибо автору
Вместо введения: Graylog это open source программное обеспечение, предназначенное для сбора логов в гигантских сетях их огромного количества источников различными способами. В нем можно удобно организовать сбор событий, фильтрацию, поиск, автоматизацию (всякие алерты) и т.д. Аналогичных средств множество, но Graylog предлагает нереальную производительность с использованием современных компонентов, удобную аналитику и красивый интерфейс.
Для работы ему нужна Java, конфигурацию он будет хранить в MongoDB, для поиска и хранения логов — использовать ElasticSearch. Про сбор информации из WIndows будет ниже, но спойлер — агенту больше не нужна Java.
Вторая часть: настройка приема логов в Graylog из Linux. (видеоинструкция)
В консоль сервера приема логов нам больше попадать не нужно. Идем в веб-морду и создаем Input для логов. Расписывать навигацию по веб-интерфейсу дело гиблое, потому есть видео. Если кратко:
Для проверки работы Input можно в консоли того же сервера graylog выполнить
Конфигурация машин Linux на отправку логов, в принципе проста. Почти везде релизы syslogd ведут себя одинаково. Кто ничего не помнит о демонах журналирования — освежите память у меня на канале. Итак debian и redhat.
Создается файл задания rsyslog:
c текстом (адрес и порт взят из настроенного Input):
Демон журналов перезапукается командой
И можно смотреть в веб-интерфейсе Graylog полученные сообщения.
Третья часть: настройка приема логов в Graylog из Windows. (видеоинструкция)
В версиях Graylog младше второй использовался graylog collector на java. Во второй (актуальной) он просто игнорируется и дает ошибки (полдня пытался починить, пока не понял это). Вместо него используется graylog sidecar, который получает конфиг с сервера Graylog (что очень удобно, так как нет необходимости лазить по виндовым серверам для редактирования настроек) и передает его в nxlog (или что вам больше нравится), который события собирает и отправляет.
Для приема сообщений из Windows надо создать отдельный Input через веб-интерфейс:
Для создания конфигурации отправки логов для nxlog на винде, нужно создать коллектор через веб-интерфейс в graylog:
Отправляемся в Windows, Скачиваем и устанавливаем nxlog и graylog-sidecar.
Убираем как службу nxlog, и ставим как службу sidecar:
Редактируем файл конфигурации Sidecar (C:\Program Files (x86)\graylog\collector-sidecar\collector_sidecar.yml), а именно указываем порт прослушки глобальный (12900), ip сервера, и самое главное: метку, по которой будет принят конфиг. У меня это выглядит так:
Запускаем sidecar
Создаем событие
Смотрим логи в его директории (C:\Program Files (x86)\graylog\collector-sidecar\), и если все ок — отправляемся в веб-морду смотреть логи винды на инпуте.
Нюансы:
Ну а дальше уже начинается работа в веб-интерфейсе: какие именно логи откуда брать, как на какие события реагировать, что отфильтровывать и т.д. Начнете копать — разберетесь. Вот на всякий случай еще раз мануал.
Вместо введения: Graylog это open source программное обеспечение, предназначенное для сбора логов в гигантских сетях их огромного количества источников различными способами. В нем можно удобно организовать сбор событий, фильтрацию, поиск, автоматизацию (всякие алерты) и т.д. Аналогичных средств множество, но Graylog предлагает нереальную производительность с использованием современных компонентов, удобную аналитику и красивый интерфейс.
Для работы ему нужна Java, конфигурацию он будет хранить в MongoDB, для поиска и хранения логов — использовать ElasticSearch. Про сбор информации из WIndows будет ниже, но спойлер — агенту больше не нужна Java.
Вторая часть: настройка приема логов в Graylog из Linux. (видеоинструкция)
В консоль сервера приема логов нам больше попадать не нужно. Идем в веб-морду и создаем Input для логов. Расписывать навигацию по веб-интерфейсу дело гиблое, потому есть видео. Если кратко:
- в меню «Система» создается UDP Input;
- указывается syslog udp;
- указывается порт (по умолчанию 512, но чтобы graylog мог использовать порты ниже 1024 нужно много возьни), поэтому, например 1234;
- указывается адрес для прослушивания входящих сообщений, у меня 10.0.1.10;
- нажимаем Launch.
Для проверки работы Input можно в консоли того же сервера graylog выполнить
echo "Hello Graylog" | nc -w 1 -u 10.0.1.10 1234
и посмотреть в веб-интерфейсе сообщения, полученные на Input.Конфигурация машин Linux на отправку логов, в принципе проста. Почти везде релизы syslogd ведут себя одинаково. Кто ничего не помнит о демонах журналирования — освежите память у меня на канале. Итак debian и redhat.
Создается файл задания rsyslog:
sudo vi /etc/rsyslog.d/90-graylog2.conf
c текстом (адрес и порт взят из настроенного Input):
$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION%
%TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID%
%STRUCTURED-DATA% %msg%\n"
*.* @10.0.1.10:1234;GRAYLOGRFC5424
Демон журналов перезапукается командой
sudo service rsyslog restart
(ну или как там в вашей ОС).И можно смотреть в веб-интерфейсе Graylog полученные сообщения.
Третья часть: настройка приема логов в Graylog из Windows. (видеоинструкция)
В версиях Graylog младше второй использовался graylog collector на java. Во второй (актуальной) он просто игнорируется и дает ошибки (полдня пытался починить, пока не понял это). Вместо него используется graylog sidecar, который получает конфиг с сервера Graylog (что очень удобно, так как нет необходимости лазить по виндовым серверам для редактирования настроек) и передает его в nxlog (или что вам больше нравится), который события собирает и отправляет.
Для приема сообщений из Windows надо создать отдельный Input через веб-интерфейс:
- выбираем GELF UDP;
- указываем узел, айпишник сервера graylog;
- запоминаем или редактируем порт приема сообщений (по умолчанию 12201).
Для создания конфигурации отправки логов для nxlog на винде, нужно создать коллектор через веб-интерфейс в graylog:
- выбираем Collectors;
- выбираем Manage Configuration;
- создаем конфигурацию;
- указываем метку (именно по метке sidecar на windows поймет какую конфигурацию для nxlog ему скачивать к себе на машину);
- создаем Output для nxlog (в котором просто указываем настройки Input из предыдущего шага: GELF UDP Output, ip, порт);
- создаем Input для nxlog (указываем простейший вариант: Windows Event Log).
Отправляемся в Windows, Скачиваем и устанавливаем nxlog и graylog-sidecar.
Убираем как службу nxlog, и ставим как службу sidecar:
'C:\Program Files (x86)\nxlog\nxlog.exe' -u
'C:\Program Files (x86)\graylog\collector-sidecar\graylog-collector-sidecar.exe' -service install
Редактируем файл конфигурации Sidecar (C:\Program Files (x86)\graylog\collector-sidecar\collector_sidecar.yml), а именно указываем порт прослушки глобальный (12900), ip сервера, и самое главное: метку, по которой будет принят конфиг. У меня это выглядит так:
server_url: http://10.0.1.10:12900
node_id: graylog-collector-sidecar
collector_id: file:C:\Program Files (x86)\graylog\collector-sidecar\collector-id
tags: windows
log_path: C:\Program Files (x86)\graylog\collector-sidecar
update_interval: 10
backends:
- name: nxlog
enabled: true
binary_path: C:\Program Files (x86)\nxlog\nxlog.exe
configuration_path: C:\Program Files (x86)\graylog\collector-sidecar\generated\nxlog.conf
Запускаем sidecar
'C:\Program Files (x86)\graylog\collector-sidecar\graylog-collector-sidecar.exe' -service start
Создаем событие
eventcreate /l Application /t INFORMATION /id 1 /d “Suck it”
Смотрим логи в его директории (C:\Program Files (x86)\graylog\collector-sidecar\), и если все ок — отправляемся в веб-морду смотреть логи винды на инпуте.
Нюансы:
- бывает что файл конфига нужно создать вручную пустой C:\Program Files (x86)\graylog\collector-sidecar\generated\nxlog.conf;
- бывает что нужно перезапустить винду, чтобы все сервисы все схватили;
- у меня был косяк с опечаткой в названии метки, убил час, разбираясь;
- сама метка должна отметиться в веб-интерфейсе в рамочку, иначе это не метка.
Ну а дальше уже начинается работа в веб-интерфейсе: какие именно логи откуда брать, как на какие события реагировать, что отфильтровывать и т.д. Начнете копать — разберетесь. Вот на всякий случай еще раз мануал.