如何在 Ubuntu 22.04 上安装 Icinga 2 监控软件
Icinga2 是一个用 PHP 和 C++ 编写的开源网络监控程序。它是系统管理员监控网络资源、报告中断和生成报告性能数据最流行的工具之一。使用 Icinga2,您可以监控各种协议和资源,例如 SMTP、POP3、HTTP、NNTP、ping、CPU 负载、磁盘使用情况、交换机、路由器等。它由两个堆栈组成:Icinga2 和 Icinga Web 2。Icinga2 用作监控服务器,而 Icinga Web 2 是用于进一步监控的 Web 界面。
本文将向您展示如何在 Ubuntu 22.04 上安装 Icinga2 监控服务器。
先决条件
- 运行 Ubuntu 22.04 的服务器。
- 服务器上设置了 root 密码。
安装 Apache、MariaDB 和 PHP
首先,您需要在服务器上安装 Apache Web 服务器、MariaDB、PHP 和其他所需的扩展。您可以使用以下命令安装它们:
apt-get install apache2 mariadb-server
在撰写本教程时,Icinga2 支持 PHP 7.4,因此您需要在服务器上安装 PHP 和其他扩展。首先,使用以下命令安装所有必需的依赖项:
apt install software-properties-common ca-certificates lsb-release apt-transport-https
接下来,使用以下命令添加 PHP 存储库:
add-apt-repository ppa:ondrej/php
接下来,使用以下命令安装 PHP 和其他扩展:
apt install php7.4 libapache2-mod-php7.4 php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-soap php7.4-intl php7.4-zip php7.4-cli php7.4-mysql php7.4-common php7.4-opcache php7.4-pgsql php7.4-gmp php7.4-imagick -y
安装所有软件包后,编辑 php.ini 文件并更改一些设置:
nano /etc/php/7.4/apache2/php.ini
更改以下行:
memory_limit = 256M
post_max_size = 64M
upload_max_filesize = 100M
max_execution_time = 300
default_charset = "UTF-8"
date.timezone = "UTC"
cgi.fix_pathinfo=0
保存并关闭文件并重新启动 Apache 服务以应用更改:
systemctl restart apache2
安全的 MariaDB 安装
接下来,您需要设置 MariaDB root 密码并保护安装。您可以通过运行以下脚本来完成此操作:
mysql_secure_installation
回答所有问题,如下所示:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
安装 Icinga2
默认情况下,Icinga2 软件包包含在 Ubuntu 22.04 的默认存储库中。您可以使用以下命令安装它:
apt-get install icinga2 monitoring-plugins -y
安装所有软件包后,启动 Icinga2 并确保它在系统重新启动时启动:
systemctl start icinga2
systemctl enable icinga2
要检查 Icinga2 的状态,请运行以下命令:
systemctl status icinga2
示例输出:
? icinga2.service - Icinga host/service/network monitoring system
Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-18 08:25:17 UTC; 12s ago
Docs: https://icinga.com/docs/icinga2/latest/
Process: 86519 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 86526 (icinga2)
Status: "Startup finished."
Tasks: 17 (limit: 4579)
Memory: 12.6M
CPU: 205ms
CGroup: /system.slice/icinga2.service
??86526 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e ""
??86546 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e ""
??86551 /usr/lib/x86_64-linux-gnu/icinga2/sbin/icinga2 --no-stack-rlimit daemon --close-stdio -e ""
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 1 NotificationComponent.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 1 UserGroup.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 1 User.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 3 TimePeriods.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 3 ServiceGroups.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 1 ScheduledDowntime.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ConfigItem: Instantiated 12 Services.
Sep 18 08:25:17 Ubuntu2204 icinga2[86546]: [2022-09-18 08:25:17 +0000] information/ScriptGlobal: Dumping variables to file '/var/cac>
Sep 18 08:25:17 Ubuntu2204 icinga2[86526]: [2022-09-18 08:25:17 +0000] information/cli: Closing console log.
Sep 18 08:25:17 Ubuntu2204 systemd[1]: Started Icinga host/service/network monitoring system.
接下来,您需要安装 Icinga2 的 MySQL 插件。您可以使用以下命令安装它:
apt-get install icinga2-ido-mysql -y
在安装过程中,系统会询问您是否要启用 Icinga 2 的 ido-mysql 功能:
选择是并按Enter。系统将询问您是否要为 Icinga2 创建数据库。
选择是并按 Enter 。系统将提示您设置 Icinga2 应用程序的密码:
输入您的密码并按Enter键完成安装。
这将创建一个数据库和一个名为 icinga2 的用户并设置密码。
注意:请记住icinga2数据库、用户名和密码。在基于 Web 的安装过程中您将需要它们。
接下来,使用以下命令激活 ido-mysql 模块:
icinga2 feature enable ido-mysql
最后,重新启动 Icinga2 服务以应用更改:
systemctl restart icinga2
安装和配置 Icinga Web 2
Icinga Web 2 提供了一个 Web 界面来监控 Icinga2。您可以使用以下命令安装它:
apt-get install icingaweb2 icingacli -y
安装完成后,您需要为 Icinga Web 2 创建数据库和用户。
首先,使用以下命令登录MariaDB:
mysql -u root -p
登录后,使用以下命令创建数据库和用户:
MariaDB [(none)]> CREATE DATABASE icingaweb2;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON icingaweb2.* TO 'icingaweb2'@'localhost' IDENTIFIED BY 'password';
接下来,使用以下命令删除权限并退出 MariaDB:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
接下来,使用以下命令生成秘密令牌:
icingacli setup token create
您应该得到以下输出:
The newly generated setup token is: 979eddaaa6ab6b89
访问 Icinga2 网络界面
现在打开您的 Web 浏览器并通过 URL http://your-server-ip/icingaweb2/setup 调用 Icinga2 Web 安装向导。 您应该看到以下页面:
输入您的秘密令牌并单击下一步按钮。您应该看到以下页面:
选择监控并单击下一步按钮。您应该看到以下页面:
确保所有 PHP 扩展均已安装,然后单击下一步按钮。您应该看到以下页面:
选择您的身份验证类型,然后单击下一步按钮。您应该看到以下页面:
输入 Icinga2 Web 数据库的凭据,然后单击下一步按钮。您应该看到以下页面:
选择您的后端名称,然后单击下一步按钮。您应该看到以下页面:
输入您的管理员用户,然后单击“下一步”按钮。您应该看到以下页面:
单击下一步按钮。您应该看到以下页面:
检查所有设置并单击下一步按钮。您将被重定向到以下页面:
单击下一步按钮。您应该看到以下页面:
输入 Icinga IDO 数据库的凭据,然后单击下一步按钮。您应该看到以下页面:
选择您喜欢的选项,然后单击下一步按钮。您应该看到以下页面:
选择您的监控安全性并单击下一步按钮。您应该看到以下页面:
检查您的配置并单击完成按钮。您应该看到以下页面:
单击登录 Icinga Web 2 按钮。您应该看到以下页面:
输入您的管理员用户名和密码,然后单击登录按钮。您应该看到以下页面:
结论
恭喜!您已在 Ubuntu 22.04 上成功安装并配置了 Icinga2 监控服务器。您可以在基础设施中部署 Icinga2,添加所有监控服务器,并通过 Icinga Web 2 仪表板监控它们。