CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

第一部分:Nagios介绍

         Nagios是一款开源的电脑系统和网络监控工具,能有效监控Windows、Linux和Unix的主机状态,交换机、路由器等网络设备以及打印机等。在主机或服务状态异常是发出邮件或短信报警,及时通知网络运维人员,在状态恢复后发出正常的邮件或短信。

         Nagios的主要功能分为两个方面:网络服务监控和主机资源监控。网络服务监控主要有:SMTP、POP3、HTTP、ICMP、SNMP、FTP、SSH等,主机资源监控主要有内存使用率、CPU负载、磁盘使用率、服务状态、进程信息以及用户自己开发的检查服务。另外,Nagios能够搭配多种插件扩展Nagios功能,能够定义网络主机层次,支持性能分析图表,能够及时告警,自动日志循环,支持冗余监控。

         Nagios的功能是监控主机和服务,但是自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。Nagios提供了很多插件,利用这些插件可以方便地监控很多服务状态。

         启动Nagios后,它会周期性的自动调用插件区检测服务状态,同时Nagios会维持一个队列,所有插件返回的状态信息都进入队列,Nagios每次都从对手开始读取信息,并进行处理后,把状态结果通过web显示出来。

         Nagios可以识别4种状态返回信息,即0(OK)表示状态正常,用绿色表示、1(WARNING)表示出现警告,用黄色表示、2(CRITICAL)表示出现非常严重的错误,用红色表示、3(UNKNOWN)表示未知错误,用棕色表示。Nagios根据插件返回的值,判断监控对象的状态,并通过web显示出来,便于管理员及时发现问题。

         知道Nagios是如何通过插件来管理服务器对象后,现在开始研究它是如何管理远端服务器对象的。Nagios系统提供了一个插件NRPE,Nagios通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如图所示:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

Nagios通过NRPE来远端管理服务

1、  Nagios执行安装在它里面的check_nrpe插件,来告诉check_nrpe去检测哪些服务;

2、  通过SSL,check_nrpe连接远程服务器上的NRPEdaemon;

3、  NRPE运行本地的各种插件去检测本地的服务和状态(check_disk,……);

4、  NRPE把检测的结果传给监控机的check_nrpe,check_nrpe再把结果送到Nagios状态队列中;

5、  Nagios依次读取队列中的信息,再把结果显示出来。

第二部分:安装环境的搭建

         Nagios内核仅有的要求就是运行在能够访问网络的Linux操作系统,并且装有C编译器。然而在实际工作中,我们要使用到Nagios内核的CGI,所以还需要在Linux操作系统上搭建LAMP环境。本教程所使用的操作系统为CentOS 7.0 ,IP地址为172.16.151.140,主要使用到的软件有Apache、PHP、Nagios、Nagios-plugins、NRPE、RRDtool、PHP4nagios等。

         我们将安装有Nagioscore的计算机或服务器称为监控机,把我们需要对其进行监控的计算机或服务器称为被监控机。我们在监控机上安装Nagios core、Nagios-plugins等软件,对监控的数据做处理,并且提供web界面查看和管理。当然也可以对监控机本身的信息进行监控。在被监控机上安装Nagios-plugins和NRPE等软件,根据监控机的请求执行监控,然后将结果传给监控机。

2.1 安装环境的准备

         首先升级CentOS操作系统

#yum –y update   //升级所有包,改变软件设置和系统设置,系统版本内核都升级

#yum –y upgrade  //升级所有包,不改变软件设置和系统设置,系统版本升级,内核不升级。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

       2.2 配置防火墙

         CentOS7.0操作系统默认使用的是firewall作为防火墙,这里改为iptables防火墙。

2.2.1关闭firewall

#systemctl stop firewalld.service         //停止firewall

#systemctl disable firewalld.service        //禁止firewall开机启动

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

2.2.2安装iptables防火墙

#yum install iptables-services    //安装iptables防火墙

#vi /etc/sysconfig/iptables      //编辑防火墙配置文件

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

#systemctl restart iptables.service   //最后重启防火墙使配置生效

#systemctl enable iptables.service   //设置防火墙开机启动

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

