Graylog — это сервер сбора и анализа логов, в этой статье будет описана установка этого сервера версии 6.1 на Debian 12.
Введение
Graylog это сервер сбора логов с других серверов, который позволяет централизовано собирать, смотреть и визуализировать логи. Официальную документацию по этому решению вы найдёте здесь.
Этот сервер работает на Java. Для хранения сообщений журнала и метаданных используется NoSQL база данных MongoDB. А в качестве поисковой системы можно использовать OpenSearch или ElasticSearch. Я же буду использовать DataNode — это уже подготовленный OpenSearch для Graylog.
Таким образом мы установим:
- Java
- MongoDB
- DataNode
- Graylog
Установка Java
Установим Java и чтобы проверить правильность установки посмотрим на её версию:
# apt install -y openjdk-17-jre # java -version
Установка MongoDB
Настроим репозиторий:
# apt install -y curl gnupg # curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor # echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" > /etc/apt/sources.list.d/mongodb-org-7.0.list
Установим MongoDB:
# apt update # apt install -y mongodb-org
Включим и добавим в автозагрузку службу сервера mongodb, проверим её статус и зафиксируем версию:
# systemctl enable --now mongod # systemctl status mongod # apt-mark hold mongodb-org
Установка Data Node
Настроим репозиторий:
# wget https://packages.graylog2.org/repo/packages/graylog-6.1-repository_latest.deb # dpkg -i graylog-6.1-repository_latest.deb
Установим Data Node:
# apt update # apt install -y graylog-datanode
Сгенерируем секретный пароль и запишем его в конфиг:
# head -c 96 /dev/urandom | base64 | tr -dc 'A-Za-z0-9' | head -c 96; echo # nano /etc/graylog/datanode/datanode.conf password_secret = <сгенерированный пароль>
По умолчанию Data Node использует каталог mmapfs для хранения своих индексов. Ограничения операционной системы по умолчанию на количество mmap, скорее всего, будут слишком низкими, что может привести к нехватке памяти. Исправим это:
# nano /etc/sysctl.d/graylog.conf vm.max_map_count=262144 # sysctl -p /etc/sysctl.d/graylog.conf vm.max_map_count = 262144
Включим службу сервера и добавим её в автозагрузку, а также посмотрим на статус службы:
# systemctl enable --now graylog-datanode # systemctl status graylog-datanode
Установка Graylog
Установим Graylog сервер:
# apt install graylog-server
Сгенерируем хэш пароль от админки:
# echo -n '<пароль>' | sha256sum
В конфиг добавим секретный пароль (который мы генерировали для Data Node) и хеш пароля от админки. А также укажем, на каком адресе работает сервер:
# nano /etc/graylog/server/server.conf password_secret = <сгенерированный секрет> root_password_sha2 = <сгенерированный хэш пароль> http_bind_address = <ip_сервера>:9000
Запустим службу сервера и добавим её в автозагрузку:
# systemctl daemon-reload # systemctl enable --now graylog-server # systemctl status graylog-server
После запуска посмотрим первые логи:
# tail /var/log/graylog-server/server.log
Там должна быть ссылка с логином и паролем для первого входа, например такая — http://admin:GjVZHoYPQU@192.168.0.28:9000. При первом входе перейдите по этой ссылке в вашем браузере.
Настройка сертификатов
При первом входе нужно будет настроить сертификаты. Вы можете загрузить на сервер свой CA файл, если у вас есть такой, или создать CA и использовать его. Я покажу как создать новый CA.
Выбираем вкладку «Create new CA» и нажимаем на кнопку «Create CA».
Дальше настроим политику обновления сертификатов, например я указал обновлять сертификаты раз в год:
Дальше нажмите на кнопку «Provision certificate and continue»:
Ну и наконец нажмите на кнопку «Resume startup»:
Первый вход в систему
После проделанного вы сможете зайти под пользователем admin и вашим придуманным паролем (вы для него создавали хэш):
О том, как начать собирать логи с ваших серверов я опишу в отдельных статьях.
Если понравилась статья, подпишись на мой канал в VK.