Graylog — это бесплатная платформа для управления журналами с открытым исходным кодом, позволяющая собирать, хранить и анализировать данные и журналы в режиме реального времени. Она написана на Java и построена на базе других программ с открытым исходным кодом, таких как MongoDB и Elasticsearch. Graylog — одна из самых эффективных, быстрых и гибких платформ централизованного управления журналами. С помощью Graylog вы можете отправлять и анализировать структурированные и неструктурированные данные практически из любого источника.
В этом руководстве мы рассмотрим установку Graylog в качестве централизованной системы управления журналами на сервере AlmaLinux 9. Вы установите сервер Graylog, а затем настроите входы для клиентов, чтобы отправлять журналы на сервер Graylog.
Настройка репозиториев
Чтобы начать это руководство, вам предстоит добавить новые репозитории на машину с AlmaLinux 9. Вы добавите в систему репозитории MongoDB 6.x, Opensearch 2.x и Graylog 5.x.
Сначала выполните приведенную ниже команду dnf, чтобы установить curl в вашей системе.
sudo dnf install curl -y

Теперь скопируйте и выполните следующую команду, чтобы добавить репозиторий MongoDB. Для сервера Graylog требуется как минимум MongoDB v6.x.
cat [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc EOF
Далее выполните следующую команду, чтобы добавить репозиторий Opensearch. Opensearch — это альтернатива Elasticsearch, которую рекомендуется использовать в новой версии Graylog. В данном случае мы будем использовать Opensearch v2.x.
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo

Теперь выполните приведенную ниже команду, чтобы добавить репозиторий Graylog в вашу систему. На момент написания этой статьи последняя версия сервера Graylog — v5.1.
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-5.1-repository_latest.rpm

Наконец, выполните приведенную ниже команду dnf, чтобы проверить доступные репозитории на сервере AlmaLinux.
sudo dnf repolist
В случае успеха вы должны увидеть репозитории MongoDB 6.x, Opensearch 2.x и сервера Graylog.

Установка зависимостей
После добавления репозиториев установите MongoDB 6.x и Opensearch 2.x через менеджер пакетов DNF. MongoDB будет использоваться для хранения строковых данных, а Opensearch станет основной поисковой системой для сервера Graylog.
Выполните приведенную ниже команду dnf для установки MongoDB и Opensearch. Введите y, когда появится запрос на подтверждение, затем нажмите ENTER.
sudo dnf install mongodb-org opensearch

После установки MongoDB и Opensearch выполните приведенную ниже команду systemctl, чтобы перезагрузить менеджер systemd.
sudo systemctl daemon-reload
Затем запустите и включите службу MongoDB с помощью следующей команды.
sudo systemctl start mongod sudo systemctl enable mongod
Запустите и включите службу Opensearch с помощью приведенной ниже команды.
sudo systemctl start opensearch sudo systemctl enable opensearch

Наконец, выполните приведенную ниже команду, чтобы проверить состояние служб MongoDB и Opensearch. Если служба запущена, ее статус должен быть следующим активен (работает).
sudo systemctl status mongod sudo systemctl status opensearch
Проверка состояния службы MongoDB.

Проверка состояния службы Opensearch.

Настройка Opensearch
Для развертывания Graylog рекомендуется использовать Opensearch в качестве поисковой системы по умолчанию. Альтернативой Opensearch является Elasticsearch, но он поддерживает только Elasticsearch v7.x. В следующем разделе вы настроите Opensearch в качестве поисковой системы по умолчанию для вашего сервера Graylog.
Сначала откройте стандартную конфигурацию Opensearch /etc/opensearch/opensearch.yml с помощью следующей команды редактора nano.
sudo nano /etc/opensearch/opensearch.yml
Снимите комментарий с параметра cluster.name и введите имя вашего кластера Opensearch, node.name и введите имя хоста вашей системы, затем сеть.хост и введите свой внутренний IP-адрес. В этом случае имя кластера будет таким graylog с именем хоста graylog-alma и IP-адрес 192.168.10.20 (Это работает в локальной сети).
cluster.name: graylog node.name: graylog-alma network.host: 0.0.0.0
Добавьте следующие строки, чтобы настроить Opensearch как отдельный узел/сервер, отключите автосоздание_индекса и плагин безопасности (только для тестирования).
discovery.type: single-node action.auto_create_index: false plugins.security.disabled: true
Сохраните файл и выйдите из редактора после завершения работы.
Теперь откройте файл /etc/opensearch/jvm.options с помощью редактора nano установите максимальное распределение памяти для службы Opensearch.
sudo nano /etc/opensearch/jvm.options
Измените распределение памяти по умолчанию для вашей установки Opensearch. В данном случае Opensearch должен работать с максимальным объемом памяти 2 ГБ.
-Xms2g -Xmx2g
Сохраните файл и выйдите из редактора после завершения работы.
Далее откройте файл /usr/lib/tmpfiles.d/opensearch.conf с помощью следующей команды редактора nano.
sudo nano /usr/lib/tmpfiles.d/opensearch.conf
Измените путь по умолчанию с /var/run/opensearch на /run/opensearch. Этот каталог будет использоваться для хранения дополнительных файлов, связанных с Opensearch, и будет создан автоматически с помощью этой конфигурации.
/run/opensearch
После завершения работы сохраните и закройте файл.
После этого выполните следующую команду, чтобы увеличить vm.max_map_count на 262144. Этого требует Opensearch, и чтобы сделать его постоянным, добавьте новый параметр в /etc/sysctl.conf файл.
sudo sysctl -w vm.max_map_count=262144 sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
Теперь выполните приведенную ниже команду systemctl, чтобы перезапустить службу Opensearch и применить внесенные изменения.
sudo systemctl restart opensearch
Opensearch должен быть запущен на локальном IP-адресе вашего сервера, и в данном случае он запущен на 192.168.10.20 с портом по умолчанию 9200.

Выполните приведенную ниже команду curl, чтобы получить доступ к вашей установке Opensearch.
curl 192.168.10.20:9200
Если настройка Opensearch прошла успешно, вы должны увидеть подробную информацию о вашей установке Opensearch, как показано ниже:

На данный момент Opensearch и MongoDB готовы. В следующем разделе вы начнете установку и настройку сервера Graylog.
Установка и настройка сервера Graylog
В этом разделе вы установите сервер Graylog v5.x на машину с AlmaLinux 9 и настроите Graylog в качестве централизованного управления журналами для вашей инфраструктуры.
Выполните приведенную ниже команду dnf для установки пакета graylog-server. Введите y для подтверждения установки и нажмите ENTER, чтобы продолжить.
sudo dnf install graylog-server

Введите еще раз, чтобы добавить GPG-ключ репозитория Graylog.

После установки сервера Graylog выполните следующую команду, чтобы сгенерировать ключ пароль_секрет для сервера Graylog. Скопируйте сгенерированную вами случайную строку.
Now run the following command to generate the root_password_sha2 for your graylog server. This password will be used to log in to the Graylog administration dashboard.
echo -n "Enter Password: " && head -1 /stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Введите свой пароль и скопируйте сгенерированный хэш-пароль.

В приведенном ниже примере, JmGGtkruJ80LjnQBnz8QZ0gHjKpBZwWmH7JF0ZBa9iBS999bTlQfViaQj7jAH-XgIVcdVcDVYyy3x5Dh7fEXCPhbrSUXX1G1 это секрет пароля и 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 сгенерированный root_password_sha2 пароль для вашего сервера Graylog.
Далее откройте конфигурацию Graylog /etc/graylog/server/server.conf , используя редактор nano.
sudo nano /etc/graylog/server/server.conf
Введите сгенерированный секретный пароль в поле пароль_секрет параметр и измените значение по умолчанию root_password_sha2 с новым паролем, который вы сгенерировали.
password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX ... root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111
Снимите комментарий с http_bind_address и измените IP-адрес на ваш внутренний IP-адрес, а затем порт сервера Graylog по умолчанию 9000.
http_bind_address = 192.168.10.20:9000
Сохраните файл и закройте редактор.
Теперь выполните приведенную ниже команду systemctl, чтобы перезагрузить менеджер systemd.
sudo systemctl daemon-reload
Затем запустите и включите сервер Graylog с помощью следующей команды.
sudo systemctl start graylog-server sudo systemctl enable graylog-server

И наконец, проверьте состояние сервера Graylog с помощью следующей команды. Если Graylog запущен, вы должны получить сообщение активен (работает) на вашем терминале.
sudo systemctl status graylog-server

Кроме того, вы можете проверить работу сервера Graylog, проверив список открытых портов в вашей системе с помощью команды ss, приведенной ниже.
ss -tulpn | grep 9000
В случае успеха вы увидите, что сервер Graylog использует порт 9000.
Настройка Firewalld и SELinux
После установки и настройки сервера Graylog следующим шагом будет настройка SELinux и firewalld. В данном случае SELinux работает в режиме принуждения, а firewalld запущен.
Выполните приведенную ниже команду dnf, чтобы установить инструменты управления SELinux на ваш сервер AlmaLinux. Введите y при появлении запроса, затем нажмите ENTER, чтобы продолжить.
sudo dnf install policycoreutils policycoreutils-python-utils

Теперь выполните следующую команду, чтобы добавить некоторые политики SELinux и разрешить порты для некоторых служб, например порт сервера Graylog. 9000, порт MongoDB 27017, и порт Opensearch 9200.
sudo setsebool -P httpd_can_network_connect 1 sudo semanage port -a -t http_port_t -p tcp 9000 sudo semanage port -a -t http_port_t -p tcp 9200 sudo semanage port -a -t mongod_port_t -p tcp 27017

Далее выполните приведенную ниже команду firewall-cmd, чтобы добавить порт сервера Graylog 9000 в firewalld и перезагрузите firewalld, чтобы применить изменения.
sudo firewall-cmd --add-port=9000/tcp --permanent sudo firewall-cmd --reload
Наконец, выполните следующую команду, чтобы проверить список правил firewalld в вашей системе. Убедитесь, что порт 9000 доступен в вашем firewalld.
sudo firewall-cmd --list-all

Доступ к серверу Graylog
После того как вы успешно настроили SELinux и firewalld, теперь вы можете получить доступ к установленному серверу Graylog.
Запустите предпочтительный веб-браузер и зайдите на IP-адрес вашего сервера AlmaLinux, а затем на порт 9000 (т.е: http://192.168.10.20:9000/). Если установка Graylog прошла успешно, вы должны увидеть страницу входа в Graylog, как показано ниже.
Войдите в систему под пользователем по умолчанию admin и сгенерированный вами пароль (в поле root_password_sha2 пароль).

Если вы ввели правильного пользователя и пароль, в вашем браузере появится панель управления Graylog.

Создание первого входа в Graylog
После входа на сервер Graylog первым делом необходимо создать новые входы, которые будут использоваться в качестве приемника журналов от целевой системы мониторинга. Существует два типа входов Graylog: входы слушателей и входы Pull.
Примерами входов Listener являются Syslog TCP/UDP, Beats TCP, GELF TCP, CEF TCP и Netflow TCP. Примерами входов Pull являются CEF AMQP и Kafka, Raw/Plaintext AMQP и Kafka, Syslog AMQP и Kafka.
В следующем разделе вы создадите первый вход Graylog, используя Syslog UDP.
Нажмите на кнопку Система меню и выберите Входы.

Выберите тип входа, который вы хотите создать, из выпадающего меню и нажмите кнопку Запустить новый ввод. В данном случае мы создадим вход типа Syslog UDP.

Введите имя входа, внутренний IP-адрес и порт, на котором будет работать новый вход. В данном случае мы создадим вход Syslog UDP graylog-alma , который будет работать на внутреннем IP-адресе 0.0.0.0 с портом 5142.

Далее прокрутите страницу вниз, и вы увидите новый вход graylog-alma со статусом работает.

Наконец, вернитесь на терминальный сервер и выполните приведенную ниже команду firewall-cmd, чтобы открыть порт 5142 , который будет использоваться graylog-alma вход.
sudo firewall-cmd --add-port=5142/udp --permanent sudo firewall-cmd --reload
Проверьте список открытых портов на firewalld с помощью следующей команды. Убедитесь, что порт 5142 доступен на firewalld.
sudo firewall-cmd --list-all

Отправка журнала в Graylog через Rsyslog
После создания UDP-входа Syslog на сервере Graylog вы можете отправлять сообщения журнала на сервер Graylog. В следующем разделе вы будете отправлять журналы с Linux-машины на сервер Graylog с помощью Rsyslog.
Создайте новую дополнительную конфигурацию rsyslog /etc/rsyslog.d/graylog.conf с помощью следующей команды редактора nano.
sudo nano /etc/rsyslog.d/graylog.conf
Вставьте следующую конфигурацию и не забудьте изменить IP-адрес и порт, указав данные для ввода graylog-alma.
*.*@192.168.10.20:5142;RSYSLOG_SyslogProtocol23Format
После завершения работы сохраните и выйдите из файла.
Теперь выполните приведенную ниже команду systemctl, чтобы перезапустить службу Rsyslog и применить изменения. После перезапуска Rsyslog целевая машина будет отправлять журналы на сервер Graylog по протоколу syslog на вход graylog-alma.
sudo systemctl restart rsyslog
Далее вернитесь в панель администрирования Graylog и щелкните меню Stream. Если установка прошла успешно, вы должны увидеть подробные журналы целевой машины, доступные на сервере Graylog.

Заключение
Поздравляем, вы завершили установку Graylog в качестве централизованной системы управления журналами на вашу систему AlmaLinux 9! Вы установили Graylog с MongoDB и Opensearch, а также настроили первый вход Graylog через Syslog UDP. Теперь вы можете изучить различные типы входов Graylog или настроить развертывание Graylog на нескольких серверах.