如何在Ubuntu 16.04上安装Icinga 2和Icinga Web 2

・16 分钟阅读

ICINGA 2是一个广泛使用的开源网络资源监控系统,ICINGA Web2是ICINGA 2的官方Web接口。

在本教程中,我将介绍如何在Ubuntu 16.04服务器上安装它们。

前提条件

  • 新部署的Ubuntu 16.04服务器实例,
  • sudo用户,想了解如何在Ubuntu上创建sudo用户,请参阅关于Debian的教程 ,

步骤1:更新系统

从SSH终端作为sudo用户登录,然后使用以下命令将系统更新为最新的稳定状态:


sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now

重新引导后,使用相同的sudo用户登录。

步骤2:安装Apache

使用以下命令安装Apache :


sudo apt-get install apache2 -y

删除默认的Ubuntu Apache欢迎页面:


sudo rm /var/www/html/index.html

为了安全目的,应禁止Apache将web root目录/var/www/html中的文件和目录公开给访问者:


sudo sed -i"s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

启动Apache服务并在开机时启动它:


sudo systemctl start apache2.service
sudo systemctl enable apache2.service

步骤3配置UFW防火墙

默认情况下,在新部署的Ubuntu 16.04服务器实例上禁用UFW防火墙。使用以下命令启用UFW防火墙,并且允许SSH HTTP和HTTPS的入站流量:


sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in"Apache Full"
sudo ufw enable

步骤4:安装MariaDB

4.1 )使用以下命令安装MariaDB :


sudo apt-get install mariadb-client mariadb-server -y

4.2 )启动MariaDB服务:


sudo systemctl start mysql.service
sudo systemctl enable mysql.service

4.3 )保护MariaDB的安装:


sudo /usr/bin/mysql_secure_installation

在交互进程中,按如下方式回答问题:


Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

注意:用你自己的MySQL root密码替换<your-password>

4.4 )修改MySQL root用户的认证插件:


sudo mysql -u root -p

使用前面设置的MariaDB root密码登录。

在MySQL shell中:


UPDATE mysql.user SET authentication_string=PASSWORD('<your-password>'), plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;

注意:用你自己的MySQL root密码替换<your-password>

步骤5:安装PHP

为Icinga 2和Icinga Web 2安装php 7.0和几个扩展:


sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-intl php7.0-xml php7.0-ldap php7.0-mysql php7.0-pgsql php-imagick -y

安装当前版本的Composer:


cd
php -r"copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r"if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r"unlink('composer-setup.php');"

注意:以上命令可能会在未来过期,因此你应该始终从Composer官方网站获取最新版本 。

为了方便,将Composer脚本composer.phar移动到/usr/local/bin并将它重命名为composer


sudo mv ~/composer.phar /usr/local/bin/composer

安装zip并解压缩:


sudo apt-get install zip unzip -y

使用Composer安装ZendFramework Db组件:


composer require zendframework/zend-db

然后你需要为你的机器设置适当的时区,这可以从PHP官方网站获取 ,例如,如果服务器实例位于洛杉矶数据中心,那么这个服务器的时区值为America/Los_Angeles

使用vi编辑器打开PHP配置文件:


sudo vi /etc/php/7.0/apache2/php.ini

查找行:

 
;date.timezone =

 

将其改为:


date.timezone = America/Los_Angeles

保存和退出:

 
:wq

 
!

重新启动Apache服务,以便使新设置生效:


sudo systemctl restart apache2.service

步骤6安装ICINGA 2及其插件

设置Icinga APT


cd
wget -O - http://packages.icinga.org/icinga.key | sudo apt-key add -
sudo add-apt-repository 'deb http://packages.icinga.org/ubuntu icinga-xenial main'
sudo apt-get update

使用Icinga APT repo安装Icinga 2和几个插件:


sudo apt-get install icinga2 nagios-plugins -y

要了解有关Icinga 2插件的更多信息,请访问监控插件项目网站。

启动ICINGA 2服务:


sudo systemctl start icinga2.service
sudo systemctl enable icinga2.service

默认情况下Icinga 2程序将启用三个功能: checker ,mainlog和notification,你可以使用以下命令确认:


sudo icinga2 feature list

步骤7:设置Icinga 2个IDO模块

7.1 )为MySQL安装(Icinga Data Output)模块


sudo apt-get install icinga2-ido-mysql

在配置icinga2-ido-mysql向导中,当被问到是否要启用Icinga 2 的ido-mysql功能时,选择No,我们将在以后手动启用此功能。

当被问及是否要为icinga2-ido-mysql配置数据库时请选择<No>,你可以手动创建一个数据库,如步骤7.2.

7.2为ICINGA 2创建数据库

以root的形式登录到MySQL shell :


sudo mysql -u root -p

