1: nagios添加主机监控配置如下: define host{ use linux-server host_name 192.168.1.1 address 192.168.1.1 } 可以定义成一个文件,然后把配置文件加入到nagios.cfg里面,脚本如下: nagios安装 cat <<EOF >/usr/local/nagios/etc/objects/192.168.1.1.cfg define host{ use linux-server host_name 192.168.1.1 address 192.168.1.1 } EOF echo "cfg_file=/usr/local/nagios/etc/objects/192.168.1.1.cfg" >> /usr/local/nagios/etc/nagios.cfg 开源监控软件
2: nagios添加简单的监控,比如ping,监控端口等等无需nrpe的配置: define service{ use generic-service host_name 192.168.1.1 service_description Check Port 80 check_command check_tcp!80 } 也可以写成脚本自动添加到主机的配置中,个人习惯一个主机中的所有监控项目在一个配置文件里面,好check。 cat <<EOF >>/usr/local/nagios/etc/objects/192.168.1.1.cfg define service{ use generic-service host_name 192.168.1.1 service_description Check Port 80 check_command check_tcp!80 } EOF
3: nagios添加调用远程nrpe的配置,这个需要使用check_nrpe去调用,监控远程主机负载、磁盘情况等等。可以直接上脚本了,上面两个是举例,例子在脚本里面都有: cat <<EOF >>/usr/local/nagios/etc/objects/192.168.1.1.cfg nagios配置 define service{ use generic-service host_name 192.168.1.1 service_description Load Average check_command check_nrpe!check_load } EOF
4: 另外,nagios添加主机组的配置也是比较常见的,因为这个让人看监控情况看起来比较直观,也是直接上脚本了。比如你想定义一个web组,web组有两台主机分别是192.168.1.1和192.168.1.2,个人比较习惯一个组定义一个配置文件: cat <<EOF >/usr/local/nagios/etc/objects/web.cfg define hostgroup{ hostgroup_name web alias web members 192.168.1.1,192.168.1.2 } EOF echo "cfg_file=/usr/local/nagios/etc/objects/web.cfg" >>/usr/local/nagios/etc/nagios.cfg 监控软件
5: nagios添加联系人也是非常常见的,配置如下,这个一般需求没那么多,都是直接修改contact.cfg配置文件。先定义联系人组,再定义联系人,定义联系人的时候得写一下邮箱: define contactgroup{ contactgroup_name web alias web members web } define contact{ contact_name web use generic-contact alias web }
6: nagios定义时间顺便也说一下,这个我定义的不是很多,timeperiods.cfg,底下复制一个,想定义什么时间,可以自己定义一下:
define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 }
7: 当然nagios定义发送邮件的命令也是比较重要的,看一下command的定义(如果是自己写的脚本,第一参数是标题,第二个参数是内容,第三个参数是给谁发送邮件。当然,想传再多的参数都可以,随意传,自定义): nagios实施 define command{ command_name notify-host-by-email command_line $USER1$/email.sh "Host Alert: $HOSTNAME$ is $HOSTSTATE$" "[nagios]<br>Notification Type: $NOTIFICATIONTYPE$<br>Host: $HOSTNAME$<br>State: $HOSTSTATE$<br>Address: $HOSTADDRESS$<br>Info: $HOSTOUTPUT$<br><br>Date/Time: $LONGDATETIME$<br>" "$CONTACTEMAIL$" "$HOSTALIAS$" "Host Alert: $HOSTNAME$ is $HOSTSTATE$" }
8: nrpe的配置肯定也是要的,不然nagios运行起来不够漂亮,定义nrpe要两个地方,一个是安装nrpe(被监控端),需要配置两个:1: xxx.xxx.xxx.xxx改成nagios监控端的地址,当然,一直变的话,就比较难办了。2: check_load是以后nagios监控端要用check_nrpe去调用的,后面的程序要怎么调用由自己定义(自定义脚本监控就在这)。 allowed_hosts=xxx.xxx.xxx.xxx command[check_load]=/usr/local/nagios/libexec/check_load -w 15,15,15 -c 30,30,30 nagios培训 定义完nrpe被监控端只是个开始,后续还得增加nagios监控的配置。主要也是两个配置:1: check_nrpe命令的配置,只需要传一个参数,就是类似上面的check_load传给它就好了。2: 定义监控项目,只需要传个参数给check_nrpe就可以了。 define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ }
define service{ use generic-service host_name 192.168.1.1 service_description Load Average check_command check_nrpe!check_load }
9: 最后,送两个配置nagios经常用的命令,nagioscheck和nagiosreload,一个是检查nagios的配置(这个也可以:/etc/init.d/nagios configtest),一个是重载nagios配置: alias nagioscheck='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg' alias nagiosreload='/etc/init.d/nagios reload' nagioscheck一定要以下结果才标准 Total Warnings: 0 Total Errors: 0
想做Nagios, Zabbix,Cacti,iTop各种交流的,可以进入开源监控工具Nagios交流 QQ群号 :476809427 |