Мониторинг. · 23 min read · Nov 07, 2025
Как установить программное обеспечение мониторинга Icinga 2 на Ubuntu 22.04 LTS

Icinga2 — это бесплатное программное обеспечение для мониторинга сети с открытым исходным кодом, которое может проверять доступность ресурсов сети и уведомлять пользователей о сбоях. Вы можете мониторить сетевые службы (SMTP, POP3, HTTP, NNTP, ping), ресурсы хоста (использование ЦП, использование диска) и сетевые компоненты (коммутаторы, маршрутизаторы, датчики температуры и влажности) с помощью Icinga2. Его можно интегрировать с плагинами Nagios.
В следующем руководстве вы научитесь устанавливать Icinga2 на сервер Ubuntu 22.04 и подключать его к клиентскому узлу. Вместо стандартного сервера Apache мы будем использовать Nginx для работы Icinga2 Web.
Предварительные требования
- Две машины с установленной Ubuntu 22.04. Одна из них будет выступать в роли главного сервера, а другая — в роли клиента для мониторинга.
- Непривилегированный пользователь с правами sudo на обоих серверах.
- Полностью квалифицированное доменное имя (FQDN) для главного сервера,
icinga.example.com, и клиентского узла,client.example.com. - Убедитесь, что все обновлено.
$ sudo apt update $ sudo apt upgrade - Несколько пакетов, которые нужны вашей системе.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yНекоторые из этих пакетов могут уже быть установлены в вашей системе.
Шаг 1 - Настройка брандмауэра на главном сервере
Первый шаг — настроить брандмауэр. Ubuntu по умолчанию поставляется с ufw (Uncomplicated Firewall).
Проверьте, работает ли брандмауэр.
$ sudo ufw status
Вы должны получить следующий вывод.
Status: inactive
Разрешите SSH-порт, чтобы брандмауэр не разорвал текущее соединение при его включении.
$ sudo ufw allow OpenSSH
Разрешите порт 5665, который необходим клиенту Icinga2 для подключения к серверу.
$ sudo ufw allow 5665
Также разрешите порты HTTP и HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Включите брандмауэр
$ sudo ufw enable
Команда может нарушить существующие ssh-соединения. Продолжить операцию (y|n)? y
Брандмауэр активен и включен при запуске системы
Проверьте статус брандмауэра снова.
$ sudo ufw status
Вы должны увидеть аналогичный вывод.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
5665 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
5665 (v6) ALLOW Anywhere (v6)
Шаг 2 - Установка MySQL
Ubuntu 22.04 поставляется с последней версией MySQL. Вы можете установить его одной командой.
$ sudo apt install mysql-server
Проверьте версию MySQL.
$ mysql --version
mysql Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Этот шаг необходим для версий MySQL 8.0.28 и выше. Войдите в оболочку MySQL.
$ sudo mysql
Выполните следующую команду, чтобы установить пароль для вашего пользователя root. Убедитесь, что он содержит комбинацию цифр, заглавных и строчных букв, а также специальных символов.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Выйдите из оболочки.
mysql> exit
Запустите скрипт безопасной установки MySQL.
$ sudo mysql_secure_installation
Сначала вас попросят ввести пароль root. Введите его. Затем вас попросят установить компонент проверки пароля. Он проверяет надежность паролей, используемых в MySQL. Нажмите Y, чтобы установить его. Далее вам будет предложено установить уровень политики проверки пароля. Выберите 2, так как это самый строгий уровень.
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.
Estimated strength of the password: 100
Затем введите N, чтобы отказаться от изменения пароля root. Также введите Y, чтобы удалить анонимных пользователей, запретить удаленные входы root, удалить тестовую базу данных и перезагрузить таблицы привилегий.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Шаг 3 - Настройка MySQL
Войдите в оболочку MySQL. Введите свой пароль root, когда будет предложено.
$ sudo mysql -u root -p
Создайте базу данных Icinga.
mysql> CREATE DATABASE icinga2;
Создайте учетную запись SQL для Icinga2. Не изменяйте имя базы данных и имя пользователя, так как они уже установлены по умолчанию. Если вы хотите изменить их, вам нужно будет выполнить дополнительные шаги при установке драйвера MySQL на Шаге 5. Введите пароль, и вы получите ошибку, а затем вас попросят перенастроить, где вы сможете указать свое собственное имя базы данных и пользователей.
mysql> CREATE USER 'icinga2'@'localhost' IDENTIFIED BY 'Your_password2';
Предоставьте все привилегии на базу данных пользователю.
mysql> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2'@'localhost';
Сбросьте привилегии пользователей.
mysql> FLUSH PRIVILEGES;
Выйдите из оболочки.
mysql> exit
Шаг 4 - Установка Icinga2 и плагинов мониторинга на главном сервере
Мы будем использовать официальный репозиторий Icinga2 для установки. Скачайте и импортируйте GPG-ключ Icinga2.
$ wget -O - https://packages.icinga.com/icinga.key | sudo gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
Выполните следующие команды, чтобы создать и добавить информацию о репозитории Icinga2 в список источников APT.
$ echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-`lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
$ echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] http://packages.icinga.com/ubuntu icinga-`lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
Обновите список репозиториев системы.
$ sudo apt update
Установите Icinga2 и плагины мониторинга.
$ sudo apt install icinga2 monitoring-plugins -y
Шаг 5 - Установка драйвера IDO MySQL на главном сервере
Для работы Icinga2 нужна база данных. Для этого нам нужно установить драйвер IDO MySQL и настроить подключение к базе данных. Выполните следующую команду для установки драйвера MySQL.
$ sudo apt install -y icinga2-ido-mysql
Вас попросят настроить драйвер и создать базу данных с помощью утилиты dbconfig-common. Выберите Да, чтобы продолжить.
Затем вас попросят ввести пароль MySQL для базы данных icinga2. Введите пароль, настроенный на шаге 3, чтобы продолжить.