2.2.3关闭SELINUX

#vi /etc/selinux/config   //编辑selinux配置文件

将SELINUX=enforcing 修改为SELINUX=disabled,将SELINUXTYPE=targeted注释掉,保存退出。

#setenforce  0      //使selinux配置立即生效

重启操作系统。

在CentOS 6.5操作系统上关于防火墙的配置如下:

#chkconfig--level 35 iptables off

# vi/etc/selinux/config

将SELINUX=enforcing修改为:SELINUX=disabled,保存退出。

2.3在CentOS 7.0操作系统上搭建LAMP环境

2.3.1安装Apache

#yum –y install httpd

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

#systemctl start httpd.service  //启动Apache

#systemctl enable httpd.service  //设置Apache开机启动

(#systemctlstop httpd.service   //停止apache)

(#systemctlrestart httpd.service   //重启apache)

在浏览器中键入http://localhosthttp://ip,会出现下面的界面,说明Apache安装成功。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

在CentOS 6.5操作系统上安装完Apache后执行

#chkconfighttpd on     // 开机自启动

#servicehttpd start     //启动httpd服务

# yum-y install httpd-manual mod_ssl mod_perl mod_auth_mysql   //安装Apache一些扩展组件

打开浏览器,在地址栏中输入http://localhosthttp://ip。会看到Apache的测试页面。

2.3.2安装数据库

         CentOS7.0中,已经使用MariaDB替代了MySQL数据库。

#yum install mariadb mariadb-server    //安装MariaDB,键入Y

#systemctl start mariadb.service     //启动MariaDB

#systemctl enable mariadb.service   //设置开机启动

(#systemctlstop mariadb.service     //停止MariaDB)

(#systemctlrestart mariadb.service   //重启MariaDB)

#cp  /usr/share/mysql/my-huge.cnf  /etc/my.cnf  //拷贝配置文件(注意:如果在/etc目录下面默认有一个my.cnf,直接覆盖即可)

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

为root账户设置密码。

#mysql_secure_installation

最后出现:Thanks for using MariaDB!

MariaDB密码配置完成,重新启动MariaDB.

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

#systemctl restart mariadb.service  //重启MariaDB

在CentOS 6.5操作系统安装MySQL数据库软件

#yum–y install mysql mysql-server mysql-devel

#chkconfigmysqld on

#servicemysqld start

#/usr/bin/mysql_secure_installation

#netstat–tulpn | grep –i mysql

2.3.3安装PHP

安装PHP

#yum install php  //安装PHP,键入y

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

安装PHP组件,使PHP支持MariaDB

#yum install php-mysql php-gd libjpeg*php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

#systemctl restart mariadb.service  //重启MariaDB

#systemctl restart httpd.service   //重启apache

在CentOS 6.5上安装PHP的过程如下:

#yum–y install php php-mysql

#yum–y install gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pearphp-xmlrpc php-imap

#servicehttpd restart

2.3.4配置Apache和PHP

         Apache配置

#vi /etc/httpd/conf/httpd.conf       //编辑 Apache的配置文件

ServerSignature On     //添加,在错误页中显示Apache的版本,Off为不显示

Options Indexes FollowSymLinks  //修改为:Options IncludesExecCGI FollowSymLinks (允许服务器执行CGI及SSL,禁止列出目录)

AllowOverride None  //修改为:AllowOverrideAll (允许.htaccess)

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

AddHandler cgi-script .cgi //修改为:AddHandlercgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)

AddDefaultCharset UTF-8 //修改为:AddDefaultCharsetGB2312 (添加GB2312为默认编码)

DirectoryIndex index.html   //修改为:DirectoryIndexindex.html index.htm Default.html Default.htm index.php(设置默认首页文件,增加index.php)

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

MaxKeepAliveRequests 500  //添加MaxKeepAliveRequests500 (增加同时连接数)

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

保存退出。

#systemctl restart httpd.service    //重启apache

#rm -f /etc/httpd/conf.d/welcome.conf/var/www/error/noindex.html  //删除默认测试页

PHP配置

#vi /etc/php.ini    //编辑PHP配置文件

#date.timezone =PRC #把前面的分号去掉,改为date.timezone = PRC

#disable_functions=

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

//列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

expose_php = Off #禁止显示php版本的信息

short_open_tag =ON #支持php短标签

open_basedir =.:/tmp/  #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录

保存退出

#systemctl restartmariadb.service    //重启MariaDB

#systemctl restarthttpd.service      //重启Apache

2.3.5测试LAMP环境

#cd  /var/www/html/

#vi index.php

         <?php

                   phpinfo();

          ?>

保存退出

打开浏览器,在地址栏中键入http://localhosthttp://ip。会出现如图所示相关信息。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

注意:检查PHP信息中时候是否和MySQL连接成功。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

注意:Apache默认的程序目录是/var/www/html

最后进行权限设置:#chown apache.apache -R /var/www/html

第三部分:安装Nagios core和Nagios-plugins

         (1)安装必备工具:httpd、php、gcc、glibc、glibc-common、gd、gd-devel。由于在上一部分中已经装了httpd、php、glibc、glibc-common,所以在这里还要安装gcc、gd、gd-devel。

#yum install gcc

#yum install gd gd-devel

         (2)创建nagios用户

#/usr/sbin/useradd -m Nagios

#passwd Nagios

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

         (3)增加nagcmd用户组

#/usr/sbin/groupadd nagcmd

#/usr/sbin/usermod -a -G nagcmd Nagios

#/usr/sbin/usermod -a -G nagcmd apache

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

         (4)安装Nagioscore

#tar -zxvf  nagios-4.0.8.tar.gz 

#cd nagios-4.0.8

#./configure --prefix=/usr/local/nagios--with-command-group=nagcmd --enable-nanosleep --enable-event-broker--enable-embedded

#make all

#make install

#make install-init

#make install-config

#make install-commandmode

#make install-webconf

(5)添加联系人邮箱

#vi/usr/local/nagios/etc/objects/contacts.cfg

         (6)为Nagios软件添加账户和密码

#htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin

         (7)重启httpd服务

#Service httpd   restart

         (8)安装nagios-plugins

#tar -zxvf  nagios-plugins-2.0.3.tar.gz

#./configure  --with-nagios-user=nagios  --with-nagios-group=Nagios  –with-openssl=/usr/bin/openssl  –enable-perl-module

#make

#make install

(9)将Nagios添加到系统服务中

#chkconfig --add nagios

#chkconfig nagios on    //设置nagios的启动等级为on

#/usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg

         (10)启动Nagios之前,检验Nagios配置文件,如果没有错去,则启动Nagios

#service  nagios start

打开浏览器,在地址栏中输入httpd://localhost/nagios或者 http://ip/nagios,会出现如图所示界面,则Nagios基本服务安装完成。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

第四部分:安装PNP4nagios

         4.1 PNP4nagios软件依赖性

l  Perl>=5.x,不需要其他额外的模块

l  RRDtool>=1.x,1.2版本更好,但是并不强制使用该版本

l  PHP>=5.1.6 基于Kohana的web前端的需要

l  Nagios>=2.x或者是Icigna

l  Kohana需要弃用“mod_rewrite”模块

在安装PNP4nagios之前需要检查安装环境是否满足上述条件。

注意:通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“LoadedModules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开您的apache安装目录“/etc/httpd/conf/”下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。如果没有查找到,则到“LoadModule”区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

4.2 安装RRDtool

检查操作系统中是否已经安装cgilib-0.5.tar.gz、libart_lgpl-devel、pango-devel、cairo-devel,如果没有,则执行以下操作:

#tarzxvf cgilib-0.5.tar.gz

#cdcgilib-0.5

#make

#cplibcgi.a /usr/local/lib

# cpcgi.h /usr/include

安装libart_lgpl-devel包

#yum –yinstall libart_lgpl-devel

安装pango-develcairo-devel

# yum –yinstall pango-devel* cairo-devel*

安装完成之后就可以安装RRDtool

#tar–zxvf rrdtool-1.4.5.tar.gz

#cdrrdtool-1.4.5

#./configure  -–prefix=/usr/local/rrdtool-1.4.5

在这一步,如果出现如图所属错误:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

提示缺少libxml2,(I found acopy of pkgconfig ,but there is no libxml-2.0.pc file around.)

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

执行 yum –y installlibxml2-devel,然后在执行#./configure –prefix=/usr/local/rrdtool-1.4.5。

#make

#makeinstall

当出现如下错误时:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

执行yum installperl-ExtUtils-CBuilder或者yum install perl-ExtUtils-MakeMaker后再重新编译,或者执行yuminstall perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker。

4.3 安装PNP4nagios

#tar–zxvf pnp4nagios-0.6.24.tar.gz

#cdpnp4nagios-0.6.24

#./configure–prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool-1.4.5/bin/rrdtool --with-perl_lib_path=/usr/local/rrdtool-1.4.5/lib/perl/5.16.3/x86_64-linux-thread-multi/

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

#makeall

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

#makefullinstall

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

至此 ,pnp4nagios安装完成

在安装过程中如果出现如下图所示的错误提示,则执行:#yum install perl-Time-HiRes。然后再编译安装。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

4.4 配置pnp4nagios

(1)查看pnp4nagios的目录结构

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

注意:在pnp4nagios的子目录var中并没有host-perfdata、host-perfdata-PID-*、service-perfdata、host-perfdata-PID-*,所以需要手工创建host-perfdata和service-perfdata。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

修改host-perfdata和service-perfdata的属主和属组

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

补充:也可以不创建host-perfdata和service-perfdata,系统会自动创建。

(2)查看相关文件

查看pnp4nagios的Apache配置文件:/etc/httpd/conf.d/pnp4nagios.conf,注意如图所示的部分:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

将其修改为:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

补充:不修改也可以

查看PNP4nagios的启动脚本

#more/etc/init.d/npcd

注意查看:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

查看PNP4nagios的配置文件:

#more /usr/local/pnp4nagios/etc/npcd.cfg

(4)结合PNP4nagios的工作模式进行配置

PNP4nagios支持5中工作模式:Synchronous模式、Bulk模式、使用NPCD的Bulk模式、使用npcdmod的Bulk模式、Gearman模式,具体细节请查看相关资料。

使用PNP4nagios,需要对Nagios的以下四个方面进行配置:

l  修改nagios.cfg文件,启用处理性能数据分析

l  修改command..cfg文件,添加host和service性能数据处理命令

l  修改templates.cfg文件,添加host和service的模板定义

l  修改相应的host和service定义添加templates.cfg文件中定义的相应模板

在此以Bulk模式下的配置为例:

首先,编译/usr/local/Nagios/etc/Nagios.cfg文件,在该文件中添加如下配置:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

其次,编译/usr/local/Nagios/etc/objects/commands.cfg文件,添加以下配置:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

第三,在/usr/local/Nagios/etc/objects/templates.cfg中添加定义host和service模板

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

最后,在需要查看图像的host和service定义中添加第三步定义的模板:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

配置完成之后对nagios的配置文件进行校验,确认无误后重新启动nagios和httpd。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

访问nagios的web接口 ,如图所示:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

单击这些“流量”图表会出现如下情况:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

根据最后部分的提示,将文件/usr/local/pnp4nagios/share/install.php重命名或删除,校验nagios配置文件后,重启nagios和httpd,将会出现如下图像:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

至此PNP4nagios安装成功。

(5)将性能图表集成到nagios的web页面中

第一步,将contrib/ssi目录下的status-header.ssi拷贝到/usr/local/Nagios/share/ssi/下,不添加可执行权限。

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

第二步,更改相关的host和service模板设置

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

第三步,校验nagios的配置文件,确认无误后,重启nagios和httpd。访问nagios的web页面,会显示如下图像:

CentOS 7.0环境下安装配置nagios4.0.8+pnp4nagios教程

至此,完成将性能图表添加到nagios的web页面的步骤。

相关文章:

  • 2021-06-09
  • 2022-03-13
  • 2021-11-22
  • 2022-12-23
猜你喜欢
  • 2021-12-17
  • 2021-10-16
  • 2021-10-17
  • 2022-12-23
  • 2021-11-23
相关资源
相似解决方案