Graylog — сбор, хранение и анализ логов
Подготовительные работы
Обновим систему:
apt update && apt upgrade -y Установим пакеты:
apt install mc nano wget curl gnupg sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb Установка OpenJDK
Graylog построен на Java, поэтому нам необходимо установить среду выполнения Java. Установим OpenJDK 17, который хорошо работает с Graylog.
sudo apt install openjdk-17-jdk -y Проверим:
java -version 
Установка MongoDB 6
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
Устанавливаем MongoDB:
sudo apt-get install -y mongodb-org Запускаем сервис:
sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl restart mongod.service
sudo systemctl --type=service --state=active | grep mongod Проверяем:
systemctl status mongod.service и получаем ответ:

Устанавливаем OpenSearch
sudo apt-get update && sudo apt-get -y install lsb-release ca-certificates curl gnupg2 Добавляем репозиторий:
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
sudo apt update Устанавливаем OpenSearch и сразу генерируем пароль администратор:
sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom | head -c${1:-32}) apt-get install opensearch Настраиваем параметры OpenSearch:
sudo nano /etc/opensearch/opensearch.yml Для конфигурации из одной ноды достаточно настроить следующие параметры:
cluster.name: graylog
node.name: ${HOSTNAME}
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
discovery.type: single-node
network.host: 0.0.0.0
action.auto_create_index: false
plugins.security.disabled: true
indices.query.bool.max_clause_count: 32768
Настройка отправки уведомлений:
transport_email_enabled = true
transport_email_hostname = smtp.gmail.com
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = false
transport_email_use_ssl = true
transport_email_auth_username =
transport_email_auth_password =
transport_email_subject_prefix = [graylog]
transport_email_from_email =
transport_email_web_interface_url =
Изменим настройки Java: sudo nano /etc/opensearch/jvm.options В параметрах Xms и Xmx нужно указать сколько памяти может исопльзовать виртуальная машина java. Здесь рекомендуется указать половину RAM сервера. Например, для хоста с 8 Гб, здесь нужно выделить 4 Гб:
-Xms4g
-Xmx4g Измените параметры виртуальной памяти:
sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf Запускаем OpenSearch:
sudo systemctl enable --now opensearch Устанавливаем Graylog
wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
sudo dpkg -i graylog-5.2-repository_latest.deb
sudo apt-get update && sudo apt-get install graylog-server Сгенерируйте пароли для двух переменных password_secret и root_password_sha2, без которых Graylog не запустится.
Пароль password_secret должен содержать минимум 64 символа:
pwgen -N 1 -s 96 Затем нужно получить хэш пароля администратора Graylog. Следующая команда сгенерирует хэш введенного вами пароля:
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1 Скопируйте полученные значения password_secret и root_password_sha2 в файл /etc/graylog/server/server.conf
В http_bind_address укажите IP адрес и порт, на котором будет запущен веб сервер Graylog.

Запускаем сервер Graylog:
sudo systemctl enable --now graylog-server Первый вход в веб интерфейс Graylog
Для захода в веб интерфейс под пользователем admin — пароль который был указан в конфиге приниматься не будет. Временный пароль сервера можно посмотреть введя команду:
cat /var/log/graylog-server/server.log 
Первый раз нужно войти под временным паролем.

Режим Graylog data node используется для настройки OpenSearch кластера из нескольких нод. Для простой конфигурации из одного сервера логов, этот этап можно пропустить. Нажимаем resume startup
Откроется основное окно входа в систему логирования:

После входа необходимо создать нового пользователя:
System-> User and Teams
Некоторые настройки встроенного администратора нельзя кастомизировать, поэтому лучше работать под отдельным пользователя. Назначьте пользователю роль admin и задайте email адрес.