Вас попросят подтвердить пароль еще раз.

Затем вас попросят включить функцию ido-mysql. Выберите Да, чтобы продолжить.

Вы можете проверить данные базы данных в файле /etc/icinga2/features-available/ido-mysql.conf.
$ cat /etc/icinga2/features-available/ido-mysql.conf
/**
* The db_ido_mysql library implements IDO functionality
* for MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga2",
password = "Your_password2",
host = "localhost",
database = "icinga2"
}
Включите функцию ido-mysql.
$ sudo icinga2 feature enable ido-mysql
Перезапустите службу Icinga2.
$ sudo systemctl restart icinga2
Проверьте статус службы.
$ sudo systemctl status icinga2
? icinga2.service - Icinga host/service/network monitoring system
Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/icinga2.service.d
??limits.conf
Active: active (running) since Mon 2023-05-01 08:02:36 UTC; 1s ago
Process: 9823 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/default/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 9828 (icinga2)
Status: "Startup finished."
Tasks: 10
Memory: 17.6M
CPU: 657ms
CGroup: /system.slice/icinga2.service
??9828 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??9846 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??9849 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
Шаг 6 - Настройка API Icinga2
Чтобы управлять и настраивать мониторинг Icinga2 через HTTP, вам нужно настроить API Icinga2. Выполните следующую команду, чтобы включить API Icinga2, сгенерировать TLS-сертификаты для Icinga2 и обновить конфигурации Icinga2.
$ sudo icinga2 api setup
Вы получите аналогичный вывод.
information/cli: Generating new CA.
information/base: Writing private key to '/var/lib/icinga2/ca//ca.key'.
information/base: Writing X509 certificate to '/var/lib/icinga2/ca//ca.crt'.
information/cli: Generating new CSR in '/var/lib/icinga2/certs//icinga.example.com.csr'.
information/base: Writing private key to '/var/lib/icinga2/certs//icinga.example.com.key'.
information/base: Writing certificate signing request to '/var/lib/icinga2/certs//icinga.example.com.csr'.
information/cli: Signing CSR with CA and writing certificate to '/var/lib/icinga2/certs//icinga.example.com.crt'.
information/pki: Writing certificate to file '/var/lib/icinga2/certs//icinga.example.com.crt'.
information/cli: Copying CA certificate to '/var/lib/icinga2/certs//ca.crt'.
information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'.
information/cli: Reading '/etc/icinga2/icinga2.conf'.
information/cli: Enabling the 'api' feature.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Updating 'NodeName' constant in '/etc/icinga2/constants.conf'.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating 'ZoneName' constant in '/etc/icinga2/constants.conf'.
information/cli: Backup file '/etc/icinga2/constants.conf.orig' already exists. Skipping backup.
Done.
Теперь перезапустите демона Icinga 2, чтобы завершить установку!
Вышеуказанная команда создает файл /etc/icinga2/conf.d/api-users.conf с пользователем по умолчанию root, имеющим все разрешения на API Icinga2. Нам нужен новый пользователь с минимальными разрешениями, необходимыми для Icinga Web.
Откройте файл api-users.conf для редактирования.
$ sudo nano /etc/icinga2/conf.d/api-users.conf
Добавьте следующий код в конец файла.
/** api for icingaweb2 */
object ApiUser "icingaweb2" {
password = "PassWordApiIcingaWeb2"
permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}
Запишите учетные данные, которые понадобятся позже для доступа к веб-сайту. Сервер API Icinga2 по умолчанию слушает на порту 5665. Перезапустите службу, чтобы изменения вступили в силу.
$ sudo systemctl restart icinga2
Следующий шаг — установить веб-интерфейс Icinga. Он предварительно настроен для Apache, но мы будем использовать сервер Nginx. Поэтому сначала нам нужно установить Nginx и SSL-сертификаты.
Шаг 7 - Установка Nginx
Ubuntu 22.04 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.
Импортируйте ключ подписи Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Добавьте репозиторий для стабильной версии Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Обновите системные репозитории.
$ sudo apt update
Установите Nginx.
$ sudo apt install nginx
Проверьте установку.
$ nginx -v
nginx version: nginx/1.24.0
Запустите сервер Nginx.
$ sudo systemctl start nginx
Шаг 8 - Установка SSL
Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете либо установить Certbot с помощью репозитория Ubuntu, либо загрузить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.
Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Выполните следующие команды, чтобы убедиться, что ваша версия Snapd обновлена.
$ sudo snap install core && sudo snap refresh core
Установите Certbot.
$ sudo snap install --classic certbot
Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку в директории /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Выполните следующую команду для генерации SSL-сертификата.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d icinga.example.com
Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/icinga.example.com на вашем сервере.
Сгенерируйте сертификат Diffie-Hellman group.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Проверьте службу планировщика обновления Certbot.
$ sudo systemctl list-timers
Вы найдете snap.certbot.renew.service в числе запланированных для выполнения служб.
NEXT LEFT LAST PASSED UNIT ACTIVATES
------------------------------------------------------------------------------------------------------------------------------------
Mon 2023-05-01 13:37:57 UTC 3h 45min left Mon 2023-05-01 07:20:42 UTC 2h 31min ago ua-timer.timer ua-timer.service
Mon 2023-05-01 14:39:29 UTC 4h 47min left Sat 2023-02-04 16:04:18 UTC 2 months ago motd-news.timer motd-news.service
Mon 2023-05-01 15:53:00 UTC 6h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Выполните пробный запуск процесса, чтобы проверить, работает ли обновление SSL.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, вы готовы. Ваш сертификат будет обновляться автоматически.
Шаг 9 - Настройка Nginx и PHP
Поскольку Icinga настроен для Apache, пакет PHP-FPM не установлен по умолчанию. Вам также понадобится модуль PHP Imagick, если вы хотите экспортировать графики в PDF. Выполните следующую команду для установки PHP-FPM и библиотеки PHP Imagick.
$ sudo apt install php-fpm php-imagick
Настройка PHP-FPM
Откройте файл /etc/php/8.1/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.1/fpm/pool.d/www.conf
Нам нужно установить Unix-пользователя/группу процессов PHP на nginx. Найдите строки user=www-data и group=www-data в файле и измените их на nginx.
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = nginx
group = nginx
...
Найдите строки listen.owner = www-data и listen.group = www-data в файле и измените их на nginx.
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Перезапустите службу PHP-FPM.
$ sudo systemctl restart php8.1-fpm
Настройка Nginx
Создайте и откройте файл /etc/nginx/conf.d/icinga.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/icinga.conf
Вставьте следующий код в него.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name icinga.example.com;
access_log /var/log/nginx/icinga.access.log;
error_log /var/log/nginx/icinga.error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/icinga.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/icinga.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/icinga.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
location ~ ^/index\.php(.*)$ {
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Depends On The PHP Version
fastcgi_index index.php;
# try_files $uri =404;
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php;
fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
fastcgi_param REMOTE_USER $remote_user;
}
location ~ ^/(.*)? {
alias /usr/share/icingaweb2/public;
index index.php;
rewrite ^/$ /dashboard;
try_files $1 $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
return 404;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name icinga.example.com;
return 301 https://$host$request_uri;
}
Обратите внимание, что корневая директория, которая будет использоваться в конфигурации Nginx, — это /usr/share/icingaweb2/public.
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте синтаксис конфигурационного файла Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите службу Nginx.
$ sudo systemctl restart nginx
Шаг 10 - Подготовка веб-настройки
Перед доступом к Icinga Web нам нужно его настроить. При использовании Icinga Web вам необходимо пройти аутентификацию с помощью токена. Сгенерируйте токен с помощью следующей команды.
$ sudo icingacli setup token create
The newly generated setup token is: 3c4d4e155635f512
Запишите токен, так как он понадобится вам позже. Вы всегда можете получить его позже с помощью следующей команды.
$ sudo icingacli setup token show
The current setup token is: 3c4d4e155635f512
Следующий шаг — создать базу данных и учетную запись базы данных. Войдите в оболочку MySQL.
$ sudo mysql -u root -p
Создайте базу данных Icinga Web.
mysql> CREATE DATABASE icingaweb2;
Создайте учетную запись SQL для Icinga Web.
mysql> CREATE USER 'icingaweb2'@'localhost' IDENTIFIED BY 'Your_password3';
Предоставьте все привилегии на базу данных пользователю.
mysql> GRANT ALL PRIVILEGES ON icingaweb2.* TO 'icingaweb2'@'localhost';
Сбросьте привилегии пользователей.
mysql> FLUSH PRIVILEGES;
Выйдите из оболочки.
mysql> exit
Шаг 11 - Настройка IcingaWeb
Откройте URL https://icinga.example.com в вашем браузере, и вы увидите следующий экран.

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

