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

Как установить инструмент мониторинга Icinga 2 на CentOS 8


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

  1. Предпосылки
  2. Настройка репозиториев
  3. Установка и настройка стека LAMP
  4. Установка и настройка Icinga2
  5. Установка и настройка Icingaweb2
  6. Настройка Icinga Web 2 через веб-интерфейс
  7. Проверьте установку Icinga 2 и Icinga Web 2
  8. Заключение

Мониторинг — одна из важнейших составляющих серверной инфраструктуры и центра обработки данных. Это поможет вам обнаружить проблемы и проблемы, которые будут возникать на ваших серверах, чтобы вы могли быстрее решить эти проблемы. Существует несколько инструментов мониторинга с открытым исходным кодом, и одним из самых популярных является Icinga 2.

Icinga создана как форк популярного инструмента мониторинга Nagios и теперь переписана с нуля на C++. Как ответвление от проекта Nagios, Icinga поставляется с дополнительными инструментами и функциями, включая директор icinga, модули icinga и плагины icinga. Кроме того, он поддерживает распределенный мониторинг, что позволяет вам управлять несколькими экземплярами Icinga с одной панели.

В этом руководстве мы пошагово покажем вам, как установить и настроить Icinga2 с Apache2 и MariaDB на сервере CentOS 8.

Предпосылки

  • Сервер CentOS 8. Убедитесь, что он обновлен до последней версии.
  • Не менее 2 ГБ ОЗУ и 2 ядра. Если больше, будет лучше.
  • Пользователь с правами Sudo.

Настройка репозиториев

Во-первых, вам нужно добавить репозиторий epel, remi и icinga в систему centos 8. Затем вам нужно установить инструмент dnf \\config-manager\\ и включить репозиторий \\PowerTools\\ с помощью этого инструмента.

1. Добавьте репозиторий epel и remi для серверов Centos 8, выполнив следующие команды.

sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

2. Теперь запустите приведенную ниже команду, чтобы загрузить и добавить репозиторий Icinga для системы centos 8.

sudo dnf install -y https://packages.icinga.com/epel/icinga-rpm-release-8-latest.noarch.rpm

3. После этого выполните следующие команды, чтобы установить инструмент dnf config-manager и включить репозиторий PowerTools.

sudo dnf install -y 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled powertools

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

sudo dnf repolist

Вы увидите вывод, аналогичный приведенному ниже, и убедитесь, что репозитории epel, remi, icinga-* и powertools присутствуют в списке.

repo id                                                                                              repo name
appstream                                                                                            CentOS Linux 8 - AppStream
baseos                                                                                               CentOS Linux 8 - BaseOS
epel                                                                                                 Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                                                                         Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                                                                               CentOS Linux 8 - Extras
icinga-stable-release                                                                                ICINGA (stable release for epel)
powertools                                                                                           CentOS Linux 8 - PowerTools
remi-modular                                                                                         Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                                                                                            Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

Установка и настройка стека LAMP

Инструмент мониторинга Icinga состоит из двух основных компонентов: \icinga2\, который обрабатывает все задания по мониторингу, и \icingaweb2\, который представляет собой мощное, чистое и быстрое веб-приложение на основе PHP, которое позволяет вам управлять стеком Icinga из веб-браузер. Теперь вы будете устанавливать и настраивать базовый стек LAMP в системе Centos 8.

1. Включите модуль remi для PHP 7.4 с помощью приведенной ниже команды.

sudo dnf module enable -y php:remi-7.4

Затем выполните следующую команду, чтобы установить базовые пакеты стека LAMP.

sudo dnf install -y httpd mariadb-server mariadb php php-cli php-devel php-pear make php-mysqlnd php-pecl-imagick php-pecl-imagick-devel

Теперь запустите службы apache (httpd на centos) и mariadb и включите их обе для запуска при загрузке системы.

sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb

И вы увидите аналогичный вывод, как показано ниже, службы apache и mariadb запущены и включены.

# Apache started and enabled
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

# MariaDB started and enabled
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

2. После этого выполните приведенную ниже команду, чтобы настроить пароль root для mariadb, и по соображениям безопасности вы удалите тестовую базу данных по умолчанию и анонимного пользователя, а также отключите удаленный вход для пользователя root.

sudo mysql_secure_installation

Ниже приведен аналогичный вывод, который вы получите, и обязательно введите новый надежный пароль для пользователя root mariadb и введите Y, чтобы подтвердить все действия.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

To log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): PRESS ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password: TYPE STRONG PASSWORD
Re-enter new password: TYPE STRONG PASSWORD
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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? [Y/n] 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? [Y/n] Y
 ... Success!

By default, MariaDB 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? [Y/n] 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? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

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

Теперь вы будете устанавливать и настраивать основной компонент самой Icinga. На этом этапе будет рассмотрена установка пакетов icinga2, создание новой базы данных и пользователя, импорт схемы базы данных и настройка REST API Icinga.

