Icinga2是一个功能丰富的开源网络监控和警报应用程序,它是Nagios 监控工具的一个分支。
Icinga2旨在解决Nagios的缺点并引入新的功能,例如改进的用户界面、无需更改Icinga核心即可集成新扩展的REST API ,以及额外的数据库连接器。
除了监控SNMP、HTTP、HTTPS和SSH之外,Icinga2还监视网络设备,例如路由器和交换机。与此同时,Icinga还收集指标并生成日志,用户可以全面了解网络基础设施,然后在控制面板上可视化日志和指标,以将所有内容置于更好的上下文中。
在本文中,小编将简单介绍RHEL、Rocky Linux和AlmaLinux上安装Icinga2监控应用程序的详细过程,感兴趣的小伙伴可以看看。
前提条件:
如果安装Icinga2,需要安装LAMP堆栈环境。需要注意的是,Icinga2需要PHP 7.3和更高版本才能安装。
第 1 步:安装PHP和PHP模块
如果安装的是PHP 7.2或更低版本,请运行以下命令将其删除并安装PHP 7.4(如果已经是PHP 7.4或更改版本,可以直接进入第二步):
$ sudo dnf remove php
接下来,重置系统上当前的 PHP 模块。
$ sudo dnf module reset php
之后,列出可用的PHP版本,如图所示。
$ sudo dnf module list php
然后启用PHP 7.4。
$ sudo dnf module enable php:7.4
启用PHP 7.4模块后,安装PHP和所需的PHP扩展。
$ sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y
Icinga2还需要php-imagick扩展。但是,它不能像其他PHP模块那样按照常规方式安装。
要安装php-imagick扩展,请运行以下命令:
$ dnf install -y ImageMagick ImageMagick-devel $ sudo pecl install imagick
然后切换到root用户并将扩展附加到PHP.INI文件。
$ dnf install -y ImageMagick ImageMagick-devel $ sudo pecl install imagick
要应用更改,请重新启动Apache服务器。
$ sudo systemctl restart httpd
第 2 步:在RHEL8中安装 Icinga2
要安装Icinga2,需要添加Icinga存储库,因为Icinga2未托管在AppStream存储库上。
为此,首先,启用EPEL存储库。
$ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
接下来,启用GPG签名密钥。
$ sudo rpm --import https://packages.icinga.com/icinga.key
接下来,在/etc/yum.repos.d目录中创建一个存储库文件。
$ sudo vim /etc/yum.repos.d/icinga2.repo
粘贴以下代码:
[icinga2] name=Icinga 2 Repository for EPEL 8 baseurl=https://packages.icinga.com/epel/8/release enabled=1
保存并退出存储库文件,然后更新缓存包,命令如下:
$ sudo dnf makecache
添加存储库后,安装Icinga2包和其它关联的Icinga2包,命令如下:
$ sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux vim-icinga2 -y
接下来,安装将用于监控物理和虚拟主机的Nagios插件。
$ sudo dnf install nagios-plugins-all -y
接下来,启用Icinga2 ido-mysql模块和其他功能,命令如下:
$ sudo icinga2 feature enable ido-mysql syslog command
然后重新启动Icinga以应用更改。
$ sudo systemctl restart icinga2
第 3 步:为Icinga-IDO MySQL模块创建数据库
icinga2 -IDO(Icinga数据输出)mysql功能是一种后端功能,可将所有配置和状态信息整理并导出到数据库中。出于这个原因,需要为Icinga2-ido-mysql功能创建一个数据库。
因此,登录到MySQL数据库服务器:
$ sudo mysql -u root -p
为Icinga2创建一个数据库和一个数据库用户,然后将数据库用户的所有权限授予Icinga2数据库。
> CREATE DATABASE icinga2; > GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY 'P@ssword321';
应用更改并退出数据库服务器。
> FLUSH PRIVILEGES; > EXIT;
接下来,按如下方式导入数据库模式,系统将提示您输入密码,这里输入数据库密码即可:
$ sudo mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql
继续编辑ido-mysql配置文件,命令如下:
$ sudo vim /etc/icinga2/features-available/ido-mysql.conf
取消注释数据库块并指定数据库详细信息。
保存并退出。
接下来,启动并启用Icinga2。
$ sudo systemctl start icinga2 $ sudo systemctl enable icinga2
然后验证Icinga2的状态,命令如下:
$ sudo systemctl status icinga2
从下面的输出中可以清楚的看出,Icinga已按预期启动并运行。
第 4 步:在RHEL 8上安装IcingaWeb2
IcingaWeb2是一个基于 Web的开源监控工具,它还包含一个命令行界面,支持所有后端Icinga功能,例如 Icinga-ido-mysql、Icinga core、Icinga2和其他模块。
要安装IcingaWeb2,请使用以下命令安装PowerTools:
$ sudo dnf install 'dnf-command(config-manager)' $ sudo dnf config-manager --set-enabled powertools
安装完成后,如下图所示安装IcingaWeb2和CLI:
$ sudo dnf install icingaweb2 icingacli
第 5 步:为IcingaWeb2创建数据库
正如之前为Icinga2-IDO-mysql功能创建了一个数据库模式一样,还需要为Icinga Web2创建数据库,因此,再次登录到数据库服务器。
$ sudo mysql -u root -p
为IcingaWeb2创建一个数据库和数据库用户,然后将所有权限授予Icinga Web2数据库上的数据库用户。
> CREATE DATABASE icingaweb2; > GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'P@ssword321';
保存更改并退出。
> FLUSH PRIVILEGES; > QUIT
安装Icinga2时,会为Icinga2创建一个新的配置文件,如下图所示,你可以查看它。
$ cat /etc/httpd/conf.d/icingaweb2.conf
当然,需要重新启动Apache网络服务器才能使更改生效。
$ sudo systemctl restart httpd
此外,还需要将SELinux模式设置为“ permissive ”,命令如下:
$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
第 6 步:从浏览器完成Icinga2设置
安装Icinga2的步骤是创建设置令牌,这是在浏览器上设置Icinga2时用于第一步身份验证的唯一代码。
要生成秘密令牌,请运行以下命令:
$ sudo icingacli setup token create
复制并保存设置令牌安全。如果万一丢失了令牌,可以通过运行以下命令来找回它:
$ sudo icingacli setup token show
在本文当中,所有的以上配置都已检查完成。剩下的就是从网络浏览器完成安装。为此,请在浏览器中访问URL地址:
http://server-ip/icingaweb2/setup #换成你的IP地址
在欢迎页面上,粘贴之前生成的设置令牌。
粘贴令牌后,单击“Next”继续,这会将您带到“模块”页面。这里提供了可以启用的所有模块的概述。默认情况下,启用“monitoring(监控)”模块。
启用你的首选模块之后,并向下滚动并单击“Next”按钮继续。
在这里,确保满足所有PHP先决条件,包括PHP模块、库和目录。如果一切正常,请向下滚动并单击“Next”按钮:
在“Authentication(身份验证)”页面上,保留所有内容,然后单击“Next”按钮。
在“Database Resource”页面当中,填写第5步中指定的IcingaWeb2的数据库详细信息。
要确认数据库详细信息是否正确,请一直向下滚动并单击“Validate Configuration”。
如果一切顺利,应该会收到配置已成功验证的通知。
要进行下一步,请向下滚动并单击“Next”。对于“Authentication Backend”,只需单击“Next”以接受默认值。
在下一步中,创建将用于访问和登录Icinga2 Web界面的Admin用户。
对于“Application monitoring(应用程序监控)”部分,接受默认值并单击“Next”按钮。
确认以下在此过程中所做的所有更改。如果一切正常,请单击“Next”,如果想进行任何更改,请单击“Back”并进行所需的更改。
jie接下来是IcingaWeb2的监控模块的配置,它是Icinga Web2的核心模块,提供状态和报告视图以及强大的过滤器功能,用于跟踪关键事件。
单击“Next”继续。
在这里,使用步骤3中指定的Icinga2-ido-mysql功能的数据库详细信息填写表格。
要验证配置,请向下滚动并单击“Validate configuration”。
这里将收到配置已成功验证的提示。
要继续下一步,请向下滚动并单击“Next”。对于“Command Transport(命令传输)”,使用“Local Command File(本地命令文件)”作为传输类型,然后单击“Next”。
在“Monitoring Security”部分,单击“Next”按钮:
再次查看Icinga2监控模块的所有配置。如果一切正常,请单击“Finish”,否则返回并进行必要的更改。
如果Icinga Web 2设置一切顺利,应该会看到Icinga Web 2已成功设置的提示。要登录网络界面,请单击“Login to Icinga Web 2”链接。
这时将会跳转打开 Icinga Web 2 界面,输入管理员帐户详细信息,然后单击“login”按钮:
这样将会进入Icinga2控制面板页面,可以进行各种功能配置,如下图所示:
以上就是在RHEL 8、Rocky Linux和AlmaLinux系统在中安装Icinga Web 2的全部过程,安装完成之后,就可以监控网络基础设施中的各种主机和服务,功能非常的强大。