Icinga 2 是一款开源主机、网络监控软件,最初由 Nagios 网络监控应用发展而来。目前,Icinga 2 遵从 GNU GPL v2 许可协议发行。
由于从 Nagios 发展而来,Icinga 包含所有 Nagios 的核心功能,并且 Icinga 还具有一些特色。例如更现代的 Web 2.0 风格界面、数据库连接以及 REST 应用接口等。这让 Icinga 更加适合引入众多的扩展而不需要进行兼容性测试。
本文将演示如何在 CentOS 8 系统安装 Icinga 2,同时,我们将使用 MariaDB 作为 Icinga 2 的后端数据库,来演示 Icinga 2 的 IDO(Icinga Data Out) 模式。
1] Icinga 2 主要功能
- 监控网络服务(http smtp pop3 ping 等)
- 监控主机系统资源(CPU 负荷 内存使用以及磁盘使用等)
- 监控服务器组件(交换机 路由器 温度传感器等)
- 简化的插件设计
- 并且服务检查
2] 演示环境说明
- 操作系统:CentOS 8.0
- 主机名:icinga-2.rultr.com
- IP 地址:172.16.200.1
3] CentOS 8 系统安装 ELEL 软件库
Icinga 2 需要使用 Nagios 插件库,这个软件可以从 EPEL 软件库上获得,于是我们首先安装 EPEL 软件库:
# dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
4] 安装配置 MariaDB 数据库
现在安装 MariaDB 数据库作为 Icinga 2 的数据库存储:
# dnf install -y @mariadb/server # systemctl enable --now mariadb.service # mysql_secure_installation
5] CentOS 8 系统安装 Icinga 2 软件库
由于 Icinga 2 的 rpm 发行版存储在自己的软件库中,所以我们需要首先安装 Icinga 2 软件库:
# dnf install -y https://packages.icinga.com/epel/icinga-rpm-release-8-latest.noarch.rpm
6] CentOS 8 系统安装 Nagios Plugins
Nagios Plugins 可以从之前安装的 EPEL 软件库上获取,我们只需使用”dnf”命令即可安装:
# dnf install -y nagios-plugins-{http,ping,disk,users,swap,procs,ssh,load}
由于 Nagios Plugins 数量众多,我们在命令中只选择了一些常用的插件。
7] CentOS 8 系统安装 Icinga 2
现在,使用”dnf”命令通过 Icinga 2 软件库安装Icinga 2:
# dnf install -y icinga2 icinga2-selinux icinga2-ido-mysql vim-icinga2
安装完成后,使用如下命令查看一下功列表:
# icinga2 feature list
图.1 icinga2 功能列表
8] 使用 MariaDB 配置 Icinga 2 IDO
首先,在 Mariadb 数据库创建 Icinga 2 使用的数据库及用户,并进行相关授权:
MariaDB [(none)]> CREATE DATABASE icinga; MariaDB [(none)]> CREATE USER 'icinga'@'localhost' identified by 'RULTR'; MariaDB [(none)]> GRANT ALL ON icinga.* to 'icinga'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
然后,导入 Icinga 2 提供的建库脚本:
# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
之后,根据我们演示环境情况,配置 icinga 2支持 IDO,修改 icinga 2 的配置文件”/etc/icinga2/features-available/ido-mysql.conf”,并如下内容取消注释并修改为相应内容:
/** * The IdoMysqlConnection type implements MySQL support * for DB IDO. */ object IdoMysqlConnection "ido-mysql" { user = "icinga" password = "RULTR" host = "localhost" database = "icinga" }
最后,启用 IDO 功能并启动 icinga 服务:
# icinga2 feature enable command ido-mysql syslog # systemctl enable --now icinga2.service # systemctl status icinga2.service
图.2 Icinga 2 服务状态
可以看到,icinga2 服务已经成功启动,CentOS 8 系统已经成功安装了 icinga 2。