Поиск по сайту:

Как установить централизованную систему управления журналами Graylog на Rocky Linux


На этой странице

  1. Предпосылки
  2. Установка Java OpenJDK
  3. Установка базы данных MongoDB NoSQL
  4. Установка Elasticsearch
  5. Установка сервера Graylog
  6. Настройка SELinux
  7. Создать новый ввод Graylog
  8. Отправка журнала через Ingest Syslog на сервер Graylog
  9. Заключение

Graylog — это бесплатная платформа управления журналами с открытым исходным кодом для сбора, хранения и анализа ваших данных и журналов в реальном времени. Он написан на Java и построен поверх другого программного обеспечения с открытым исходным кодом, такого как MongoDB и Elasticsearch. Graylog предоставляет одну из самых эффективных, быстрых и гибких платформ централизованного управления журналами. С помощью Graylog вы можете отправлять и анализировать как структурированные, так и неструктурированные данные практически из любого источника данных.

В этом руководстве вы настроите централизованное управление журналами с помощью Graylog на сервере Rocky Linux. Это руководство включает в себя базовую установку некоторых зависимостей Graylog, таких как Elasticsearch и MongoDB. Кроме того, вы также настроите вход Graylog и отправите журналы с компьютера Linux на сервер Graylog через Syslog Ingest.

Предпосылки

Чтобы следовать этому руководству, вам потребуются следующие требования:

  • Сервер под управлением Rocky Linux 8.
  • Пользователь без полномочий root с правами sudo/administrator.
  • Брандмауэр запущен и включен.

Установка Java OpenJDK

Сервер Graylog — это сервер приложений, в основном написанный на Java. Чтобы установить Graylog, вам потребуется установить Java OpenJDK в вашей системе Rocky Linux. На момент написания этой статьи для сервера Graylog требовалось как минимум Java версии 8 или выше.

В репозитории Rocky Linux есть несколько версий Java OpenJDK, которые вы можете установить. Вы можете проверить все доступные версии OpenJDK, используя приведенную ниже команду.

sudo dnf search openjdk

В этой демонстрации вы установите и будете использовать Java OpenJDK v11 для сервера Graylog. Запустите приведенную ниже команду dnf, чтобы установить java OpenJDK в вашу систему Rocky Linux.

Когда будет предложено подтвердить установку, введите y и нажмите ENTER.

sudo dnf install java-11-openjdk-devel

После завершения установки Java OpenJDK выполните следующую команду java, чтобы проверить версию Java OpenJDK. Вы должны увидеть OpenJDK v11, установленный в вашей системе Rocky Linux.

java version

Установка базы данных MongoDB NoSQL

Теперь вы установите базу данных MongoDB NoSQL в качестве зависимостей для сервера Graylog. MongoDB используется для хранения данных сервера Graylog.

Чтобы установить MongoDB, вам потребуется добавить репозиторий MongoDB. Затем вы можете установить пакеты MongoDB.

Выполните следующую команду, чтобы добавить репозиторий MongoDB для системы Rocky Linux.

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

Теперь запустите команду dnf ниже, чтобы проверить список доступных репозиториев в вашей системе. Вы должны увидеть добавленный репозиторий \mongodb\.

sudo dnf repolist

Затем установите пакет MongoDB, используя следующую команду dnf. Когда вас попросят подтвердить установку, введите y и нажмите ENTER, чтобы продолжить.

sudo dnf install mongodb-org

Кроме того, вам также будет предложено подтвердить ключ GPG репозитория MongoDB. Введите y, чтобы подтвердить и добавить ключ MongoDB GPG.

если установка MongoDB завершена, выполните следующую команду, чтобы перезагрузить диспетчер systemd и применить новый служебный файл MongoDB.

sudo systemctl daemon-reload

Теперь запустите службу MongoDB с именем mongod, используя следующую системную команду. Затем включите службу mongod для автоматического запуска при запуске системы.

sudo systemctl enable mongod
sudo systemctl start mongod

