centos7-nagiospnp-4.08配置

1.官网下载nagios-4.0.8、nagios-plugins-2.0.3

  wget http://jaist.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.8/nagios-4.0.8.tar.gz

  wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

2.安装前系统的依赖检查

    rpm q httpd pnp gcc glibc glibc-common gd gd-devel make

没有的话用yum下载下:

    yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make 

3.创建nagios用户与用户组

   useradd nagios

   groupadd nagcmd

   usermod -a -G nagcmd nagios

 mkdir /usr/local/nagios

 chown -R nagios:nagcmd /usr/local/nagios/

4.编译安装nagios-4.0.8

   tar zxvf nagios-4.0.8.tar.gz 

   cd nagios-4.0.8

   ./configure --prefix=/usr/local/nagios 

   make all

   make install 

   make install-init  

   make install-config 

   make install-commandmode 

   make install-webconf 

5.配置httpd和php

 (1)配置web登陆用户名和密码

 

创建nagios验证文件:

      htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin    ##创建nagios登录web界面的用户名和密码

 

 (2)vi /etc/httpd/conf/httpd.conf  加入以下内容

 找到 

user apache

      group apache

      修改为

      user nagios

      group nagcmd

  (3) Apache 配置文件件/etc/httpd/conf/httpd.conf 中找到DirectoryIndex index.html 

将其修改为:

DirectoryIndex index.html index.php

以上主要用于增加 php 文件的支持。

同时为了安全,需要经过授权才能访问 Nagios 的 Web 监控界面,请确保/etc/httpd/conf.d/nagios.conf 中有如下访问控制配置,一般编译后nagios.conf中会自动生成,若有需要,请自行修改。

# vi /etc/httpd/conf.d/nagios.conf

21行和38行的htpasswd.user改为htpasswd(注:也可不进行更改,但在下部中要加全路径名)

<Directory "/usr/local/nagios/sbin">

#  SSLRequireSSL

   Options ExecCGI

   AllowOverride None

   Order allow,deny

   Allow from all

#  Order deny,allow

#  Deny from all

#  Allow from 127.0.0.1

   AuthName "Nagios Access"

   AuthType Basic

   AuthUserFile /usr/local/nagios/etc/htpasswd

   Require valid-user

</Directory>

Alias /nagios "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

#  SSLRequireSSL

   Options None

   AllowOverride None

   Order allow,deny

   Allow from all

#  Order deny,allow

#  Deny from all

#  Allow from 127.0.0.1

   AuthName "Nagios Access"

   AuthType Basic

   AuthUserFile /usr/local/nagios/etc/htpasswd

   Require valid-user

</Directory>

  (4)修改SELinux,2种办法

       ① vi  /etc/sysconfig/selinux   要重启机器reboot

            SELINUX=disabled

       ②临时关闭(不用重启机器):

# setenforce 0                       ##设置SELinux 成为permissive模式  (关闭SELinux

# setenforce 1                       ##设置SELinux 成为enforcing模式     (开启SELinux

  检查selinux是否关闭:

#getenforce #如果显示enforcing则没有关闭

 

6、安装nagios-plugins

   tar zxvf nagios-plugins-2.0.3.tar.gz 

   cd nagios-plugins-2.0.3

   ./configure --prefix=/usr/local/nagios 

   make

   make install

检查配置是否有错误:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

7、设置开机启动 

# chkconfig --add nagios           ##增加nagios为系统服务

#systemctl enable httpd.service     ##设置CentOS开机启动http服务

 # systemctl start httpd.service     

# systemctl start nagios.service

8、Nagios 目录与相关配置文件说明

Nagios 安装完成后,/usr/local/nagios/目录下会生成 nagios 相关目录及配置文件,默认的的配置文件在/usr/local/nagios/etc 目录下。关于详细的描述,见下表:

表 1. Nagios 相关目录的名称及用途

 目录名称:  作用

 centos7-nagiospnp-4.08配置_第1张图片  

备注 Nagios 在配置方面非常灵活,默认的配置文件并不是必需的。可以使用这些默认的配置文件,也可以创建自己的配置文件,然后在主配置文件 nagios.cfg 中引用即可。     

Nagios 配置文件间的关联

Nagios 的配置过程涉及几个定义有:主机、主机组、服务、服务组、联系人、联系人组、监控时间和监控命令等,从这些定义可以看出,Nagios 的各个配置文件之间是互为关联、彼此引用的。成功配置一台 Nagios 监控系统,需要掌握每个配置文件之间依赖与被依赖的关系,可从下面四个步骤来入手,第一步:定义哪些主机、主机组、服务和服务组,第二步:要定义这个监控要通过什么命令实现,第三步:要定义监控的时间段,第四步:要定义主机或服务出现问题时要通知的联系人和联系人组;强烈建议依据以上顺序对 Nagios 系统进行相关配置。

Nagios 配置设定