使用你在步骤4中设置的MariaDB root密码登录。

在MySQL shell中使用密码icinga创建名为icinga的数据库和名为icinga的数据库用户,然后将此数据库的权限授予此数据库用户。


CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
FLUSH PRIVILEGES;
EXIT;

7.3导入ICINGA 2IDO架构


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

出现提示时,输入MariaDB root密码完成设置。

7.4 )启用模块


sudo vi /etc/icinga2/features-available/ido-mysql.conf

查找以下行:


user ="icinga2",
password ="",
host ="localhost",
database ="icinga2"

按如下方式修改它们:


user ="icinga"
password ="icinga"
host ="localhost"
database ="icinga"

保存和退出:

 
:wq

 
!

启用功能:


sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2.service

步骤8安装Icinga Web 2

8.1 )设置外部命令管道


sudo icinga2 feature enable command
sudo systemctl restart icinga2.service
sudo icinga2 feature list

在使用Web界面向Icinga 2发送命令之前,需要将www-data用户添加到icingacmd组,


sudo groupadd icingacmd
sudo usermod -a -G icingacmd www-data

使用以下命令确认你的设置:

 
id www-data

 

8.2安装ICINGA Web 2软件包


sudo apt-get install icingaweb2 icingaweb2-module-monitoring icingaweb2-module-doc icingacli -y

将Apache Web根目录指向Icinga Web 2指定的位置:


sudo icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
sudo systemctl restart apache2.service

8.3设置Icinga Web 2数据库


sudo mysql -u root -p

CREATE DATABASE icingaweb2;
EXIT;

8.4加载ICINGA Web 2数据库架构


mysql -u root -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql

8.5)生成设置令牌,以便以后在Icinga Web 2 Web安装向导中使用,


sudo icingacli setup token create

8.6在Web界面中启动Icinga 2安装向导

将你的网页浏览器指向以下网址:


http://<your-serve-ip>/icingaweb2/setup

8.7 )在欢迎页面上,输入你先前生成的设置标记,然后单击Next按钮。

8.8 )在模块页面上,选择要启用(至少需要Monitoring模块)的一个或多个模块,然后单击Next按钮。

8.9 )在需求页面上,确保满足每个要求的项目,然后单击Next按钮。

8.10在认证页面上,你需要设置在访问Icinga Web 2.时的身份验证方法,你可以选择Database,然后,单击Next按钮。

8.11 )在数据库资源页上,按如下所示填写所有必需的字段,然后单击Next按钮。

  • Resource Name*:icingaweb_db
  • Database Type*:MySQL
  • Database Name*:icingaweb2
  • Username* :root
  • Password* :< MariaDB-root-password >

8.12 )在Authentication Backend页面,使用默认的后台名称icingaweb2,点击Next按钮继续。

8.13在Administration page页面上,设置第一个Icinga Web 2管理帐户(icingaweb2admin )和密码(icingaweb2pass ),然后,单击Next按钮。

8.14 在Application Configuration page页面上,你可以调整与应用程序和日志相关的配置选项,以满足你的需要,现在,你可以使用下面列出的默认值,并单击Next按钮进行操作。

  • Show Stacktraces选中
  • 用户首选项存储类型*:数据库
  • Logging Type* : Syslog
  • 记录级别*:错误
  • Application Prefix*:icingaweb2

8.15 )在Review page页面上,双击你的配置,然后单击Next按钮。

8.16 )在Monitoring Module Configuration(监视模块配置欢迎页面)上,单击Next按钮。

8.17 )在Monitoring Backend page (监视后台页面)上,使用默认的后台名称icinga和后台类型IDO,然后单击Next按钮。

8.18 )在Monitoring IDO Resource page(监视资源页面)上,输入先前设置的IDO数据库详细信息,然后单击Next按钮。

  • 资源名称*:ICINGA UIDO
  • 数据库Type* MySQL
  • 数据库名称*:ICINGA
  • Username* :icinga
  • Password* :icinga

8.19 )在Command Transport page(命令传输页)上,仍然使用下面列出的这些默认值,单击Next按钮以移动。

  • Transport Name*:ICINGA2
  • Transport Type*本地命令文件
  • Command File* :/var/run/icinga2/cmd/icinga2.cmd

8.20 )在Monitoring Security page上,仍然使用默认值:

  • 受保护的自定义变量:*pw *,*pass *,community。

单击Next按钮转到下一页。

8.21 )在检查页面上,双击你的配置,然后单击Finish按钮。

8.22)在Congratulations页中,单击 Login to Icinga Web 2 按钮跳转到ICINGA Web 2登录页面,使用你之前设置的Icinga Web 2管理帐户和密码登录,现在可以随意浏览Icinga Web 2仪表板了。

我们的教程到此结束,谢谢你的阅读。

Anne655 profile image