Наконец, запустите следующую команду systemctl, чтобы проверить службу mongod. Вы должны увидеть, что служба MongoDB запущена и включена при загрузке системы.

sudo systemctl status mongod

Установка эластичного поиска

Эластичный поиск обрабатывает поисковую систему для стека управления журналами Graylog Server. На момент написания этой статьи вам потребуется установить Elasticsearch v7.x.

Текущая версия Graylog Server будет работать только с Elasticsearch v7.x. Если вы установите последнюю версию elasticsearch, такую как v8.x или v9.x, вы получите сообщение об ошибке.

Теперь выполните следующую команду, чтобы настроить репозиторий Elasticsearch v7.x для системы Rocky Linux.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Запустите приведенную ниже команду, чтобы проверить и проверить список репозитория в вашей системе. Вы увидите, что репозиторий Elasticsearch v7.x добавлен.

sudo dnf repolist

Затем установите пакет Elasticsearch с помощью приведенной ниже команды dnf. Когда будет предложено подтвердить установку, введите y для подтверждения и нажмите ENTER.

sudo dnf install elasticsearch

Также вам будет предложено добавить ключ GPG в репозиторий Elasticsearch. Введите y, чтобы добавить ключ GPG. И установка будет завершена.

Далее вам нужно будет настроить сервер Elasticsearch для базовой установки, которая будет использоваться сервером Graylog.

Отредактируйте файл конфигурации Elasticsearch по умолчанию /etc/elasticsearch/elasticsearch.yml с помощью приведенной ниже команды.

sudo nano /etc/elasticsearch/elasticsearch.yml

Добавьте и раскомментируйте следующую базовую конфигурацию Elasticsearch.

cluster.name: graylog-rocky8
action.auto_create_index: false

Сохраните и закройте файл, когда закончите.

Кроме того, вы также можете настроить максимальное выделение памяти для сервера Elasticsearch, отредактировав файл /etc/elasticsearch/jvm.options с помощью приведенной ниже команды.

sudo nano /etc/elasticsearch/jvm.options

раскомментируйте и измените конфигурацию по умолчанию, как показано ниже. Вы можете изменить максимальное выделение памяти здесь с максимальным объемом памяти вашего сервера.

-Xms1g
-Xmx1g

Сохраните и закройте файл, когда закончите.

Теперь выполните приведенную ниже команду systemctl, чтобы перезагрузить диспетчер systemd и применить новый служебный файл для сервера Elasticsearch.

sudo systemctl daemon-reload

Затем запустите и включите сервер Elasticsearch с помощью приведенной ниже команды. Служба Elasticsearch будет автоматически запущена при запуске системы, и текущий статус Elasticsearch теперь должен быть запущен.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Наконец, выполните следующую команду, чтобы проверить службу Elasticsearch и убедиться, что она работает. Вы должны увидеть вывод о том, что служба Elasticsearch запущена и включена.

sudo systemctl status ealsticsearch

Кроме того, вы также можете получить доступ к своему серверу Elasticsearch с помощью приведенной ниже команды curl. Вы должны получить основную информацию о вашем сервере Elasticsearch, включая имя кластера, uuuid кластера, версию Elasticsearch и версию Lucene (ядро Elasticsearch).

curl localhost:9200

Установка Graylog-сервера

После того, как вы установили Java OpenJDK, MongoDB и Elasticsearch, вам нужно установить сервер Graylog. Перед этим вам нужно будет настроить репозиторий Graylog на сервере Rocky Linux. Затем вы можете приступить к настройке сервера Graylog, включая настройку аутентификации по паролю для Graylog и настройку http_bind_address, который будет использоваться сервером Graylog.

На момент написания этой статьи последней версией Graylog Server была v4.3. Выполните следующую команду, чтобы добавить репозиторий Graylog на ваш сервер.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.rpm

Проверьте список репозиториев для Graylog Server, используя приведенную ниже команду. Вы должны увидеть, что репозиторий Graylog Server добавлен.