Nagios 安装成功后,会在/usr/loca/nagios 目下生成相应的主机,服务、命令、模板等配置文件,同时也可看到之前设置的 Nagios 授权目录认证文件 htpasswed.users,而 Object 目录是存放一些配置文件模板,主要用于定义 Nagios 对象,具体如下图:

自定义监控目录

# cd /usr/local/nagios/etc

# mkdir  monitor

# chown nagios:nagios  monitor

修改 nagios.cfg 配置文件,修改默认定义的对象配置文件为common_cfg目录,并在 nagios.cfg 文件增加一行:cfg_dir=/usr/local/nagios/etc/monitor 

Nagios 的配置大多是对监控对象配置文件进行修改配置,这里复制了 objects 目录下的所需对象配置文件模板,同时在 monitor 文件下创建了独立的配置文件 hosts.cfg 和 services.cfg 来定义主机和服务,创建grps-host.cfggrps-service.cfg来定义主机组和服务组。至于联系人和监控的时间段这里保持默认配置。

下面主要描述下此平台架设相关的几个主要配置文件具体含义,分别为:templates.cfghosts.cfservices.cfg.

templates.cfg 文件

默认模板配置文件

define contact{
name generic-contact #联系人名称 
service_notification_period 24x7 #当服务出现异常时,发送通知的时间段
host_notification_period 24x7 #当主机出现异常时,发送通知的时间段
service_notification_options w,u,c,r #通知发出的情况w即 warning 警告状态,uunknown 不明状态,ccriticle 紧急状态,rrecover 恢复状态
host_notification_options d,u,r #主机何种状态需要发送通知,ddown,表示宕机状态,uunreachable,不可到达状态,rrecovery,恢复状态 
service_notification_commands notify-service-by-email #服务故障时,发送通知的方式,其中notify-service-by-email在 
commands.cfg 文件中定义
host_notification_commands notify-host-by-email #主机故障时,发送通知的方式,其中“notify-host-by-email”在 
commands.cfg 文件中定义
}
define host{
name linux-server #主机名称
use generic-host #use 表示引用,也就是将主机 generic-host 的所有属性引用到 linux-server 中来
check_period 24x7 #这里的 check_period 告诉 nagios 检查主机的时间段
check_interval 5 #nagios 对主机的检查时间间隔,这里是 5 分钟
retry_interval 1 #重试检查时间间隔,单位是分钟
max_check_attempts 10 #nagios 对主机的最大检查次数
check_command check-host-alive #指定检查主机状态的命令,其中“check-host-alive”在 commands.cfg 文件中定义
notification_period workhours #主机故障时,发送通知的时间范围,其中“workhours”在 timeperiods.cfg 中进行了定义
notification_interval 30 #在主机出现异常后,故障没解决,nagios 再次发出通知的时间。单位分钟
notification_options d,u,r #主机何状态时发送通知给使用者,ddown,宕机状态,u 即 unreachable,不可达状态,r 即 recovery,恢复状态
contact_groups admins #指定联系人组,这个“admins”在 contacts.cfg 文件中定义
}
define service{
name local-service #定义一个服务名称
use generic-service #引用服务local-service的属性信息,local-service 主机在 templates.cfg 文件中进行了定义
max_check_attempts 4 #最大检测 4 次,为了确定服务最终状态
normal_check_interval 5 #每 5 分钟检测一次
retry_check_interval 1 #每 1 分钟重新检测服务,最终的状态能被确定
}

hosts.cfg 文件

此文件默认情况下不存在,需要手动创建。hosts.cfg 主要用来指定被监控的主机地址及相关属性信息。配置如下表:

定义主机配置实例

