Управление логами с помощью Graylog 2 в Ubuntu 16.04

Graylog – это производительная платформа с открытым исходным кодом, предназначенная для управления логами. Graylog собирает и извлекает важные данные из логов сервера, которые обычно отправляются с помощью протокола Syslog. Также Graylog позволяет искать и визуализировать логи в веб-интерфейсе.

В этом руководстве показано, как установить и настроить Graylog на сервере Ubuntu 16.04.

Требования

  • Сервер Ubuntu 16.04, 2 Гб RAM минимум.
  • Частная сеть.
  • Пользователь с доступом к sudo (инструкции – здесь).
  • Oracle JDK 8 (советы по установке можно найти в специальном разделе этого руководства).
  • Elasticsearch 2.x (инструкции вы найдёте в специальном разделе этого руководства). Каждая конкретная версия Graylog совместима только с одной конкретной версией Elasticearch. К примеру, Graylog 2.x не работает с Elasticsearch 5.x. Подробную информацию о совместимости версий вы найдёте в этой таблице (в данном руководстве используется Elasticsearch 2.4.4 и Graylog 2.2).
  • MongoDB (установить БД вам поможет это руководство).

1: Настройка Elasticsearch

Отредактируйте конфигурационный файл Elasticsearch и укажите имя кластера, которое также будет указано в конфигурации Graylog. Для простоты можно использовать стандартное имя кластера Graylog – это graylog. Конечно, при необходимости вы можете выбрать любое другое имя; в таком случае не забудьте откорректировать настройки Graylog.

Откройте конфигурационный файл Elasticsearch:

sudo nano /etc/elasticsearch/elasticsearch.yml

Найдите строку:

cluster.name: <CURRENT CLUSTER NAME>

Измените значение cluster.name на graylog:

cluster.name: graylog

Сохраните и закройте файл.

Перезапустите сервис, чтобы обновить настройки.

sudo systemctl restart elasticsearch

2: Установка Graylog

Загрузите пакет с настройками репозитория Graylog. Актуальную версию можно найти на сайте проекта. В руководстве используется версия 2.2.

wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb

Установите репозиторий из пакета .deb:

sudo dpkg -i graylog-2.2-repository_latest.deb

Примечание: Если вы используете другую версию, укажите её в команде вместо 2.2.

Теперь нужно извлечь новый список пакетов. Выполните команду:

sudo apt-get update

Установите пакет graylog-server:

sudo apt-get install graylog-server

Добавьте Graylog в автозагрузку:

sudo systemctl enable graylog-server.service

Сервис Graylog успешно установлен.

3: Настройка Graylog

Теперь нужно настроить Graylog. Конфигурационный файл Graylog по умолчанию – /etc/graylog/server/server.conf.

Сначала нужно установить значение password_secret. Graylog использует это значение для защиты паролей пользователей. Используйте сгенерированный случайный 128-значный пароль.

Сгенерируйте его с помощью pwgen. Установите утилиту:

sudo apt install pwgen

Сгенерируйте пароль и поместите его в конфигурации Graylog. Программа sed может вставить значение password_secret в конфигурационный файл Graylog, и вам не придётся копировать и вставлять значения вручную. Выполните команду:

sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf

Читайте также: Основы работы с редактором потоков Sed

Затем нужно установить значение root_password_sha2. Это хэш SHA-256 пароля. Снова используйте команду sed, чтобы внести изменения в конфигурационный файл Graylog (чтобы не генерировать хэш SHA-256 с помощью shasum и не вставлять его в конфигурационный файл вручную).

Выполните следующую команду, вместо password укажите свой пароль администратора.

Примечание: Команда начинается с пробела, благодаря чему пароль не будет храниться в виде простого текста в истории Bash.

sudo sed -i -e "s/root_password_sha2 =.*/root_password_sha2 = $(echo -n 'password' | shasum -a 256 | cut -d' ' -f1)/" /etc/graylog/server/server.conf

Теперь нужно внести в конфигурации пару поправок. Откройте конфигурационный файл Graylog в редакторе:

sudo nano /etc/graylog/server/server.conf

Найдите следующие строки, раскомментируйте их и укажите внешний IP-адрес или домен сервера Graylog.

...
rest_listen_uri = http://your_server_ip_or_domain:9000/api/
...
web_listen_uri = http://your_server_ip_or_domain:9000/
...

