一、nagios 安全设置
nsclient++ 版本是nsclient_201.zip
1、在windows机器上更改注册表
HKEY_LOCAL_MACHINE\SOFTWARE\NSClient\Parms
密码为1234
 
2、使windows机器生效
创建文件reflash.bat  内容为
@echo off
taskkill /im explorer.exe /f
ping -n 2 127.0.0.1 > nul
start c:\windows\explorer.exe
保存尔后双击该文件
 
3、从新启动nsclient++服务
在cmd下输入services.msc找到Nagios Aagent停止并启动。
 
4、在nagios的Linux 机器上做更改
vi /usr/local/nagios/etc/objects/commands.cfg
将原来的
# 'check_nt' command definition
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v $ARG1$ $ARG2$
        }
更改为
# 'check_nt' command definition
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -s 1234 -v $ARG1$ $ARG2$
        }
以上就设置完毕。
就是没有查到相关资料如何在windows客户端,设置只允许nagios那台服务器的IP连接,目前只能通过防火墙实现。
 
二、插件编写
nagios 实现对常用指标进行监控之外,在进行更加及时更加细致监控某一服务或者是某一单独进程状态的监控,无论需求如何都需要我们自己编写一个插件。
      1、了解nagios对编写插件的要求,脚本输出原则和状态代码原则。
     
     脚本输出原则  (如果是shell脚本,就是echo 输出的信息,不知道与“|”有什么直接联系?)
     
       通过这样的一个符号“|”就可以很简单的把我们要显示出来的数据分离出来交给nagios。
      
       状态代码原则 (如果使用shell脚本,就是exit 退出状态代码)
       OK —退出代码 0—表示服务正常地工作。
      
       WARNING —退出代码 1—表示服务处于警告状态。
      
       CRITICAL —退出代码 2—表示服务处于危险状态
      
       UNKNOWN —退出代码 3—表示服务处于未知状态
      
      2、需求:监控vsftpd 进程僵死后,nagios报警
     
      3、编写shell脚本如下内容:
     
      4、 vim /usr/local/nagios/libexec/check_procs_top
#!/bin/bash
vsftpdpid=`ps -ef |grep vsftp |grep -v grep  |awk '/sbin\/vsftpd/ { print $2}'`
#echo "${vsftpdpid}"
top  -b -n 1 -c -p "${vsftpdpid}" > /tmp/toptmp.txt
procsstate=`awk '/vsftpd.conf/ { print $8 }' /tmp/toptmp.txt`
#echo "${procsstate}"
if [ "${procsstate}" = "Z" ]
then
        echo "vsftpd procs state Z die"
        exit 2
elif [ "${procsstate}" = "S" ]
then
        echo "vsftpd procs state S sleep "
        exit 0
elif [ "${procsstate}" = "R" ]
then
         echo "vsftpd procs state R run"
         exit 0
elif [ "${procsstate}"  = "T" ]
then
        echo "vsftpd procs state  T trace"
        exit 0
elif [ "${procsstate}" = "D" ]
then
        echo "vsftpd procs state D"
        exit 0
else
        echo "vsftpd procs state unknow"
        exit 3
fi
      5、vim /usr/local/nagios/etc/objects/commands.cfg 加入内容nagios 安全设置、插件编写_第1张图片
      
      6、vim /usr/local/nagios/etc/objects/localhost.cfg 加入内容
nagios 安全设置、插件编写_第2张图片
      
      
      7、重启服务就可以了。
      
  三、监控单个进程
[root@localhost etc]# vim nrpe.cfg
nagios 安全设置、插件编写_第3张图片
 
意思是说:监控/usr/sbin/vsftpd进程,如果没有一条包含这个进程,nagios 就会报警
 
 
以上观点不知是否有错误,还请各位网友多多指教。