define host { use linux-server #引用主机 linux-server 的属性信息,linux-server 主机在 templates.cfg 文件中进行了定义 host_name mail1 #被监控主机名 alias mail server #被监控主机别名 address 192.168.1.162 #被监控主机 IP 地址}

services.cfg 文件

此文件在默认情况下也不存在,需要手动创建。services.cfg 文件主要用于定义监控的服务和主机资源,例如监控 HTTP 服务、FTP 服务、主机磁盘空间、主机系统负载等。

定义服务配置

define service{ use local-service #引用服务local-service 的属性,local-service 主机在 templates.cfg 文件中进行定义 host_name mail1 #被监控主机名 service_description SSH #监控的服务 check_command check_ssh # nagios 插件监控指令 }define service{ use local-service host_name mail1 service_description SSHD check_command check_tcp!22 # 使用的检测命令,同时多个参数匹配用 “!” 分隔 }

定义主机组

# Define an optional hostgroup for Linux machinesdefine hostgroup{        hostgroup_name          inux-servers        alias                   Linux Servers        }

定义服务组

# Define an optional servicegroup for Linux machinesdefine servicegroup{        servicegroup_name       linux-services         alias                   Linux Services         }

 

9. 安装 RRDtool

#yum -y install zlib zlib-devel libpng libpng-devel \ freetype freetype-devel libart_lgpl libart_lgpl-devel \ libxml2 libxml2-devel gd gd-devel cairo cairo-devel \ pango pango-devel php-gd perl-rrdtool rrdtool 

10. 编译安装 PNP

#wget -c http://sourceforge.net/projects/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.24.tar.gz#tar zxvf pnp4nagios-0.6.24.tar.gz#cd pnp4nagios-0.6.24#./configure\--with-nagios-user=nagios \--with-nagios-group=nagios \--with-rrdtool=/usr/bin/rrdtool  \--with-perfdata-dir=/usr/local/nagios/share/perfdata#make all#make install#make install-webconf#make install-config#make install-init

 

11. PNP 配置文件定义

在 PNP 安装完成后,默认安装目录下回自带相应的模板配置文件,因此只需要参考相应的模板文件进行修改即可,

<span; style="margin: 0px; padding: 0px;">

1. PNP 配置文件定义

{

1.cd  /usr/local/pnp4nagios/etc

2.mv misccommands.cfg-sample  misccommands.cfg

3.mv nagios.cfg-sample nagios.cfg

4.mv rra.cfg-sample rra.cfg

}

打开 process_perfdata.cfg 文件,修改相关内容。可从下图的注释信息了解到将数字 变更为 是开启了日志的调试功能,开启日志调试后pnp每次处理都会在LOG_FILE指定的文件中生成日志

修改 Nagios 相关配置文件,在nagios界面中增加pnp图标

修改 templates.cfg,增加一个定义 PNP 的 host 和 service,根据pnp4nagios安装的位置修改URL,见下图:

 define host{        name                    hosts-pnp        register                0        action_url              /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_        process_perf_data       1        }define service{        name                    services-pnp        register                0        action_url              /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$        process_perf_data       1        }

修改 nagios.cfg,如果想让 nagios 将数据输出,首先要修改 nagios 的主配置文件 nagios.cfg,找到如下几项,如有注释的将其去掉。修改后的信息如下:

 

12. 增加 nagios 数据输出设置

#vim /usr/local/nagios/etc/nagios.cfg

process_performance_data=1

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$

host_perfdata_file_mode=a

service_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

service_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file

service_perfdata_file_processing_command=process-service-perfdata-file

enable_environment_macros=1

修改 commands.cfg

process-host-perfdata 和 process-service-perfdata 指令声明了 nagios 输出哪些值到输出文件中。不过这些定义相对简单,而 PNP 提供了一个 Perl 脚本,非常详细地定义了一个输出数据的方法,process_perfdata.pl 其实是 PNP 自带的一个脚本,这个脚本在 PNP 安装完成后会自动生成。因此,可以将 process-host-perfdata 和 process-service-perfdata 指令中对应的执行命令的内容替换成此脚本。增加下的内容:

在 commands.cfg 文件中增加性能图片配置

# 'process-host-perfdata' command definitiondefine command{#       command_name    process-host-perfdata        command_name    process-host-perfdata-file        command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata        }# 'process-service-perfdata' command definitiondefine command{#       command_name    process-service-perfdata        command_name    process-service-perfdata-file        command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata

修改 hosts.cfg 与 services.cfg

将 hosts-pnp 和 services-pnp 引用到 hosts.cfg 和 services.cfg 的每个定义段中,修改后的 hosts.cfg 内容如图 13 和图 14 所示:

在 hosts.cfg 文件中增加性能图片配置

define host {use             linux-server,hosts-pnphost_name       mail1address         192.168.X.Xhostgroups      inux-servers}define host {use             linux-server,hosts-pnphost_name       test1-lnxaddress         192.168.X.Xhostgroups      inux-servers}

在 services.cfg 文件中增加性能图片配置

define service{use                     local-service,services-pnphost_name               mail1service_description     SSH check_command           check_ssh servicegroups           linux-services}define service{use                     local-service,services-pnphost_name               mail1service_description     SSHDcheck_command           check_tcp!22 servicegroups           linux-services}

 

13.WEB测试登陆访问

http://IP/nagios 输入用户名nagiosadmin和密码登陆测试

点图标显示这个图片证明pnp配置成功,然后mv install.php installcs.php,就可以了

centos7-nagiospnp-4.08配置_第2张图片 

安装配置遇到的问题总结:

1.centos7 /usr/local/nagios/etc生成的验证密码文件是这个htpasswd,而配置文件nagios.confpnp4nagios.conf里面的配置文件名字却是AuthUserFile /usr/local/nagios/etc/htpasswd.users要改成AuthUserFile /usr/local/nagios/etc/htpasswd

2.点图标报这个错误,php权限问题,因为apache我们制定了nagios用户和组,所以要进入cd /var/lib/php/ 敲命令llphp属于的用户和组,并将其改为nagios用户和组

centos7-nagiospnp-4.08配置_第3张图片

命令如下:

centos7-nagiospnp-4.08配置_第4张图片

 


你可能感兴趣的:(CentOS7,nagios,rrdtool,pnp)