Мониторинг. · 7 min read · Nov 20, 2025

Установка и настройка сервера мониторинга Graylog на Ubuntu 20.04

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

В этом руководстве мы покажем вам, как установить Graylog на сервер Ubuntu 20.04.

Предварительные требования

  • Сервер с установленной Ubuntu 20.04 и минимум 4 ГБ ОЗУ
  • Настроенный пароль root.

Начало работы

Сначала вам нужно обновить пакеты вашей системы до последней версии. Вы можете обновить их все с помощью следующей команды:

apt-get update -y

После обновления всех пакетов вам также нужно будет установить некоторые зависимости на вашем сервере. Вы можете установить их все с помощью следующей команды:

apt-get install apt-transport-https gnupg2 uuid-runtime pwgen curl dirmngr -y

После установки всех необходимых зависимостей вы можете перейти к следующему шагу.

Установка Java

Graylog требует установки Java на вашем сервере. Если она не установлена, вы можете установить ее с помощью следующей команды:

apt-get install openjdk-11-jre-headless -y

После установки Java вы можете проверить установленную версию Java, выполнив следующую команду:

java -version

Вы должны получить следующий вывод:

openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

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

Установка и настройка Elasticsearch

Graylog использует Elasticsearch для хранения журналов, поступающих из внешнего ресурса. Поэтому вам нужно будет установить Elasticsearch в вашей системе.

По умолчанию последняя версия Elasticsearch недоступна в стандартном репозитории Ubuntu. Поэтому вам нужно будет добавить репозиторий Elasticsearch в вашу систему.

Сначала загрузите и добавьте GPG-ключ Elasticsearch с помощью следующей команды:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

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

echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Далее обновите репозиторий и установите Elasticsearch с помощью следующей команды:

apt-get update -y  
apt-get install elasticsearch-oss -y

После установки Elasticsearch вам нужно будет отредактировать файл конфигурации Elasticsearch и определить имя кластера. Вы можете сделать это с помощью следующей команды:

nano /etc/elasticsearch/elasticsearch.yml

Определите имя вашего кластера как graylog и добавьте другую строку, как показано ниже:

cluster.name: graylog
action.auto_create_index: false

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

systemctl daemon-reload  
systemctl start elasticsearch  
systemctl enable elasticsearch

Вы также можете проверить статус службы Elasticsearch с помощью следующей команды:

systemctl status elasticsearch

Вы должны получить следующий вывод:

? elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 08:41:18 UTC; 9s ago
       Docs: http://www.elastic.co
   Main PID: 7085 (java)
      Tasks: 17 (limit: 2353)
     Memory: 1.1G
     CGroup: /system.slice/elasticsearch.service
             ??7085 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly ->

Sep 05 08:41:18 ubuntu2004 systemd[1]: Started Elasticsearch.

Теперь проверьте ответ Elasticcsearch с помощью следующей команды:

curl -X GET http://localhost:9200

Вы должны получить следующий вывод:

