如何在Debian 9上安装Icinga 2和Icinga Web 2

时间:2020-03-05 15:32:28  来源:igfitidea点击:

Icinga 2是一个高度可扩展和可扩展的开源监视系统。
它可以监视多个位置的大型复杂环境。
它检查网络资源的可用性,通知用户中断,并生成性能数据以进行报告。
它是一个网络监视应用程序,可以从Web进行配置,其功能主要基于PHP服务器端编程语言。

基本上,它通过ICMP监视HTTP,FTP,SMTP,IMAP或者其他网络服务等网络协议的状态,托管资源,物理传感器,软件安装,CPU负载,内存,磁盘空间以及几乎所有互连的网络设备或者ping请求。
此外,它可以轻松配置为通过邮件,SMS,聊天或者其他类型的有关网络,系统,服务或者其他相关网络中断的警报来通知系统或者网络管理员,还可以生成有关网络停机或者性能的图形。

在本文中,我将解释如何在最新的Debian 9.3服务器上安装具有Web 2界面的Icinga2服务器。
让我们逐步介绍如何构建我们的监视系统。

准备工作

在继续安装之前,我们需要确保我们的系统满足编译和安装应用程序的所有软件要求。
第一步,通过发出以下命令来更新系统存储库和软件包。

#apt update
#apt upgrade
#apt install bash-completion

接下来,通过执行以下命令来设置服务器的主机名。
我已经在主机名中添加了“ icinga2”。

# hostnamectl set-hostname icinga2
# hostnamectl
Static hostname: icinga2
Icon name: computer-vm
Chassis: vm
Machine ID: 7f2b1120403449a3b27d2f40de770be2
Boot ID: 321481f419e94e6cb377ae804d9bab42
Virtualization: kvm
Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.9.0-4-amd64
Architecture: x86-64
# cat /etc/hostname
icinga2

最后,我们需要重启Debian服务器以应用内核更新,并且主机名正确更改。

安装LAMP堆栈

如前所述,Icinga 2是用C++编写的网络监视应用程序,而Icinga Web 2是用于Web应用程序的功能强大的PHP框架,该框架采用简洁且精简的设计。
为了执行其文件脚本,必须在服务器上安装并运行Web服务器(例如Apache HTTP服务器)和PHP处理网关。
我已经使用以下命令安装了Apache Web服务器,MySQL和Icinga所需的所有必需的PHP模块:

#apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readline php7.0-pgsql
#apt install mariadb-server mariadb-client php7.0-mysql

启动/启用Apache/MySQL服务。

# systemctl enable apache2 mariadb
# systemctl start apache2 mariadb
# systemctl status apache2 mariadb

安装Apache,MySQL和PHP之后,我们可以通过浏览服务器IP来测试Web服务器是否已启动并正在运行,甚至可以通过侦听对应端口上的网络连接来测试网络连接,或者通过控制台中的netstat命令通过服务来进行确认。
具有root特权,如下所示:

# netstat -plan | grep :80
tcp6 0 0 :::80 :::* LISTEN 19097/apache2
tcp6 0 0 127.0.0.1:80 127.0.0.1:40780 TIME_WAIT 
# netstat -plan | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14240/mysqld 
unix 2 [ ACC ] STREAM LISTENING 52783 14240/mysqld /var/run/mysqld/mysqld.sock

为Icinga2创建MySQL数据库

首先,我们需要登录到MySQL控制台并运行以下命令来保护MariaDB数据库并设置root密码:

# mysql_secure_installation

现在,我们可以创建两个数据库,Icinga2应用程序和一个具有密码的用户都可以使用这些数据库来管理这些数据库。
我已经创建了数据库icingadb和icinga_users,并为用户icinga_user授予了特权,并使用密码来访问它们,如下所示:

~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database icingadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> create database icinga_users;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

为icinga2 Web应用程序创建了数据库“ icingadb”,并创建了数据库“ icinga_users”来存储Icinga2 Web界面用户,组和其他Web界面自定义数据。

安装Icinga2

在完成所有系统需求的安装之后,我们可以继续安装Icinga2应用程序以及MySQL IDO模块。
我们正在使用MySQL作为外部数据库。
因此,我们需要安装用于Icinga2 Web界面的MySQL IDO模块。
它用于将所有配置和状态信息导出到其数据库中。
Icinga 2已预编译了Debian 9.3仓库提供的二进制软件包。
因此,可以通过其apt软件包管理器执行安装,如下所示:

#apt install icinga2 icinga2-ido-mysql

安装过程中,屏幕上会出现一系列提示。
首先,将询问我们是否要配置并启用Icinga 2以使用MySQL模块。
从提示符中选择“是”,然后按“ [enter]”键继续,如下图所示。

在下一个提示中,将询问我们是否要使用dbconfig-common选项为icinga2-ido-mysql配置数据库。
从提示中选择“否”,然后按“ [enter]”键完成Icinga 2的安装。

启用此模块并创建数据库后,我们需要重新启动Icinga2服务。

#systemctl start icinga2.service
#systemctl status icinga2.service

请确保使用正确的数据库凭据正确设置了IDO MySQL配置文件。