На следующем экране выберите модули, которые вы хотите установить, и нажмите Далее, чтобы продолжить. Модуль Мониторинг выбран для вас по умолчанию. На следующей странице вам будут показаны требования и информация о том, были ли они выполнены. Убедитесь, что все требования отмечены зеленым.

Нажмите Далее, чтобы перейти на следующую страницу для выбора типа аутентификации.

Тип аутентификации по умолчанию установлен на Базу данных. Нажмите Далее, чтобы продолжить. На следующей странице вам будет предложено заполнить учетные данные базы данных.

Заполните учетные данные базы данных, созданные на шаге 10. Нажмите кнопку Проверить конфигурацию, чтобы проверить учетные данные. После проверки нажмите Далее, чтобы продолжить. Далее вам будет предложено назвать бэкенд аутентификации.

Оставьте значение по умолчанию и нажмите Далее, чтобы продолжить. На следующей странице вам будет предложено создать учетную запись администратора.

Введите учетные данные для вашей новой учетной записи администратора и нажмите Далее, чтобы продолжить. Далее вам будет показана страница Конфигурация приложения.

Оставьте все значения по умолчанию для конфигурации приложения и ведения журнала и нажмите Далее, чтобы продолжить. Вам будет предложено просмотреть конфигурацию на последней странице.

