Введение
Graylog является мощной платформой для управления журналами с открытым исходным кодом. Он собирает и извлекает важные данные из сервера журналов, которые часто посылаемых с использованием протокола Syslog. Она также позволяет искать и визуализировать журналы в веб — интерфейсе.
В этой статье, мы установим и настроим Graylog на Ubuntu 16.04, и создадим простой вход, который будет обрабатывать системные журналы.
Предпосылки
Перед тем, как начать этот урок, вам нужно:
- Один сервер Ubuntu 16.04, по крайней мере 2 Гб оперативной памяти, включенные частные сети, и не корневой пользователь. Это может быть создано с помощью статьи: Начальная настройка сервера Ubuntu 16.04.
- Установленный 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. Для простоты, мы установим имя кластера Elasticsearch по имени 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
Теперь, когда вы настроили Elasticsearch, давайте перейдем к установке Graylog.
Шаг 2 — Установка Graylog
На этом шаге мы будем устанавливать сервер Graylog.
Во-первых, загрузите файл пакета, содержащий конфигурацию хранилища Graylog. Посетите страницу загрузки Graylog и найдите номер текущей версии. Мы будем использовать версию 2.2
для этого урока.
wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb
Затем установите конфигурацию хранилища из файла пакета .deb
, снова замените 2.2
на версию, которую вы скачали.
sudo dpkg -i graylog-2.2-repository_latest.deb
Теперь, когда конфигурация хранилища была обновлена, мы должны извлечь новый список пакетов. Выполните следующую команду:
sudo apt-get update
Затем установите пакет graylog-server
:
sudo apt-get install graylog-server
И, наконец, запустите автоматическую загрузку Graylog при старте системы с помощью следующей команды:
sudo systemctl enable graylog-server.service
Graylog теперь успешно установлен, но это еще начало. Мы должны настроить его, прежде чем он заработает.
Шаг 3 — Настройка Graylog
Теперь, когда мы настроили Elasticsearch и установили 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
Далее, нам необходимо установить значение root_password_sha2
. Это SHA-256 хэш вашего желаемого пароля. Еще раз, мы будем использовать команду sed
для изменения файла конфигурации Graylog поэтому мы не должны вручную сгенерировать хеш SHA-256 с использованием shasum
и вставить его в файл конфигурации.
Выполните эту команду, и замените password
ниже на нужный пароль администратора по умолчанию:
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
Найдите и измените следующие строки, раскомментируйте их и замените graylog_public_ip
на публичный IP вашего сервера. Это может быть IP — адрес или полное доменное имя.
...
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 при установке Elasticsearch, и что вы изменили все значения в шаге 3. Затем снова перезапустить службу Graylog.
Если вы настроили брандмауэр с ufw
, добавьте исключение брандмауэра для порта TCP , 9000
так чтобы вы могли получить доступ к веб — интерфейсу:
sudo ufw allow 9000/tcp
После того, как Graylog заработает, вы должны быть в состоянии получить доступ с помощью веб — браузера. Вам, возможно, придется подождать до пяти минут после перезагрузки перед запуском веб — интерфейса. Кроме того, убедитесь, что MongoDB работает. http://your_server_ip:9000
graylog-server
Теперь, когда Graylog работает должным образом, мы можем перейти к обработке логов.
Шаг 4 — Создание входа
Давайте добавим новый вход в Graylog для получения журналов. Входы скажут Graylog, какой порт для прослушивания и какой протокол использовать при получении журналов. Мы будем добавлять вход Syslog UDP, который обычно использует протокол регистрации.
Когда вы посетите ваш браузер по адресу http://your_server_ip:9000, вы увидите страницу входа в систему. Используйте имя пользователя admin и пароль, введенный на шаге 3 для вашего пароля.
После входа в систему, вы увидите страницу с названием «Начало работы», которая выглядит как на рисунке:
Чтобы просмотреть страницу входов, нажмите System в выпадающем меню в навигационной панели и выберите inputs.
После этого вы увидите выпадающее окно, содержащее текст Select Input. Выберите Syslog UDP из этого выпадающего списка, а затем нажмите на кнопку Launch new input.
Должно появиться модальная форма. Заполните следующие детали, чтобы создать свой input:
- Для Node, выберите сервер. Он должен быть единственным пунктом в списке.
- Для Title, введите подходящее название, например
Linux Server Logs
. - Для Bind address, используйте частный IP вашего сервера. Если вы хотите иметь возможность собирать журналы с внешних серверов (не рекомендуется, так как Syslog не поддерживает аутентификацию), вы можете установить его на
0.0.0.0
(все интерфейсы). - Для Port, введите
8514
. Обратите внимание, что мы используем порт8514
в этой статье, потому что порты0 до
1024
могут быть использованы только корневым пользователем. Вы можете использовать любой номер порта выше1024 и
должно все работать, пока он не конфликтует с другими службами.
Нажмите кнопку Сохранить. Локальный входящий список будет обновляться и показывать свой новый вход, как показано на следующем рисунке:
Теперь, когда вход был создан, мы можем послать некоторые журналы Graylog.
Шаг 5 — Настройка серверов для отправки журналов в Graylog
У нас есть вход, настроенный и прослушивает порт 8514
, но мы не посылаем никаких данных на вход еще, так что мы не увидим никаких результатов. rsyslog
это утилита используется для пересылки журналов и предварительно установленных на Ubuntu, поэтому мы настроим отправлять журналы Graylog. На этом уроке мы настроим сервер Ubuntu для работы 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, вы можете найти инструкции в документации Graylog.