# cat /etc/icinga2/features-enabled/ido-mysql.conf
/**
* The db_ido_mysql library implements IDO functionality
* for MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "password",
host = "localhost",
database = "icingadb"
}

启用功能列表

默认情况下,Icinga2启用以下功能。
我们可以通过运行此命令“ icinga2 feature enable <功能名称>”来启用列表中的任何其他功能。
我们可以通过运行以下命令来确认已启用的设置:

~# icinga2 feature list
Disabled features: api command compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker ido-mysql mainlog notification
The following features are enabled by default:
Checker: This feature enables the execution of checks.
Mainlog: This feature enables the logging.
Notification: This feature enables notification mechanism.
IDO-mysql:  Provides IDO module for the database.

安装Icinga Web2插件

我们的下一步是使用Debian 9.3程序包的软件包管理器安装Icinga 2 Web界面和命令行实用程序软件包。

#apt install icingaweb2 icingacli

安装后,我们可以重新启动Icinga 2守护程序以获取所有更改并验证应用程序状态,然后再继续配置部分。

#systemctl restart icinga2.service
#systemctl status icinga2.service
#systemctl restart apache2

现在,通过执行以下命令为Icinga数据库安装MySQL模式。
MySQL数据库模式位于/usr/share/icinga2-ido-mysql/schema /目录中。

mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql

最后,我们可以生成安装令牌,以通过Web界面完成Icinga web 2插件的安装。

# icingacli setup token create
The newly generated setup token is: c25b22acfc9f9094
# icingacli setup token show
The current setup token is: c25b22acfc9f9094

配置Icinga Web 2插件

生成令牌后,我们可以通过在浏览器中打开URL >>'http://IP //icingaweb2/setup'开始配置Icinga Web 2插件。
我们可以浏览这些屏幕截图,以更清楚地了解它们。

步骤1:设定凭证

第一步,它将要求我们提供在开始安装阶段之前生成的令牌。
如果尚未生成令牌,则可以按照上面的屏幕快照中提供的说明生成令牌,然后继续下一步。

步骤2:选择Icinga Web2模块

提供令牌后,它将移至下一部分以选择模块。
我们可以选择首选模块以继续下一步。

步骤3:验证PHP设置

要进一步进行操作,我们需要安装缺少的PHP模块并设置适当的时区。
我已经使用“ apt install php7.0-pgsql”命令安装了缺少的PHP模块,并重新启动了Apache以使这些更改生效。
另外,我们可以在PHP配置文件'/etc/php/7.0/apache2/php.ini'中设置适当的时区。
达到所需的设置后,我们可以进入下一个阶段。

步骤5:验证方法

我们需要选择首选的身份验证方式来继续安装。
如前所述,我更愿意为此选择数据库类型。

步骤6:输入数据库详细信息

在此阶段,添加Icinga 2 Web MySQL数据库名称和该数据库的访问凭据。
该数据库将用于存储Icinga 2 Web界面用户和组。
将数据库信息用于先前创建的第二个数据库。
添加icingaweb_db作为此资源的名称,并将Host,Port和Character设置变量保留为默认值。
不要选中“持久性和SSL”选项。
按下“验证配置”按钮以验证数据库连接,如下图所示。
完成后,单击“下一步”按钮移至下一个安装程序部分。

步骤7:创建Icinga Web管理登录

成功验证数据库资源后,我们需要创建用于管理Icinga2 Web界面的管理帐户。
为该帐户选择一个强密码。
完成后,单击“下一步”按钮转到下一个安装屏幕。

步骤8:选择应用程序配置选项

接下来,我们需要使用以下设置来配置Icinga应用程序和日志记录配置,如屏幕截图所示。

  • 检查显示堆栈跟踪
  • 存储类型=数据库
  • 日志记录类型=文件
  • 日志记录级别=错误
  • 文件路径= /var/log/icingaweb2/icingaweb2.log

我们需要从服务器后端创建此日志文件,并设置适当的权限/所有权,以确保Icinga Web 2日志正常工作。

步骤9:查看所有选择的设置。

该屏幕将通知我们Icinga Web2已成功配置,并且详细报告将显示到目前为止进行的所有配置。
查看该报告,然后单击“下一步”按钮以继续进行下一个安装部分。

步骤10:配置监视模块

现在,我们已经完成了身份验证部分,随后是监视模块的配置。

如前所述,Icinga IDO模块将所有状态信息和配置部分导出到Icinga主数据库。
因此,我们需要选择此模块并进行适当配置,以使用信息更新数据库。

其中我们需要提供主要的数据库信息以继续进行。
在此处填写数据库详细信息。
确保为数据库用户设置适当的特权以进行任何修改。

使用以下设置配置Icinga命令传输,然后单击“下一步”继续。

  • 运输名称= icinga2
  • 传输类型=本地命令文件
  • 命令文件= /var/run/icinga2/cmd/icinga2.cmd

在此安全阶段,我们不需要进行任何修改。
我们可以通过单击“下一步”继续进行默认设置。

步骤11:查看监视模块配置选项

此阶段将向我们介绍所选的所有监视模块配置部分。
我们只需确认设置,然后继续进行即可完成设置。

最后一步:登录到Web界面

成功完成安装过程后,将显示一条祝贺消息,通知我们Icinga Web 2已成功安装。
点击“登录链接”以重定向到Icinga2登录页面。

使用在安装过程中配置的凭据登录到Icinga Web 2,我们将被定向到Icinga Web 2仪表板,

默认情况下,我们的主节点已添加到此系统。
我们可以在这里查看我们的主Icinga服务器的服务通知。
或者,我们可以仅浏览此URL'http://IP/icingaweb2 /'来访问Web界面。

我们可以向该监视系统添加任意数量的节点。