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。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注