Icinga2是一款功能强大的免费开源监控工具,可密切关注您的网络资源,并在出现故障或中断时发送警报或通知。它还从网络资源中收集指标,这些指标可以帮助您生成性能数据和创建报告。
Icinga2是可扩展的,它可以监控跨越不同位置的小型到大型复杂网络。在本文中,小编将简单介绍如何在Ubuntu 20.04和Ubuntu 22.04系统中安装Icinga2监控工具。
第1步:安装Apache、MariaDB和PHP
首先安装Apache、MariaDB和PHP以及在Web浏览器上最终设置Icinga2期间所需的附加PHP模块。
$ sudo apt install apache2 mariadb-server mariadb-client mariadb-common php php-gd php-mbstring php-mysqlnd php-curl php-xml php-cli php-soap php-intl php-xmlrpc php-zip php-common php- opcache php-gmp php-imagick php-pgsql -y
安装后,确保所有服务都在运行,具体可以运行以下命令。
$ sudo systemctl start {apache2,mariadb} $ sudo systemctl enable {apache2,mariadb} $ sudo systemctl status {apache2,mariadb}
接下来需要使用mysql_secure_installation脚本为数据库root帐户设置密码,删除匿名用户,禁止root远程登录并删除测试数据库(默认按Y即可):
$ sudo mysql_secure_installation
$ sudo nano /etc/php/8.1/apache2/php.ini [Ubuntu 22.04系统] $ sudo nano /etc/php/7.4/apache2/php.ini [Ubuntu 20.04系统]
对以下参数进行以下更改。
memory_limit = 256M post_max_size = 64M upload_max_filesize = 100M max_execution_time = 300 default_charset = "UTF-8" date.timezone = "Asia/Kolkata" cgi.fix_pathinfo=0
对于该date.timezone
参数,务必将其设置为你所在时区的时间,时间可以参考PHP支持的时区列表。
要应用所做的更改,只需重新启动Apache网络服务器即可,命令如下:
$ sudo systemctl restart apache2
第2步:在Ubuntu系统中安装Icinga2
完成PHP配置后,将继续安装Icinga2。但是,Ubuntu 20.04存储库不提供Icinga2存储库。因此,需要手动将存储库添加到您的系统。首先使用curl命令添加GPG密钥。
$ curl https://packages.icinga.com/icinga.key | apt-key add -
接下来,为Icinga2创建存储库文件,命令如下:
$ sudo vim /etc/apt/sources.list.d/icinga-focal.list
继续添加以下条目:
deb http://packages.icinga.com/ubuntu icinga-focal main deb-src http://packages.icinga.com/ubuntu icinga-focal main
保存并退出文件。要开始使用存储库,请按如下方式更新包列表。
$ sudo apt update
接下来,安装Icinga2和监控插件,命令如下:
$ sudo apt install icinga2 monitoring-plugins
安装完成后,启用并启动Icinga2服务:
$ sudo systemctl enable icinga2 $ sudo systemctl start icinga2
要确认Icinga2服务正在运行,请执行以下命令:
$ sudo systemctl status icinga2
以上输出表明Icinga2守护进程正在运行,现在就可以开始了。
第3步:安装Icinga2 IDO模块
Icinga2数据输出( IDO ) 将所有配置和状态信息导出到数据库中。然后, Icinga Web 2使用IDO数据库作为数据后端。要安装模块,请运行命令:
$ sudo apt install icinga2-ido-mysql -y
在此过程中,终端上会显示一个弹出窗口。要启用Icinga2的ido-mysql功能,请选择“Yes”并按ENTER键。
icinga2 -ido-mysql包需要安装和配置数据库。这可以用dbconfig-common来处理,但我们要自己创建数据库。所以选择’No‘并拒绝这个选项。
接下来,登录到MariaDB数据库服务器:
$ sudo mysql -u root -p
然后,为icinga2-ido-mysql包创建一个数据库和一个数据库用户,并授予该用户对数据库的所有权限。
> CREATE DATABASE icinga_ido_db; > GRANT ALL ON icinga_ido_db.* TO 'icinga_ido_user'@'localhost' IDENTIFIED BY 'Password321'; > FLUSH PRIVILEGES; > EXIT;
数据库就位后,使用命令继续并导入Icinga2 IDO架构,这将需要提供数据库服务器的root密码。
$ sudo mysql -u root -p icinga_ido_db < /usr/share/icinga2-ido-mysql/schema/mysql.sql
第4步:启用Icinga2 IDO模块
要启用icinga2-ido-mysql数据库与Icinga Web 2 的通信,需要更进一步,对默认配置文件进行更改,打开icinga2-ido-mysql配置文件:
$ sudo vim /etc/icinga2/features-available/ido-mysql.conf
编辑以下条目并将它们设置为与步骤3中指定的icinga2-ido-mysql数据库详细信息相匹配。
保存更改并退出,然后启用icinga2-ido-mysql功能:
$ sudo icinga2 feature enable ido-mysql
要使更改生效,请重新启动Icinga2,命令如下:
$ sudo systemctl restart icinga2
第5步:安装和设置IcingaWeb2
最后一个要安装和配置的组件是IcingaWeb2 ,它是一个快速、强大且可扩展的PHP框架,充当Icinga2的前端。所以安装IcingaWeb2和Icinga CLI,运行命令:
$ sudo apt install icingaweb2 icingacli -y
另外,还需要创建将指定用于Icinga Web 2的第二个数据库模式。再次登录到数据库服务器:
$ sudo mysql -u root -p
然后为Icingaweb2创建数据库和数据库用户,并授予数据库用户对数据库的所有权限:
> CREATE DATABASE icingaweb2; > GRANT ALL ON icingaweb2.* TO 'icingaweb2user'@'localhost' IDENTIFIED BY 'P@ssword'; > FLUSH PRIVILEGES; > EXIT;
此后,使用以下命令创建设置令牌。在浏览器上设置Icinga2时,将在身份验证期间使用设置令牌。
$ sudo icingacli setup token create
如果丢失或忘记了令牌,可以通过运行以下命令来查看它:
$ sudo icingacli setup token show
第6步:在Ubuntu系统中完成IcingaWeb2安装
所有配置就绪后,现在将在 Web浏览器上完成Icinga2设置。关于设置过程,可以参考RHEL、Rocky Linux和AlmaLinux系统安装Icinga2教程中的第六个步骤,配置方法都是一样的,这里就不赘述了。
需要注意的是,安装IcingaWeb2安装完成之后,进入Icinga2仪表板将可能会显示任何现有问题及其严重程度。例如,在本示例中,仪表板显示已有28个包需要进行升级,如下图所示:
为了验证这一点,可以返回终端并运行以下命令:
$ sudo apt list --upgradable
因此,如果想要升级软件包,只需运行以下命令即可:
$ sudo apt upgrade -y
现在在返回到仪表板中,可以看到不再显示任何问题,均已升级到最新版本:
总结
在上述教程中,小编简单介绍了在Ubuntu上安装Icinga2监控工具的主要步骤。不可否认,安装过程繁琐,而且耗散,所以需要注意细节。不过,如果一步步按照教程步骤操作,一切都会正常进行。
众所周知,Icinga2是一款用于网络和主机监控的开源工具。它能够监控各种服务和应用、包括HTTP、SMTP、SSH、MySQL等,并且支持插件式架构,可以轻松添加新的监控插件。Icinga2最大的特点是具有高可用性和可扩展性,可以为各种规模的环境提供稳定的监控服务。Icinga2还提供了WEB界面、API接口、通知功能等丰富的功能,支持可视化分析和报告生成。