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

Как установить Graylog 4 на Ubuntu 22.04


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

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

  1. Предпосылки
  2. Начало работы
  3. Установите Java JDK
  4. Установка и настройка Elasticsearch
  5. Установить сервер MongoDB
  6. Установка и настройка Graylog
  7. Настройка Nginx в качестве обратного прокси-сервера для Graylog
  8. Доступ к веб-интерфейсу Graylog
  9. Заключение

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

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

Предпосылки

  • Сервер под управлением Ubuntu 22.04 с оперативной памятью не менее 4 ГБ.
  • На сервере настроен пароль root.

Начиная

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

apt update -y
apt upgrade

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

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

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

Установите JDK Java

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

apt install openjdk-11-jre-headless -y

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

java -version

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

openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

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

Установите и настройте Elasticsearch.

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

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

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

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

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

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

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

apt update -y
apt 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 Sun 2022-09-25 07:05:27 UTC; 21s ago
       Docs: https://www.elastic.co
   Main PID: 74226 (java)
      Tasks: 48 (limit: 4579)
     Memory: 1.2G
        CPU: 22.739s
     CGroup: /system.slice/elasticsearch.service
             ??74226 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.t>

Sep 25 07:05:11 ubuntu2204 systemd[1]: Starting Elasticsearch...
Sep 25 07:05:27 ubuntu2204 systemd[1]: Started Elasticsearch.

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

curl -X GET http://localhost:9200

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

{
  "name" : "ubuntu2204",
  "cluster_name" : "graylog",
  "cluster_uuid" : "6IWBEBx_THa2Gzqb7a1LTQ",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
    "build_date" : "2021-01-13T00:42:12.435326Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Установить сервер MongoDB

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

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

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

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

apt update -y
apt install -y mongodb-org

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

systemctl enable --now mongod

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

systemctl status mongod

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

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 07:20:35 UTC; 8s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 77018 (mongod)
     Memory: 60.0M
        CPU: 936ms
     CGroup: /system.slice/mongod.service
             ??77018 /usr/bin/mongod --config /etc/mongod.conf

Sep 25 07:20:35 ubuntu2204 systemd[1]: Started MongoDB Database Server.

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

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

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

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

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

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

dpkg -i graylog-4.3-repository_latest.deb

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

apt update -y
apt install graylog-server -y

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

pwgen -N 1 -s 96

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

d1fDH1NEOMgb3nxbFYY3eVpqzjOprwgPgFuGh2F0flDdZglJP2CxENV4WEeW8iqZXsjDEZgMob3oBvQYm62RXxoc33hKTPJa

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

echo -n "Enter Password: " && head -1

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

Enter Password: yourpassword
e472e1436cbe87774c1bc75d0a646d67e506bea1dff8701fd41f34bca33e1419

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

nano /etc/graylog/server/server.conf

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

password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
root_password_sha2 = e472e1436cbe87774c1bc75d0a646d67e506bea1dff8701fd41f34bca33e1419   

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

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 Sun 2022-09-25 07:25:13 UTC; 10s ago
       Docs: http://docs.graylog.org/
   Main PID: 78082 (graylog-server)
      Tasks: 44 (limit: 4579)
     Memory: 539.4M
        CPU: 18.488s
     CGroup: /system.slice/graylog-server.service
             ??78082 /bin/sh /usr/share/graylog-server/bin/graylog-server
             ??78119 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:-OmitStackTraceInFastThrow -Djdk.tls.acknowledgeC>

Sep 25 07:25:13 ubuntu2204 systemd[1]: Started Graylog server.
Sep 25 07:25:13 ubuntu2204 graylog-server[78119]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 a>
Sep 25 07:25:14 ubuntu2204 graylog-server[78119]: WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performan>
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: An illegal reflective access operation has occurred
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: Illegal reflective access by retrofit2.Platform (file:/usr/share/graylog-server/gr>
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: Please consider reporting this to the maintainers of retrofit2.Platform
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access >
Sep 25 07:25:17 ubuntu2204 graylog-server[78119]: WARNING: All illegal access operations will be denied in a future release

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

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

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

2022-09-25T07:25:40.117Z INFO  [ServerBootstrap] Services started, startup times in ms: {FailureHandlingService [RUNNING]=73, GeoIpDbFileChangeMonitorService [RUNNING]=88, PrometheusExporter [RUNNING]=88, OutputSetupService [RUNNING]=89, JobSchedulerService [RUNNING]=89, InputSetupService [RUNNING]=90, BufferSynchronizerService [RUNNING]=91, LocalKafkaMessageQueueReader [RUNNING]=92, LocalKafkaMessageQueueWriter [RUNNING]=92, GracefulShutdownService [RUNNING]=93, MongoDBProcessingStatusRecorderService [RUNNING]=93, UserSessionTerminationService [RUNNING]=101, StreamCacheService [RUNNING]=133, LocalKafkaJournal [RUNNING]=134, UrlWhitelistService [RUNNING]=134, ConfigurationEtagService [RUNNING]=137, EtagService [RUNNING]=139, PeriodicalsService [RUNNING]=174, LookupTableService [RUNNING]=203, JerseyService [RUNNING]=4076}
2022-09-25T07:25:40.133Z INFO  [ServerBootstrap] Graylog server up and running.

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

ss -antpl | grep 9000

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

LISTEN            0                 4096                         [::ffff:127.0.0.1]:9000                                    *:*                users:(("java",pid=78119,fd=56))                                                                                                             

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

Далее вам нужно будет установить и настроить Nginx в качестве обратного прокси-сервера для доступа к серверу Graylog через порт 80.

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

apt 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://208.117.84.72: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 по умолчанию:

rm -rf /etc/nginx/sites-enabled/default

Наконец, перезапустите службу 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 Sun 2022-09-25 07:30:45 UTC; 8s ago
       Docs: man:nginx(8)
    Process: 78980 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 78981 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 78982 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.3M
        CPU: 49ms
     CGroup: /system.slice/nginx.service
             ??78982 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??78983 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??78984 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Sep 25 07:30:45 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 25 07:30:45 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

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

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

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

Заключение

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