Вы можете вернуться, чтобы изменить любые настройки. Если вы удовлетворены, нажмите Далее, чтобы продолжить.
Нажмите Далее, чтобы продолжить с конфигурацией модуля мониторинга. Далее вам будут предложены учетные данные базы данных Icinga.

Заполните учетные данные базы данных на шаге 3 и нажмите Проверить конфигурацию, чтобы проверить соединение. После проверки нажмите Далее, чтобы продолжить. Далее вам будет предложено заполнить данные API.

Заполните учетные данные API, созданные на шаге 6, и нажмите Проверить конфигурацию, чтобы проверить соединение. Нажмите Далее, чтобы продолжить. Далее вам будет предложено выбрать защищенные пользовательские переменные для безопасности мониторинга.

Оставьте значения по умолчанию и нажмите Далее, чтобы продолжить. Далее вам будет предложено просмотреть конфигурацию мониторинга. Вы можете вернуться и изменить ее, если хотите.

Если вы удовлетворены, нажмите Завершить, чтобы завершить установку.

После успешного завершения нажмите кнопку Войти в Icinga Web 2, чтобы открыть страницу входа.

Введите данные вашей учетной записи администратора и нажмите кнопку Войти, чтобы открыть панель управления Icinga Web.

Перейдите на страницу Обзор >> Службы, чтобы проверить статус главного сервера, аналогичный следующему.