{
  "name" : "vzg8H4j",
  "cluster_name" : "graylog",
  "cluster_uuid" : "6R9SlXxNSUGe6aclcJa9VQ",
  "version" : {
    "number" : "6.8.12",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "7a15d2a",
    "build_date" : "2020-08-12T07:27:20.804867Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.3",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Установка сервера MongoDB

Graylog использует MongoDB в качестве базы данных. Поэтому вам нужно будет установить базу данных MongoDB на ваш сервер. Вы можете установить ее с помощью следующей команды:

apt-get install mongodb-server -y

После установки MongoDB запустите службу MongoDB и включите ее автозагрузку при перезагрузке системы с помощью следующей команды:

systemctl start mongodb  
systemctl enable mongodb

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

Установка и настройка Graylog

По умолчанию пакет Graylog недоступен в стандартном репозитории Ubuntu. Поэтому вам нужно будет установить репозиторий graylog на ваш сервер.

Вы можете загрузить пакет репозитория Graylog с помощью следующей команды:

wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb

Когда загрузка завершится, установите загруженный пакет с помощью следующей команды:

dpkg -i graylog-3.3-repository_latest.deb

Затем обновите репозиторий и установите сервер Graylog с помощью следующей команды:

apt-get update -y  
apt-get install graylog-server -y

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

pwgen -N 1 -s 96

Вы должны увидеть следующий вывод:

Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c

Затем вам также нужно будет сгенерировать безопасный пароль для пользователя администратора Graylog. Вам понадобится этот пароль для входа в веб-интерфейс Graylog. Вы можете сгенерировать его с помощью следующей команды:

echo -n password | sha256sum

Вы должны увидеть следующий вывод:

5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8  -

Теперь отредактируйте основной файл конфигурации Graylog и определите оба пароля:

nano /etc/graylog/server/server.conf

Вставьте оба пароля, которые вы сгенерировали выше, как показано ниже:

password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8   

Затем вам также нужно будет определить адрес привязки вашего сервера, как показано ниже:

http_bind_address = 127.0.0.1:9000

Сохраните и закройте файл, когда закончите, затем запустите службу Graylog и включите ее автозагрузку при перезагрузке системы с помощью следующей команды:

systemctl daemon-reload  
systemctl start graylog-server  
systemctl enable graylog-server

Затем вы можете проверить статус сервера Graylog, используя следующую команду:

systemctl status graylog-server

Вы должны увидеть следующий вывод:

? graylog-server.service - Graylog server
     Loaded: loaded (/lib/systemd/system/graylog-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 08:50:16 UTC; 15min ago
       Docs: http://docs.graylog.org/
   Main PID: 8693 (graylog-server)
      Tasks: 156 (limit: 2353)
     Memory: 865.0M
     CGroup: /system.slice/graylog-server.service
             ??8693 /bin/sh /usr/share/graylog-server/bin/graylog-server
             ??8726 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX>

Sep 05 08:50:16 ubuntu2004 systemd[1]: Started Graylog server.

Вы также можете проверить журнал сервера Graylog с помощью следующей команды:

tail -f /var/log/graylog-server/server.log

Когда сервер Graylog успешно запустится, вы должны получить следующий вывод:

2020-09-05T08:51:36.473Z INFO  [ServerBootstrap] Services started, startup times in ms: {InputSetupService [RUNNING]=59, JobSchedulerService [RUNNING]=105, GracefulShutdownService [RUNNING]=106, OutputSetupService [RUNNING]=110, BufferSynchronizerService [RUNNING]=111, UrlWhitelistService [RUNNING]=153, JournalReader [RUNNING]=166, KafkaJournal [RUNNING]=222, MongoDBProcessingStatusRecorderService [RUNNING]=240, ConfigurationEtagService [RUNNING]=259, EtagService [RUNNING]=302, StreamCacheService [RUNNING]=306, LookupTableService [RUNNING]=376, PeriodicalsService [RUNNING]=655, JerseyService [RUNNING]=58701}
2020-09-05T08:51:36.477Z INFO  [ServerBootstrap] Graylog server up and running.

На этом этапе сервер Graylog запущен и слушает на порту 9000.

Настройка Nginx как обратного прокси для Graylog

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

Сначала установите сервер Nginx с помощью следующей команды:

apt-get install nginx -y

После установки сервера Nginx создайте новый файл конфигурации виртуального хоста Nginx с помощью следующей команды:

nano /etc/nginx/sites-available/graylog.conf

Добавьте следующие строки:

server {
    listen 80;
    server_name graylog.example.org;

    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/;
      proxy_pass       http://127.0.0.1:9000;
    }
}

Сохраните и закройте файл, когда закончите. Затем проверьте Nginx на наличие синтаксических ошибок с помощью следующей команды:

nginx -t

Вы должны получить следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем включите файл конфигурации виртуального хоста Nginx с помощью следующей команды:

ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/

Наконец, перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Затем проверьте статус Graylog с помощью следующей команды:

systemctl status nginx

Вы должны получить следующий вывод:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:07:50 UTC; 20s ago
       Docs: man:nginx(8)
    Process: 9408 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 9419 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 9423 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 10.2M
     CGroup: /system.slice/nginx.service
             ??9423 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??9424 nginx: worker process
             ??9425 nginx: worker process

Sep 05 09:07:50 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 05 09:07:50 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Доступ к веб-интерфейсу Graylog

Теперь откройте ваш веб-браузер и введите URL http://graylog.example.com. Вы будете перенаправлены на страницу входа в Graylog, как показано ниже:

Вход в Graylog

Введите ваше имя пользователя администратора, пароль и нажмите кнопку Войти. Вы должны увидеть панель управления Graylog на следующей странице:

Начало работы с Graylog

Теперь нажмите на Система >> Обзор. Вы должны увидеть статус сервера Graylog на следующей странице:

Graylog

Заключение

Поздравляем! Вы успешно установили и настроили сервер Graylog с Nginx в качестве обратного прокси на Ubuntu 20.04. Теперь вы можете исследовать Graylog и создать вход для получения журналов Rsyslog из внешних источников. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо вопросы.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.