sudo dnf repolist

Затем выполните следующую команду dnf, чтобы установить пакет Graylog Server. Когда будет предложено подтвердить установку, введите y для подтверждения и нажмите ENTER.

sudo dnf install graylog-server graylog-integrations-plugins

Также вам будет предложено добавить ключ GPG в репозиторий Graylog Server. Введите y, чтобы добавить ключ GPG в вашу систему, и нажмите ENTER. И установка Graylog Server будет завершена.

Теперь вы будете настраивать базовый сервер Graylog. перед этим запустите приведенную ниже команду dnf, чтобы установить пакет pwgen. Введите y, когда будет предложено подтвердить установку, и нажмите ENTER.

Пакет pwgen предоставляет инструмент командной строки для создания секретов и паролей, которые будут использоваться для настройки сервера Graylog.

sudo dnf install pwgen

Затем выполните следующую команду pwgen, чтобы сгенерировать пароль_секрет для сервера Graylog. Обязательно скопируйте сгенерированный секрет в свою заметку.

sudo pwgen -N 1 -s 96

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

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Затем отредактируйте файл конфигурации Graylog Server /etc/graylog/server/server.conf, используя приведенную ниже команду.

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

Измените значение параметра password_secret и root_password_sha2 на сгенерированный вами пароль. Кроме того, вы также можете изменить имя пользователя по умолчанию для входа на сервер Graylog в параметре graylog_username.

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

Теперь измените параметр http_bind_address на внутренний IP-адрес вашего сервера. Кроме того, порт по умолчанию для Graylog Server — TCP 9000.

http_bind_address = 0.0.0.0:9000

Сохраните и закройте файл, когда закончите.

Теперь выполните следующую команду systemctl, чтобы перезагрузить диспетчер systemd и применить служебный файл Graylog Server.

sudo systemctl daemon-reload

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

sudo systemctl enable graylog-server
sudo systemctl start graylog-server

Проверьте и проверьте службу Graylog-сервера, используя следующую команду. Вы должны увидеть, что текущий статус Graylog Server запущен, он включен и будет запускаться автоматически при загрузке.

sudo systemctl status graylog-server

Наконец, вам нужно будет добавить порт 9000, который используется сервером Graylog, в файл firewalld.

Выполните следующую команду firewall-cmd, чтобы добавить порт 9000 в файл firewalld. Затем перезагрузите правила firewalld, чтобы применить новые изменения.

sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

Настройка SELinux

Если вы используете сервер Graylog с включенным SELinux в принудительном режиме, вам необходимо настроить правила SELinux для сервера Graylog.

Перед управлением SELinux запустите приведенную ниже команду dnf, чтобы установить инструмент командной строки для управления SELinux. Когда будет предложено подтвердить установку, введите y и нажмите ENTER.

sudo dnf install policycoreutils policycoreutils-python-utils

Затем выполните следующую команду, чтобы добавить правила SELinux для сервера Graylog, Elasticsearch и MongoDB.

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

Теперь вы можете получить доступ к своему серверу Graylog.

Создать новый ввод Graylog

Чтобы иметь возможность получать журналы из ваших приложений или клиентских машин, вам необходимо настроить ввод на вашем сервере Graylog. Существует несколько типов входных данных Graylog, которые вы можете использовать. Подробности см. в документации Graylog. Входные данные Graylog будут работать по протоколу TCP/UDP и смогут получать журналы в нескольких форматах, таких как Syslog, GELF, CEF или RAW. Кроме того, вы можете безопасно получать журналы по протоколу TCP/HTTPS.

В этой демонстрации вы создадите ввод Graylog, который будет использоваться для получения журналов от клиентов Linux-машины. Этот вход будет использовать \Syslog UDP\ и будет получать сообщения журналов от клиентской машины через протокол UDP.

