NRPE默认端口号:5666
Nagios运行在服务端
监控
1,收集信息,对监控主机,服务等进行检测,记录相关信息
2,图形表现
3,邮件(短信,微信等)报警
4,开发接口(写程序自定义监控)
开源的监控软件
mrtg
ntop
cacti
nagios
zabbix
Ganglia
centreon
监控宝
360监控
阿里云监控
等
=============================================================================
nagios
www.nagios.org
Nagios Core --主监控引擎和基本web管理接口
Nagios Core Plugins --监控命令包
Nagios Core Frontends --类似皮肤
Nagios Core Addons --其它的project(支持其它各种功能的额外项目)
准备一台虚拟机开始安装nagios(桥接网络)
安装前准备:
1,主机名
2,关闭firewalld,selinux
3,关闭NetworkManager,并配置静态ip
4,配置本地yum,epel源,163源
5,时间同步
安装步骤:
1,搭建rpm版lamp,不需要mysql(源码版lamp也可以,但nginx不行,因为后面nagios的web子配置文件里的语法都是apache的语法)
# yum install httpd httpd-devel gd gd-devel php
2,安装nagios
# yum install nagios\*
安装完后确认用户
# id nagios
uid=988(nagios) gid=983(nagios) groups=983(nagios)
# id apache
uid=48(apache) gid=48(apache) groups=48(apache),983(nagios)
apache子配置文件路径
# /etc/httpd/conf.d/nagios.conf
主配置文件路径
# /etc/nagios/nagios.cfg
子配置文件路径
# ls /etc/nagios/objects/
commands.cfg localhost.cfg switch.cfg timeperiods.cfg
contacts.cfg printer.cfg templates.cfg windows.cfg
plugins(监控命令)路径,目录下有很多check开头的命令
# ls /usr/lib64/nagios/plugins/
3,设置http访问nagios的验证用户和密码
# htpasswd /etc/nagios/passwd nagiosadmin
New password:
Re-type new password:
Updating password for user nagiosadmin
# nagios -v /etc/nagios/nagios.cfg --检查配置文件正确性
# systemctl restart httpd
# systemctl restart nagios
# systemctl enable httpd
# systemctl enable nagios
# systemctl status httpd
# systemctl status nagios
使用firefox访问:
访问路径http://IP/nagios
用户 nagiosadmin
nagios server ---------- client
=============================================================================
现在查看web界面,默认只监控了localhost,并监控了其8个服务
一些小操作:
1,如果http服务为黄色,是警告,则需要把网站家目录里加一个主页进去(家目录为空,他就会警告)。
但需要等它下一次check才会OK。如果要手动check,可以点http,再右边点Re-schedule the next check of this service去强制check,就OK了
echo haha > /var/www/html/index.html
2,默认http和ssh是关闭通知的,是因为在localhost.cfg里这两个服务有一句 notifications_enabled 0。
也可以手动打开,点进去,再右边点enabled notifications for this service.
如果要永久打开这两个服务的通知,那么就修改下面文件里的notifications_enabled 0为1;或者直接删除notifications_enabled 0,因为默认通知是打开的.
vim /etc/nagios/objects/localhost.cfg
3,关闭ssh服务,刷新web界面,还是没有critical.
点击ssh,可以看到下一次计划的check时间。如果不等的话,在右边点Re-schedule the next check of this service强制check,再刷新就critical
=============================================================================
关于nagios配置文件之间的联系讲解示例
# vim /etc/nagios/nagios.cfg
cfg_file=/etc/nagios/objects/localhost.cfg
# vim /etc/nagios/objects/localhost.cfg
define host{
use linux-server --模版
host_name localhost --主机名
alias localhost --主机别名
address 127.0.0.1 --被监控机器的IP
}
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members localhost --linux Servers组现在只有localhost这一个成员
}
--下面是8个默认定义的服务,我以监控磁盘利用率的这一段为例
define service{
use local-service --模版,在templates.cfg 里定义的
host_name localhost --主机名,调用的是同配置文件里define host里定义的host_name
service_description Root Partition --描述,会在web界面显示的一个标题
check_command check_local_disk!20%!10%!/ --检测利用率的命令,free空间小于20%就报警,小于10就critcal警告
}
# vim /etc/nagios/objects/templates.cfg
define host{
name linux-server
use generic-host --linux主机模版也使用了一个叫generic-host的模版,也在templates.cfg里
check_period 24x7 --在timeperiods.cfg 里定义的时间段
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive --在commands.cfg 里定义的命令
notification_period workhours --通知时间在timeperiods.cfg里定义的
notification_interval 120 --通知间隔
notification_options d,u,r --通知选项
contact_groups admins --通知组,在contacts.cfg 里定义
register 0 --不注册,表示这只是一个模版,被调用,不会被nagios进程认为就是一台主机
}
# vim /etc/nagios/objects/commands.cfg
define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
--命令都在libexec下,用--help去查
# /usr/lib64/nagios/plugins/check_ping --help
=============================================================================
问题:
如何监控本地的/boot分区 使用80%警告,使用90% critical
define service{
use local-service
host_name localhost
service_description Boot Partition
check_command check_local_disk!20%!10%!/boot
}
问题:
如何监控本机zombie进程 5个警告 10个 critical
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Zombie Total Processes
check_command check_local_procs!5!10!Z
}
例:如何增加监控本机的ftp服务
思路步骤:
1,看/usr/lib64/nagios/plugins/下是否有检测ftp的命令,如果没有,自己开发
2,查看相关检测命令的参数文档,按照需求定义你的监控方法,并加入到command.cfg里
3,在localhost.cfg里定义这个服务,并使用第二步定义的命令,并传入值
# vim /etc/nagios/objects/commands.cfg --下面一段默认就有,不需要加,直接改一下
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
}
# vim /etc/nagios/objects/localhost.cfg --加上下面一段
define service{
use local-service
host_name localhost
service_description FTP
check_command check_ftp!1!3
}
# /etc/init.d/nagios restart
练习:
1,如果本机ftp服务为监听2121端口,应该如何监控
# vim /etc/vsftpd/vsftpd.conf
listen_port=2121 --加上这一句
# /etc/init.d/vsftpd restart
# netstat -ntlup |grep ftp
# vim /etc/nagios/objects/localhost.cfg
---加下面一段
define service{
use local-service
host_name localhost
service_description FTP --标题改成FTP
check_command check_ftp_2121!1!3!2121
--命令我这里是没有的,在command.cfg里默认有一个check_ftp,没有
--check_ftp_2121这个,所以要手动去加;!为参数分隔符,1是第一个参数,3是第二个参数,2121是第三个参数;它们对应于我下面定义的-w -c -p
}
# vim /etc/nagios/objects/commands.cfg
define command{
command_name check_ftp_2121
command_line $USER1$/check_ftp -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p $ARG3$
}
--直接使用监控命令去手工check一下,OK的
# /usr/lib64/nagios/plugins/check_ftp -w 1 -c 3 -p 2121
FTP OK - 0.004 second response time on port 2121 [220-#############################
220-#]|time=0.00389s;1.000000;3.000000;0.000000;10.000000
# systemctl restart nagios
练习:
监控本机的mysql
# vim /etc/nagios/objects/localhost.cfg
define service{
use local-service
host_name localhost
service_description MYSQL
check_command check_mysql!root!123
}
# vim /etc/nagios/objects/commands.cfg
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ --第一个参数对应上面的root,第二个对应密码123
}
--手动check一下mysql,OK
# /usr/lib64/nagios/plugins/check_mysql -u root -p123
Uptime: 189 Threads: 1 Questions: 5 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.026
# systemctl restart nagios
练习:
加一个本机监控的service,监控机器运行时间,运行了超过365天就warning,超过1000天就critical
答案:
# vim /etc/nagios/objects/commands.cfg
define command{
command_name check_local_uptime
command_line $USER1$/check_uptime -w $ARG1$ -c $ARG2$ -u $ARG3$
}
# vim /etc/nagios/objects/localhost.cfg
define service{
use local-service
host_name localhost
service_description UPTIME
check_command check_local_uptime!365!1000!days
}
# systemctl restart nagios
=============================================================================================
nagios server ----》 nagios client
10.1.1.2 10.1.1.3
我们把监控的服务分为公共和私有
公共(public):如ssh,http,ftp,mysql等。监控本地或远程的公共服务,都可以直接配置
私有(private):如load,users,disk usage等。监控本地私有服务直接配置就好,监控远程私有服务,需要服务和被监控端安装nrpe
例:监控远程服务器的普通服务(公共服务)。如ssh,http,ftp,mysql等
如:我的被监控端IP为10.1.1.3
1.在nagios服务器的主配置文件里加上10.1.1.3的主机配置文件
# vim /etc/nagios/nagios.cfg
cfg_file=/etc/nagios/objects/10.1.1.3.cfg
2,创建这个10.1.1.3.cfg
# vim /etc/nagios/objects/10.1.1.3.cfg
define host{
use linux-server
host_name 10.1.1.3 --主机名,最好/etc/hosts里对应好IP,我这里没有做,就直接写IP
alias 10.1.1.3 --显示到web上的名字
address 10.1.1.3 --实际被监控主机IP
}
define hostgroup{
hostgroup_name remote linux-servers --这里我定义了一个新组,不能和localhost.cfg里的组同名,会冲突
alias remote Linux Servers
members 10.1.1.3
}
--下面是公共服务,这里我只写了四个,你可以自行增加
define service{
use local-service
host_name 10.1.1.3
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service
host_name 10.1.1.3
service_description SSH
check_command check_ssh
}
define service{
use local-service
host_name 10.1.1.3
service_description HTTP
check_command check_http
}
define service{
use local-service
host_name 10.1.1.3
service_description FTP
check_command check_ftp!1!3
}
# nagios -v /etc/nagios/nagios.cfg
# systemctl restart nagios
==========================================================================
例:监控远程的私有服务
10.1.1.2 10.1.1.3
nagios监控端 被监控linux
check_disk
check_nrpe --------- check_nrpe check_swap
SSL传输 check_load等
第一大步:nagios监控端上的操作
1,确认有如下的命令,如果没有,则yum install nagios-plugins-nrpe
/usr/lib64/nagios/plugins/check_nrpe
2,增加check_nrpe命令到commands.conf文件里
# vim /etc/nagios/objects/commands.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
--c参数后接command, 也就说check_nrpe可以调用别的check命令
3,在nagios服务器上对10.1.1.3的配置文件增加远程私有服务
# vim /etc/nagios/objects/10.1.1.3.cfg
define service{
use local-service
host_name 10.1.1.3
service_description Current Users
check_command check_nrpe!check_remote_users
}
--check_remote_users就是check_nrpe的C参数要调用的命令,此命令在nagios服务器上的commands.cfg里是不存在,它会在后面的步骤中加到被监控端
# systemctl restart nagios
4,用下面的命令做测试,但现在是会报对方5666端口拒绝(因为被监控端还没有安装配置)
# /usr/lib64/nagios/plugins/check_nrpe -H 10.1.1.3 -c check_remote_users
connect to address 10.1.1.3 port 5666: Connection refused
connect to host 10.1.1.3 port 5666: Connection refused
第二大步:nagios被监控端上的操作
1,安装nrpe和其它监控命令包(需要本地,centos163,epel源)
# yum install nrpe nagios-plugins-users
2,修改nrpe主配置文件
# vim /etc/nagios/nrpe.cfg
allowed_hosts=10.1.1.2 --把默认的127.0.0.1改成nagios服务器的ip
command[check_remote_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10 --修改或增加这一行,主要是定义一个叫check_remote_users的命令(和服务器那边的配置对应)
3,启动服务,并检查5666端口是否开启
# systemctl restart nrpe
# systemctl status nrpe
# systemctl enable nrpe
# lsof -i:5666
第三大步:回到nagios服务器端测试
再次使用下面的命令,就可以监控到远程的实际登录用户数了
# /usr/lib64/nagios/plugins/check_nrpe -H 10.1.1.3 -c check_remote_users
USERS WARNING - 9 users currently logged in |users=9;5;10;0
最后,清firefox缓存,在firefox查看远程监控也正确了
=============================================================================
练习:监控远程/分区,/boot分区,swap,cpu load等
=============================================================================
邮件报警验证:
1,确认你至少有一个service为crital状态
2,保证nagios服务器能上公网,还有确认有mail命令了
3,# vim /etc/nagios/objects/contacts.cfg
email linuxdaniel@126.com --改成你的一个公网测试邮箱
4,# systemctl restart nagios
如果你想做成免费手机短信通知,可以使用类似139邮箱这种(有邮件到达就短信通知的功能)的邮箱
现在有智能手机就方便多了,直接报警邮件发给外部一个邮箱,然后在你的手机上下载对应邮箱的app软件就ok了
现在nagios官方直接都有手机客户端管理软件
=============================================================================
nagios图表插件一:
nagiosgraph-1.4.4.tar.gz --此软件包最后的版本是2011年出的,目前在centos7测试过不兼容
以下这份文档是在rhel6.5上成功的文件(仅做参考)
tar xf nagiosgraph-1.4.4.tar.gz -C /usr/src
cd /usr/src/nagiosgraph-1.4.4
[root@li nagiosgraph-1.4.4]# ./install.pl --check-prereq
checking required PERL modules
Carp...1.11
CGI...3.51
Data::Dumper...2.124
File::Basename...2.77
File::Find...1.14
MIME::Base64...3.08
POSIX...1.17
RRDs... ***FAIL*** --没有rrd,就算你在rhel6上yum install *rrd* 再来测试也是fail
Time::HiRes...1.9721
checking optional PERL modules
GD...fail --没有gd,yum install *gd* 也不能搞定
checking nagios installation
found nagios at /usr/local/nagios/bin/nagios
checking web server installation
found apache at /usr/sbin/httpd
安装gd
tar xf libgd-2.1.0.tar.gz -C /usr/src/
cd /usr/src/libgd-2.1.0/
./configure ;make ;make install
echo /usr/local/lib >> /etc/ld.so.conf
ldconfig
tar xf GD-2.56.tar.gz -C /usr/src/
cd /usr/src/GD-2.56/
perl Build.PL
./Build
./Build install
ldconfig
安装rrdtool
# tar xf rrdtool-1.4.8.tar.gz -C /usr/src/
# cd /usr/src/rrdtool-1.4.8/
# ./configure ;make ;make install
# echo /opt/rrdtool-1.4.8/lib > /etc/ld.so.conf.d/rrdtools.conf
# ldconfig
# cd /usr/src/rrdtool-1.4.8/bindings/perl-shared
# make clean
# perl Makefile.PL && make && make install
# cd /usr/src/nagiosgraph-1.4.4/
--再次用下面的命令检测就都OK了
[root@li nagiosgraph-1.4.4]# ./install.pl --check-prereq
checking required PERL modules
Carp...1.11
CGI...3.51
Data::Dumper...2.124
File::Basename...2.77
File::Find...1.14
MIME::Base64...3.08
POSIX...1.17
RRDs...1.4008
Time::HiRes...1.9721
checking optional PERL modules
GD...2.56
checking nagios installation
found nagios at /usr/local/nagios/bin/nagios
checking web server installation
found apache at /usr/sbin/httpd
------------
参考下面这份文档
http://www.linuxfunda.com/2013/04/02/steps-to-configure-nagiosgraph-with-nagios-core/
开始安装
1,
[root@qianyun nagiosgraph-1.4.4]# ./install.pl --install
checking required PERL modules
Carp...1.11
CGI...3.51
Data::Dumper...2.124
File::Basename...2.77
File::Find...1.14
MIME::Base64...3.08
POSIX...1.17
RRDs...1.4008
Time::HiRes...1.9721
checking optional PERL modules
GD...2.53
checking nagios installation
found nagios at /usr/local/nagios/bin/nagios
checking web server installation
found apache at /usr/sbin/httpd
Destination directory (prefix)? [/usr/local/nagiosgraph]
Location of configuration files (etc-dir)? [/usr/local/nagiosgraph/etc]
Location of executables? [/usr/local/nagiosgraph/bin]
Location of CGI scripts? [/usr/local/nagiosgraph/cgi]
Location of documentation (doc-dir)? [/usr/local/nagiosgraph/doc]
Location of examples? [/usr/local/nagiosgraph/examples]
Location of CSS and JavaScript files? [/usr/local/nagiosgraph/share]
Location of utilities? [/usr/local/nagiosgraph/util]
Location of state files (var-dir)? [/usr/local/nagiosgraph/var]
Location of RRD files? [/usr/local/nagiosgraph/var/rrd]
Location of log files (log-dir)? [/usr/local/nagiosgraph/var]
Path of log file? [/usr/local/nagiosgraph/var/nagiosgraph.log]
Path of CGI log file? [/usr/local/nagiosgraph/var/nagiosgraph-cgi.log]
URL of CGI scripts? [/nagiosgraph/cgi-bin]
URL of CSS file? [/nagiosgraph/nagiosgraph.css]
URL of JavaScript file? [/nagiosgraph/nagiosgraph.js]
Path of Nagios performance data file? [/tmp/perfdata.log]
URL of Nagios CGI scripts? [/nagios/cgi-bin]
username or userid of Nagios user? [nagios]
username or userid of web server user? [apache]
Modify the Nagios configuration? [n]
Modify the Apache configuration? [n]
configuration:
ng_layout standalone
ng_prefix /usr/local/nagiosgraph
ng_etc_dir /usr/local/nagiosgraph/etc
ng_bin_dir /usr/local/nagiosgraph/bin
ng_cgi_dir /usr/local/nagiosgraph/cgi
ng_doc_dir /usr/local/nagiosgraph/doc
ng_examples_dir /usr/local/nagiosgraph/examples
ng_www_dir /usr/local/nagiosgraph/share
ng_util_dir /usr/local/nagiosgraph/util
ng_var_dir /usr/local/nagiosgraph/var
ng_rrd_dir /usr/local/nagiosgraph/var/rrd
ng_log_dir /usr/local/nagiosgraph/var
ng_log_file /usr/local/nagiosgraph/var/nagiosgraph.log
ng_cgilog_file /usr/local/nagiosgraph/var/nagiosgraph-cgi.log
ng_url /nagiosgraph
ng_cgi_url /nagiosgraph/cgi-bin
ng_css_url /nagiosgraph/nagiosgraph.css
ng_js_url /nagiosgraph/nagiosgraph.js
nagios_cgi_url /nagios/cgi-bin
nagios_perfdata_file /tmp/perfdata.log
nagios_user nagios
www_user apache
modify_nagios_config n
nagios_config_file
nagios_commands_file
modify_apache_config n
apache_config_dir
apache_config_file
Continue with this configuration? [y]
.............
2,
# vim /usr/local/nagios/etc/nagios.cfg --最后加上下面一段
process_performance_data=1
service_perfdata_file=/tmp/perfdata.log
service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph
3,
# vim /usr/local/nagios/etc/objects/commands.cfg --加上这一段,定义此命令
define command {
command_name process-service-perfdata-for-nagiosgraph
command_line /usr/local/nagiosgraph/bin/insert.pl
}
4,
# vim /etc/httpd/conf/httpd.conf --在你的apache里include这个文件
Include /usr/local/nagiosgraph/etc/nagiosgraph-apache.conf
# /etc/init.d/httpd restart
# /etc/init.d/nagios restart
5,
http://10.1.1.8/nagiosgraph/cgi-bin/showconfig.cgi --用此页面查看信息
# vim /usr/local/nagios/etc/objects/templates.cfg --加上下面的模版
define service {
name nagiosgraph
action_url /nagiosgraph/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$
register 0
}
6,
# vim /usr/local/nagios/etc/objects/localhost.cfg --在你所有的要加图形的监控主机里的服务的use后加上nagiosgraph模版,如下
define service{
use local-service,nagiosgraph
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
7,
# /etc/init.d/nagios restart
最后到你的http://10.1.1.8/nagios/下去查看,会发现只要加了nagiosgraph模版的被监控服务会多了一个图标,按图标就会产生图
=============================================================================
nagios图表插件二:
pnp4nagios
第一步:目前版本都是最新版,我这里使用的是源码版(rpm版也可以,课后有兴趣去尝试一下)
# rpm -qa |grep pnp4
pnp4nagios-0.6.25-1.el7.x86_64
# rpm -e --nodeps pnp4nagios-0.6.25-1.el7.x86_64
warning: /etc/httpd/conf.d/pnp4nagios.conf saved as /etc/httpd/conf.d/pnp4nagios.conf.rpmsave
第二步:解压源码版pnp4nagios(软件包我共享在笔记目录/program/nagios_soft/下)
# tar xf pnp4nagios-0.6.25.tar.gz -C /usr/src/
# cd /usr/src/pnp4nagios-head/
# ./configure --直接configure,统计信息如下
General Options:
------------------------- -------------------
Nagios user/group: nagios nagios
Install directory: /usr/local/pnp4nagios
HTML Dir: /usr/local/pnp4nagios/share
Config Dir: /usr/local/pnp4nagios/etc
Location of rrdtool binary: /usr/bin/rrdtool Version 1.4.8
RRDs Perl Modules: FOUND (Version 1.4008)
RRD Files stored in: /usr/local/pnp4nagios/var/perfdata
process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool
Web Interface Options:
------------------------- -------------------
HTML URL: http://localhost/pnp4nagios
Apache Config File: /etc/httpd/conf.d/pnp4nagios.conf
# make all
# make install
# make install-webconf --安装/etc/httpd/conf.d/pnp4nagios.conf文件
# make install-config --安装了一些配置文件模版到/usr/local/pnp4nagios/etc/目录下
# make install-init --安装BULK Mode with NPCD需要的服务脚本
第三步:配置nagios主配置文件
# vim /etc/nagios/nagios.cfg
process_performance_data=1 --找到这行,把0改为1;并在此文件最后的空白地方,复制粘贴下面的一段
# service performance data
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
#
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
第四步:定义命令,在commands.cfg子配置文件里最后空白地方复制粘贴下面的一段
# vim /etc/nagios/objects/commands.cfg
define command{
command_name process-service-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
define command{
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
第五步:启动npcd(我们现在使用的是bulk模式和npcd,一共五种模式,具体参考官档说明)
# systemctl start npcd
# chkconfig npcd on
第六步:定义模版,在templates.cfg子配置文件里最后空白地方复制粘贴下面的一段
# vim /etc/nagios/objects/templates.cfg
define host {
name hosts-pnp
register 0
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_
}
define service {
name service-pnp
register 0
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
}
第七步:apache的子配置文件修改(因为这个源码版对应的语法为apache2.2,而我们centos7.3上用的是apache2.4,所以需要改一下;还有就是我们的nagios使用的是rpm版,所以验证文件路径也改一下)
# vim /etc/httpd/conf.d/pnp4nagios.conf
Require all granted --把Order allow,deny\nAllow from all这两行删除,换成这句
AuthUserFile /etc/nagios/passwd --验证文件路径也改成这个
# systemctl restart httpd
# systemctl enable httpd
第八步:把所有需要加图表功能的hosts和services加上图表需要的templates(hosts-pnp和service-php)
# vim /etc/nagios/objects/localhost.cfg
# vim /etc/nagios/objects/10.1.1.3.cfg --这两个配置里的hosts和services都可以加,效果如下示例:
define host{
use linux-server,hosts-pnp --如这里加上hosts-pnp模版
host_name localhost
alias localhost
address 127.0.0.1
}
define service{
use local-service,service-pnp --如这里加上service-pnp模版
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
# nagios -v /etc/nagios/nagios.cfg
# systemctl restart nagios
第九步:使用firefox访问测试
访问后,加了图表模版的hosts或services会有一个明显的图表图标,点进去,第一次会提示删除下面文件,删除后再点进去就ok了
# rm -rf /usr/local/pnp4nagios/share/install.php