Сохраните и закройте файл.

Перезапустите сервис graylog-server, чтобы обновить параметры.

sudo systemctl restart graylog-server

Примечание: Эта команда запустит сервер, если он в текущий момент остановлен.

Проверьте состояние сервера:

sudo systemctl status graylog-server

Команда должна вернуть:

graylog-server.service - Graylog server
Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2017-03-03 20:10:34 PST; 1 months 7 days ago
Docs: http://docs.graylog.org/
Main PID: 1300 (graylog-server)
Tasks: 191 (limit: 9830)
Memory: 1.2G
CPU: 14h 57min 21.475s
CGroup: /system.slice/graylog-server.service
├─1300 /bin/sh /usr/share/graylog-server/bin/graylog-server
└─1388 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSCon

Обратите внимание: если сервер работает, в выводе будет строка active.

Если в выводе сообщается, что система не запущена, проверьте /var/log/syslog на наличие ошибок. Убедитесь, что вы установили Java и изменили все значения, указанные в разделе 3. Затем снова попробуйте запустить Graylog.

Если вы настроили брандмауэр ufw, добавьте в его правила исключение для TCP-порта 9000, чтобы получить доступ к интерфейсу:

sudo ufw allow 9000/tcp

Запустив сервис Graylog, откройте в браузере страницу:

http://your_server_ip:9000

После перезагрузки сервиса страница может загружаться около 5 минут. Кроме того, нужно убедиться, что БД MongoDB запущена.

4: Создание input

Создайте input, чтобы получать данные логов, собранные Graylog. Input сообщает, какой порт и протокол нужно прослушивать при сборе логов. Добавьте input для Syslog UDP (наиболее распространённый протокол логирования).

Открыв в браузере http://your_server_ip:9000, вы увидите страницу входа. В поле username введите admin, а в поле password – пароль, созданный в разделе 3.

После аутентификации вы получите доступ к интерфейсу. На экране появится приветственная страница Getting Started.

Чтобы открыть страницу input, разверните меню System и выберите Inputs.

Затем вы увидите раскрывающийся список Select Input. Выберите Syslog UDP, а затем нажмите кнопку Launch new input.

Появится форма, которую нужно заполнить.

  • В поле Node выберите свой сервер.
  • В Title выберите описательное название (например, Linux Server Logs).
  • В Bind address укажите внутренний IP-адрес сервера. Чтобы собирать данные логов с внешних серверов, выберите 0.0.0.0 (все интерфейсы), однако такой вариант использовать не рекомендуется, так как Syslog не поддерживает аутентификации.
  • В Port введите 8514. В руководстве используется порт 8514, поскольку порты от 0 до 1024 может использовать только пользователь root.
  • Нажмите Save. Список input обновится.

5: Отправление логов в Graylog

Теперь у вас есть input, который прослушивает порт 8514, но пока что не передаёт никаких данных. Утилита rsyslog используется для пересылки логов; она предварительно установлена в Ubuntu. В этом руководстве показано, как настроить сервер Ubuntu, на котором установлен сервис Graylog, для отправки логов.

Примечание: Выполните этот раздел на других серверах, чтобы собирать их данные в Graylog. Кроме того, чтобы отправлять в Graylog данные с других серверов, нужно добавить правило брандмауэра для порта UDP 8514.

sudo ufw allow 8514/udp

Создайте и откройте конфигурационный файл rsyslog:

sudo nano /etc/rsyslog.d/60-graylog.conf

Добавьте в него следующую строку (вместо your_server_private_ip укажите внутренний IP сервера Graylog).

*.* @your_server_private_ip:8514;RSYSLOG_SyslogProtocol23Format

Сохраните и закройте файл.

Перезапустите сервис rsyslog:

sudo systemctl restart rsyslog

Повторите этот раздел на каждом сервере, логи которого нужно собирвать.

Теперь вы можете просмотреть данные в интерфейсе. Откройте вкладку Sources в меню навигации, чтобы просмотреть графики ресурсов.

Чтобы получить общие сведения о ресурсах, откройте Search.

Заключение

Теперь у вас есть полностью рабочий сервер Graylog, который собирает и анализирует данные логов.

После этого вы можете настроить дашборды и оповещения. Дашборды предоставляют краткий обзор логов.

Больше информации о Graylog можно найти в документации проекта.

Tags: , , , , ,

Добавить комментарий