Откройте веб-браузер и посетите IP-адрес сервера, за которым следует порт 9000 сервера Graylog (например, http://192.168.5.100:9000/). Вы увидите страницу входа в систему установки Graylog Server.

Чтобы войти в панель управления Graylog Server, введите свое имя пользователя и пароль. Затем нажмите Войти.

Теперь вы должны увидеть новое окно панели администрирования Graylog Server.

Чтобы создать новый вход Graylog, щелкните меню «Система» и выберите «Входы».

Выберите тип ввода и нажмите «Запустить новый ввод». В этом примере вы создадите новый тип ввода \Syslog UDP\. Все клиентские машины Linux будут отправлять журналы по протоколу Syslog UDP на этот вход.

Теперь введите детали вашего нового ввода, как показано ниже:

  • Заголовок: мы будем использовать заголовок syslog-udp-input.
  • Адрес привязки: введите внутренний IP-адрес вашего сервера Graylog или вы можете использовать 0.0.0.0, если вы находитесь во внутренней сети.
  • Порт: в этом примере мы будем использовать для ввода UDP-порт 5142.

Теперь нажмите \Сохранить\, чтобы добавить ввод.

Теперь вы должны увидеть статус вашего ввода Graylog со статусом «работает». А внизу вы должны увидеть подробную информацию о вашем входе в Graylog.

Наконец, вернитесь к серверу Graylog и выполните приведенную ниже команду firewall-cmd, чтобы добавить UDP-порт 5142, который будет использоваться syslog-udp-input.

sudo firewall-cmd --add-port=5142/udp --permanent
sudo firewall-cmd --reload

Отправка журнала через Ingest Syslog на сервер Graylog

Вы создали UDP-вход Graylog Syslog на сервере Graylog. Теперь вы настроите компьютер Linux для использования Rsyslog для отправки журналов на сервер Graylog. В этом примере мы будем использовать клиентскую машину Rocky Linux с именем хоста «linux-host1» и IP-адресом сервера Graylog 192.168.5.100.

Подключитесь к клиентскому компьютеру Linux и выполните следующую команду, чтобы проверить службу rsyslog на вашем компьютере с Linux. Вы должны получить вывод работающей службы rsyslog.

sudo systemctl status rsyslog

Затем создайте новый дополнительный файл конфигурации rsyslog, который будет использоваться для отправки журналов на сервер Graylog. Выполните следующую команду, чтобы создать новый файл /etc/rsyslog.d/graylog.conf.

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

Добавьте следующую конфигурацию в файл. В этой конфигурации служба rsyslog на linux-host1 будет отправлять журналы на вход Graylog Server, который работает на IP-адресе сервера 192.168.5.100 с UDP-портом 5142.

*.*@192.168.5.100:5142;RSYSLOG_SyslogProtocol23Format

Сохраните и закройте файл, когда закончите.

Теперь выполните следующую команду systemctl, чтобы перезапустить службу rsyslog и применить новые изменения в файле конфигурации. И служба rsyslog будет отправлять системные журналы на сервер Graylog, вы можете подождать несколько минут.

sudo systemctl restart rsyslog

Затем вернитесь к панели администрирования Graylog Server. Затем нажмите меню \Поиск\. Теперь вы должны увидеть журналы с машины linux-host1, доступные на сервере Graylog.

Заключение

Из этого руководства вы узнали, как установить сервер Graylog на сервер Rocky Linux. Сюда входит установка некоторых зависимостей, таких как Java OpenJDK, Elasticsearch и MongoDB. Кроме того, вы настроили сервер Graylog на Rocky Linux с включенным SELinux с принудительным режимом и включенным брандмауэром.

В конце концов, теперь вы узнали, как настроить ввод Graylog с типом «Syslog UDP», который можно использовать в качестве централизованной системы управления журналами для машин Linux. Кроме того, вы узнали, как отправлять журналы с машин Linux на сервер Graylog через службу Rsyslog. Теперь вы также настроили дополнительные входы для своих приложений или добавили новые машины Linux на сервер Graylog.