Шаг 12 - Инициализация главного сервера
Следующий шаг — инициализация главного сервера как главного узла. Главный узел выступает в роли основного контроллера для стека мониторинга. Выполните следующую команду, чтобы начать процесс инициализации.
$ sudo icinga2 node wizard
Вас спросят, является ли это настройкой агента. Введите n, чтобы настроить главный узел.
Welcome to the Icinga 2 Setup Wizard!
We will guide you through all required configuration details.
Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]: n
Затем вас попросят указать общее имя или доменное имя. Нажмите Enter, чтобы выбрать значение по умолчанию, которое отображается.
Please specify the common name (CN) [icinga.example.com]:
Reconfiguring Icinga...
Checking for existing certificates for common name 'icinga.example.com'...
Certificate '/var/lib/icinga2/certs//icinga.example.com.crt' for CN 'icinga.example.com' already existing. Skipping certificate generation.
Generating master configuration for Icinga 2.
'api' feature already enabled.
Затем введите имя главной зоны и нажмите Enter, чтобы продолжить. В нашем случае это то же самое, что и доменное имя сервера.
Master zone name [master]: icinga.example.com
Затем вас спросят, хотите ли вы добавить какие-либо дополнительные глобальные зоны. Нажмите n, чтобы пропустить добавление, и нажмите Enter, чтобы продолжить.
Default global zones: global-templates director-global
Do you want to specify additional global zones? [y/N]: n
На следующем шаге оставьте хост и порт привязки API по умолчанию и нажмите Enter, чтобы продолжить.
Please specify the API bind host/port (optional):
Bind Host []:
Bind Port []:
Затем нажмите Y, чтобы отключить конфигурацию внутри директории /etc/icinga2/conf.d/, так как мы будем использовать конфигурацию зон Icinga2 позже.
Do you want to disable the inclusion of the conf.d directory [Y/n]: Y
Disabling the inclusion of the conf.d directory...
Checking if the api-users.conf file exists...
Done.
Now restart your Icinga 2 daemon to finish the installation!
Перезапустите службу, чтобы применить изменения.
$ sudo systemctl restart icinga2
И, наконец, выполните следующую команду, чтобы создать билет для клиентского сервера. Используйте доменное имя клиента в качестве аргумента.
$ sudo icinga2 pki ticket --cn 'client.example.com'
365cd931d3091537622a95b113b17775893a224f
Запишите билет для использования позже.
Шаг 13 - Инициализация агента Icinga2 на клиентском сервере
Войдите на клиентский сервер и установите Icinga2 и плагины мониторинга. Выполните следующие команды, чтобы сделать это.
$ wget -O - https://packages.icinga.com/icinga.key | sudo gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-`lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
$ echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] http://packages.icinga.com/ubuntu icinga-`lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list.d/$(lsb_release -cs)-icinga.list
$ sudo apt update
$ sudo apt install icinga2 monitoring-plugins -y
Проверьте, включена ли служба Icinga и работает ли она.
$ sudo systemctl status icinga2
? icinga2.service - Icinga host/service/network monitoring system
Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/icinga2.service.d
??limits.conf
Active: active (running) since Tue 2023-05-02 07:32:07 UTC; 59min ago
Main PID: 7602 (icinga2)
Status: "Startup finished."
Tasks: 8
Memory: 13.9M
CPU: 1.018s
CGroup: /system.slice/icinga2.service
??7602 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??7620 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
??7623 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
Запустите Мастера узлов Icinga, чтобы инициализировать агент на клиентском сервере.
$ sudo icinga2 node wizard
Вас спросят, является ли это настройкой агента. Введите Y, чтобы настроить агент.
Welcome to the Icinga 2 Setup Wizard!
We will guide you through all required configuration details.
Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]: Y
Затем вас попросят указать общее имя. Оставьте значение по умолчанию и нажмите Enter, чтобы продолжить.
Starting the Agent/Satellite setup routine...
Please specify the common name (CN) [client.example.com]:
Затем укажите родительский конечный пункт как icinga.example.com и введите Y, чтобы установить соединение с родительским узлом с клиента.
Please specify the parent endpoint(s) (master or satellite) where this node should connect to:
Master/Satellite Common Name (CN from your master/satellite node): icinga.example.com
Do you want to establish a connection to the parent node from this node? [Y/n]: Y
Затем введите IP-адрес главного сервера и оставьте значение порта неизменным по умолчанию.
Please specify the master/satellite connection information:
Master/Satellite endpoint host (IP address or FQDN): 199.247.31.184
Master/Satellite endpoint port [5665]:
Введите N, чтобы отказаться от добавления дополнительных конечных узлов.
Add more master/satellite endpoints? [y/N]: N
Затем вам будет показана информация о сертификате для главного сервера. Нажмите Y, чтобы подтвердить информацию и продолжить.
Parent certificate information:
Version: 3
Subject: CN = icinga.example.com
Issuer: CN = Icinga CA
Valid From: May 1 08:28:26 2023 GMT
Valid Until: Jun 1 08:28:26 2024 GMT
Serial: 53:50:d4:1a:85:c5:70:5b:b1:f6:0e:c3:b6:e4:db:62:df:8d:5e:d9
Signature Algorithm: sha256WithRSAEncryption
Subject Alt Names: icinga.example.com
Fingerprint: DC BB 90 68 29 E5 C4 B5 74 F5 BC 8C BF A1 8F BF D2 9D A4 E5 A9 9A 43 2C 3B 24 AE A9 CD 19 32 F4
Is this information correct? [y/N]: Y
Затем введите запросный билет, сгенерированный на предыдущем шаге.
Please specify the request ticket generated on your Icinga 2 master (optional).
(Hint: # icinga2 pki ticket --cn 'client.example.com'): 365cd931d3091537622a95b113b17775893a224f
Оставьте хост и порт привязки API по умолчанию и нажмите Enter, чтобы продолжить.
Please specify the API bind host/port (optional):
Bind Host []:
Bind Port []:
Затем введите Y дважды, чтобы принять конфигурацию и команды от главного узла.
Accept config from parent node? [y/N]: Y
Accept commands from parent node? [y/N]: Y
Нажмите Enter, чтобы принять имя локальной зоны по умолчанию, которое является доменным именем клиента. Введите доменное имя главного узла в качестве имени родительской зоны, чтобы продолжить.
Reconfiguring Icinga...
Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
Local zone name [client.example.com]:
Parent zone name [master]: icinga.example.com
Нажмите N, чтобы пропустить добавление дополнительных глобальных зон.
Default global zones: global-templates director-global
Do you want to specify additional global zones? [y/N]: N
Нажмите N, чтобы пропустить отключение конфигураций из директории /etc/icinga2/conf.d/.
Do you want to disable the inclusion of the conf.d directory [Y/n]: Y
Disabling the inclusion of the conf.d directory...
Done.
Now restart your Icinga 2 daemon to finish the installation!
Перезапустите службу Icinga, чтобы применить изменения конфигурации.
$ sudo systemctl restart icinga2
Шаг 14 - Создание конфигурации зон на главном сервере
Вернитесь на сервер и создайте новую директорию в качестве зоны по умолчанию.
$ sudo mkdir -p /etc/icinga2/zones.d/icinga.example.com/
Затем создайте файл конфигурации в только что созданной директории и откройте его для редактирования.
$ sudo nano /etc/icinga2/zones.d/icinga.example.com/client.example.com.conf
Вставьте следующий код в него. IP-адрес в коде должен соответствовать публичному IP-адресу клиента.
// Endpoints
object Endpoint "client.example.com" {
}
// Zones
object Zone "client.example.com" {
endpoints = [ "client.example.com" ]
parent = "icinga.example.com"
}
// Host Objects
object Host "client.example.com" {
check_command = "hostalive"
address = "95.179.138.148"
vars.client_endpoint = name
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Создайте и откройте файл служб для редактирования.
$ sudo nano /etc/icinga2/zones.d/icinga.example.com/services.conf
Вставьте следующий код в него.
// Ping
apply Service "Ping" {
check_command = "ping4"
assign where host.address // check executed on master
}
// System Load
apply Service "System Load" {
check_command = "load"
command_endpoint = host.vars.client_endpoint // Check executed on client01
assign where host.vars.client_endpoint
}
// SSH Service
apply Service "SSH Service" {
check_command = "ssh"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint
}
// Icinga 2 Service
apply Service "Icinga2 Service" {
check_command = "icinga"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint
}
Выполните следующую команду, чтобы проверить конфигурацию.
$ sudo icinga2 daemon -C
Вы получите аналогичный вывод.
[2023-05-02 11:21:23 +0000] information/cli: Icinga application loader (version: r2.13.7-1)
[2023-05-02 11:21:23 +0000] information/cli: Loading configuration file(s).
[2023-05-02 11:21:23 +0000] information/ConfigItem: Committing config item(s).
[2023-05-02 11:21:23 +0000] information/ApiListener: My API identity: icinga.example.com
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 Host.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 FileLogger.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 IdoMysqlConnection.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 CheckerComponent.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 4 Zones.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 2 Endpoints.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 2 ApiUsers.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 ApiListener.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 1 NotificationComponent.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 244 CheckCommands.
[2023-05-02 11:21:23 +0000] information/ConfigItem: Instantiated 4 Services.
[2023-05-02 11:21:23 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2023-05-02 11:21:23 +0000] information/cli: Finished validating the configuration file(s).
Перезапустите службу Icinga, чтобы применить изменения конфигурации.
$ sudo systemctl restart icinga2
Шаг 15 - Проверка на панели Icinga
Откройте панель Icinga2 Web, чтобы проверить информацию о клиентской машине. Выберите Обзор >> Узлы в левом меню, и вы увидите следующий экран.

Может потребоваться некоторое время, чтобы статус клиента отобразился как UP. Щелкните по клиенту, чтобы увидеть его детали. Выберите Обзор >> Службы, и вы увидите следующие статусы о клиенте.

Это подтверждает, что клиент правильно отправляет статистику на главный сервер Icinga.
Заключение
Это завершает наше руководство по установке программного обеспечения мониторинга Icinga на сервер Ubuntu 22.04 и его настройке для мониторинга клиентской машины, работающей под той же операционной системой.
Get new posts in your inbox
No spam. Unsubscribe anytime.