Установка Graylog на CentOS 8

Материал из sysadm
Перейти к навигации Перейти к поиску

Подготовка

Установите Java

dnf install java-1.8.0-openjdk-headless

Установите утилиту для генерации паролей (не обязательно)

dnf install epel-release
dnf install pwgen

Установите MongoDB

Установка MongoDB на CentOS 8

Установите Elasticsearch

Установка Elasticsearch на CentOS 8

Измените файл конфигурации Elasticsearch

vi /etc/elasticsearch/elasticsearch.yml

Раскоментируйте строку и задайте имя кластера cluster.name: graylog

Добавьте параметр action.auto_create_index: false

Перезагрузите сервис elasticsearch

systemctl restart elasticsearch

# проверка
systemctl status elasticsearch

# подождите пару минут и проверьте ответ elasticsearch
curl -X GET http://localhost:9200

#ожидаемый вывод
{
  ...
  "cluster_name" : "graylog"
  ...
}

Установка Graylog

# добавление репозитория
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.rpm

# обновление
dnf update

# установка
dnf install graylog-server

#требуется лицензия
#dnf install graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins

Измините файл конфигурации /etc/graylog/server/server.conf

  • секретный ключ password_secret (не менее 64 знаков)
  • sha2 хеш административного пароля root_password_sha2
  • адрес и порт для работы веб интерфейса http_bind_address

Секретный ключ можно сгенерировать командой pwgen -N 1 -s 96.

Для получения sha2 хеша можно использовать команду

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

IP адрес задается следующим образом

http_bind_address = 192.168.0.10:9000

Настройте разрешения SELinux

dnf install policycoreutils-python-utils

# проверьте что для порта 9000 (Graylog RestAPI) назначен контекст http_port_t
semanage port -l | grep http_port_t

# если не назначен то добавьте
semanage port -a -t http_port_t -p tcp 9000

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

# разрешение для веб-сервера инициировать сетевые подключения
setsebool -P httpd_can_network_connect on

# разрешение на порт Elasticsearch (если используется HTTP API)
semanage port -a -t http_port_t -p tcp 9200

# разрешение на порт MongoDB
semanage port -a -t mongod_port_t -p tcp 27017

Включите из запустите сервис graylog

systemctl enable graylog-server
systemctl start  graylog-server

# проверка
systemctl status graylog-server

Откройте доступ на файрволе

Для этого сначала задайте описание сервиса

vi /usr/lib/firewalld/services/graylog.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>graylog</short>
  <description>Graylog Server</description>
  <port protocol="tcp" port="9000"/>
</service>
firewall-cmd --reload

# проверьте список определений сервисов
firewall-cmd --get-services | grep graylog

# проверте определение сервиса
firewall-cmd --info-service=graylog

Добавьте доступ к сервису

firewall-cmd --permanent --add-service=graylog
firewall-cmd --reload