1. Выполните следующую команду, чтобы установить пакеты инструментов мониторинга Icinga.

sudo dnf install -y icinga2 nagios-plugins-all

После этого запустите и включите службу icinga2, затем проверьте статус службы Icinga.

sudo systemctl enable --now icinga2
sudo systemctl status icinga2

Если вы видите вывод, похожий на следующий, служба Icinga запущена и работает.

# Icinga2 started and enabled
Created symlink /etc/systemd/system/multi-user.target.wants/icinga2.service → /usr/lib/systemd/system/icinga2.service.

# Icinga2 status running
? icinga2.service - Icinga host/service/network monitoring system
   Loaded: loaded (/usr/lib/systemd/system/icinga2.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-07-18 02:38:19 UTC; 6s ago
  Process: 31290 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/sysconfig/icinga2 (code=exited, status=0/SUCCESS)
 Main PID: 31298 (icinga2)
    Tasks: 13 (limit: 4964)
   Memory: 20.9M
   CGroup: /system.slice/icinga2.service
           ??31298 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
           ??31319 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log
           ??31324 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e /var/log/icinga2/error.log

2. Далее, если SELinux запущен и работает в системе centos 8, вам необходимо установить пакет icinga2-selinux. Но если SELinux отключен, пропустите эту часть.

Выполните приведенную ниже команду, чтобы проверить статус SELinux.

sudo sestatus

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

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      32

Теперь установите пакет icinga2-selinux с помощью приведенной ниже команды.

sudo dnf install -y icinga2-selinux

После этого примените новую конфигурацию, перезапустив службу icinga2, и убедитесь, что Icinga запущена и работает в контексте SELinux.

sudo systemctl restart icinga2
ps -eZ | grep icinga2

Ниже приведен аналогичный результат, который вы получите.

system_u:system_r:icinga2_t:s0    33479 ?        00:00:00 icinga2
system_u:system_r:icinga2_t:s0    33499 ?        00:00:00 icinga2
system_u:system_r:icinga2_t:s0    33504 ?        00:00:00 icinga2

3. Затем установите серверную часть IDO MySQL для icinga2, используя следующую команду.

sudo dnf install -y icinga2-ido-mysql

Теперь выполните приведенную ниже команду, чтобы войти в оболочку MySQL и ввести пароль root.

sudo mysql -u root -p

Создайте новую базу данных и пользователя для службы icinga2, используя запросы mysql ниже.

MariaDB [(none)]> CREATE DATABASE icinga;
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icingapassdb';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Теперь запустите команду mysql ниже, чтобы импортировать схему базы данных icinga2-ido-mysql в базу данных icinga, и введите пароль вашего корневого пароля mariadb.

sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

После этого включите функцию icinga2-ido-mysql и перезапустите службу icinga2, чтобы применить новую конфигурацию, используя приведенные ниже команды.

sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2

И вы увидите аналогичный вывод, как на картинке ниже.

4. Далее вам необходимо сгенерировать конфигурацию и сертификаты REST API icinga2. icingaweb2 требует, чтобы REST API отправлял действия, связанные с заданиями мониторинга, такие как изменение расписания проверок, запрос сведений об объекте и т. д.

Запустите приведенную ниже команду icinga2, чтобы сгенерировать нового пользователя API, конфигурацию и сертификаты TLS.

sudo icinga2 api setup

И вы увидите аналогичный вывод, подобный следующему: новый пользователь root с паролем доступен в файле конфигурации /etc/icinga2/conf.d/api-users.conf, а сертификаты TLS доступны в файле /var/lib/icinga2. /certs/ каталог.

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//centos8.csr'.
information/base: Writing private key to '/var/lib/icinga2/certs//centos8.key'.
information/base: Writing certificate signing request to '/var/lib/icinga2/certs//centos8.csr'.
information/cli: Signing CSR with CA and writing certificate to '/var/lib/icinga2/certs//centos8.crt'.
information/pki: Writing certificate to file '/var/lib/icinga2/certs//centos8.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.

Now restart your Icinga 2 daemon to finish the installation!

При желании, чтобы добавить нового пользователя API вручную, отредактируйте конфигурацию /etc/icinga2/conf.d/api-users.conf с помощью команды редактора nano, как показано ниже.

sudo nano /etc/icinga2/conf.d/api-users.conf

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

object ApiUser "icingaweb2" {
  password = "Wijsn8Z9eRs5E25d"
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

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

sudo systemctl restart icinga2

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

На этом этапе вы будете устанавливать и настраивать веб-приложение icingaweb2, включая настройку базы данных и создание токена установки.

1. Выполните следующую команду, чтобы установить пакеты icingaweb2.

sudo dnf install -y icingaweb2 icingacli

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

cat /etc/httpd/conf.d/icingaweb2.conf

Ниже приведена конфигурация, которую вы увидите.

Alias /icingaweb2 "/usr/share/icingaweb2/public"

# Remove comments if you want to use PHP FPM and your Apache version is older than 2.4
#<IfVersion < 2.4>
#    # Forward PHP requests to FPM
#    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
#    <LocationMatch "^{urlPath}/(.*\.php)$">
#        ProxyPassMatch "fcgi://127.0.0.1:9000/{documentRoot}/$1"
#    </LocationMatch>
#</IfVersion>

<Directory "/usr/share/icingaweb2/public">
    Options SymLinksIfOwnerMatch
    AllowOverride None
.......

Чтобы применить новую конфигурацию, перезапустите службу apache/httpd с помощью приведенной ниже команды.

sudo systemctl restart httpd

2. Затем введите следующую команду, чтобы войти в оболочку mysql.

sudo mysql -u root -p

Выполните несколько запросов mysql ниже, чтобы создать новую базу данных и пользователя для файла icingaweb2.

MariaDB [(none)]> CREATE DATABASE icingaweb2;
MariaDB [(none)]> GRANT ALL ON icingaweb2.* TO IDENTIFIED BY 'icingaweb2passdb';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

3. После этого сгенерируйте установочный токен icingaweb2 для установки на следующем этапе с помощью следующей команды.

sudo icingacli setup token create
sudo icingacli setup token show

Вы будете показаны как следующий вывод. Обязательно скопируйте установочный токен icinga2 в свою заметку.

# Generated setup token
The newly generated setup token is: 41e33db4cf0c5617

# Show generated token
The current setup token is: 41e33db4cf0c5617

Настройка Icinga Web 2 через веб-интерфейс

Теперь откройте веб-браузер и URL-адрес http://SERVER-IP/icingaweb2/setup, и вы получите страницу установки icinga2.

1. Вставьте токен установки icingaweb2 в поле и нажмите «Далее».

2. Здесь оставьте модули Icinga по умолчанию и нажмите «Далее».

3. Теперь убедитесь, что все системные требования icingaweb2 отмечены \\зеленым\\ цветом, затем нажмите кнопку Далее.

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

5. Введите имя базы данных, имя пользователя и пароль для icingaweb2 и снова щелкните Далее.

6. Оставьте имя серверной части аутентификации по умолчанию icingaweb2 и нажмите Далее.

7. Теперь введите нового пользователя и административный пароль, затем нажмите «Далее».

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

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

10. Теперь нажмите «Далее», чтобы настроить модули мониторинга icinga2.

11. Введите имя базы данных, имя пользователя и пароль для icinga2-ido-mysql, затем нажмите кнопку «Проверить конфигурацию».

Если у вас возникает ошибка типа В настоящее время экземпляр icinga не записывает данные в IDO. Убедитесь, что экземпляр icinga настроен и может выполнять запись в IDO, вернуться к вашему терминалу и отредактировать конфигурацию вручную.

Выполните следующую команду, чтобы изменить конфигурацию IDO.

sudo nano /etc/icinga2/features-available/ido-mysql.conf

Скопируйте и вставьте конфигурацию ido mysql, как показано ниже.

object IdoMysqlConnection "ido-mysql" {
user = "icinga", password = "icingapassdb", host = "localhost", database = "icinga" }

Теперь нажмите Ctrl+x, затем y, затем введите, чтобы сохранить файл.

Затем перезапустите службу Icinga2 с помощью следующей команды.

sudo systemctl restart icinga2

Теперь вернитесь в веб-браузер и включите параметр «Пропустить проверку», затем снова нажмите «Далее».

12. Теперь выберите тип транспорта Local Command File и нажмите Next.

13. Оставьте конфигурацию безопасности мониторинга по умолчанию и нажмите Далее.

14. Дважды проверьте конфигурацию установки Icinga и нажмите «Готово», чтобы продолжить.

15. После успешной установки вы получите результат, как на картинке ниже. Затем нажмите кнопку «Войти в Icinga Web 2».

Проверка установки Icinga 2 и Icinga Web 2

1. Введите имя и пароль администратора Icinga, затем нажмите кнопку «Войти».

2. Теперь вы получите похожую страницу, как показано ниже.

Как вы можете видеть на приборной панели, инструмент мониторинга icinga2 автоматически обнаруживает некоторые службы. Сервисы с зеленым цветом означают работоспособность, а сервисы с желтым цветом означают предупреждение о необходимости проверки. А сервисы ошибок будут красного цвета.

Заключение

По завершении обучения вы узнали об установке и настройке инструмента мониторинга icinga2 на последнем сервере CentOS 8 со стеком LAMP. Установка icinga2 требует, чтобы вы сосредоточились на каждом этапе, и самое главное, чтобы вы знали, что делаете, а не слепо выполняли команды.