Nagios的后期维护

来源:互联网 发布:淘宝小号怎么购买 编辑:程序博客网 时间:2024/04/30 20:41
总结如下:
1.如何更快速的增加主机?
2.如何调整合适的阀值?
3.如何保证nagios稳定的运行?
4.定期查看日志、pnp图,了解监控情况。
 一、首先说下如何更快速的增加主机?
a.我们都知道Nagios的配置文件都在/usr/local/nagios/etc/下,可以在其新建个servers目录来存在后续新增的主机配置文件,而不用放在默认的object里,也不更改其默认的配置文件,这样在以后排错就有针对性。b.再一个就是如何快速的增加主机,也就是批量增加,利用脚本可以帮你实现。以下内容为朋友(xiaojun.wang)提供:
批量脚本的思路是这样的:需要东西:一个批量脚本、一个Linux模版、一个Windows模版、一个IP对应主机名的列表文件。最终实现:每个主机以及对应的服务为单独的配置文件,文件名为主机名-ip.cfg的格式,方便快速的明白此配置文件对应的主机。这样也方便了出了问题然后排错,可以快速定位。
可以这么设计:
servers/Create.sh                        #批量脚本
servers/Linux.template                   #Linux主机模版
servers/Windows.template                 #Windows主机模版
servers/list.txt                         #IP对应主机名的列表文件
1.批量脚本:
vim servers/Create.sh
 
#!/bin/bash 
 #author: xiaojun.wang 
 usage () { 
        echo -en "USAGE: $0 [host list] or $0 [template] [host list]\nFor example: $0 host.template host.list(Field : [IP] [HOST NAME])\n" 1>&2 
        exit 1 

 
if [ $# -gt 2 ];then 
        usage 
        exit 1 
fi 
 
case "$#" in 
        2) 
                template=$1 
                host_list=$2 
        ;; 
        1) 
                template='host.template' 
                host_list=$1 
        ;; 
        0) 
        #       template='host.template' 
        #        host_list='host.list' 
                usage 
        ;; 
esac 
 
if [ ! -f "${template}" ];then 
        echo "template : ${template} not exist!" 1>&2 
        exit 1 
fi 
 
if [ ! -f "${host_list}" ];then 
        echo "host list : ${host_list} not exist!" 1>&2 
        exit 1 
fi 
 
cat ${host_list}|\ 
while read ip hostname 
do 
        echo "${ip}"|grep -oP '^\d{1,3}(\.\d{1,3}){3}$' >/dev/null 2>&1 || Field='not ip' 
        if [ "${Field}" = 'not ip' ];then 
                echo "${ip} not ip!" 1>&2 
                exit 1 
        fi 
        host_cfg="${hostname}-${ip}.cfg" 
        cp ${template} ${host_cfg} 
        sed -i "s/HOST_NAME/${hostname}/g;s/ADDRESS/${ip}/g" ${host_cfg} 
done 
 
2.Linux主机模版:(自己任意即可,写好要监控的项目)
 
define host{                                           #主机配置 
        use linux-server,hosts-pnp  
        host_name HOST_NAME                            #这个就是到时脚本写入的主机名 
        alias HOST_NAME; A longer name for the server 
        address ADDRESS ; IP address of the server     #脚本要写入的ip 

define service{ 
        use generic-service,services-pnp 
        host_name HOST_NAME                            #同上 
        service_description CPU Load 
        check_command check_nrpe!check_load 

define service{ 
        use generic-service,services-pnp 
        host_name HOST_NAME 
        service_description Current Users 
        check_command check_nrpe!check_users 

define service{ 
        use generic-service,services-pnp 
        host_name HOST_NAME 
        service_description Disk Free Space / 
        check_command check_nrpe!check_root 

define service{ 
        use generic-service,services-pnp 
        host_name HOST_NAME 
        service_description Total Processes 
        check_command check_nrpe!check_total_procs 

define service{ 
        use generic-service,services-pnp 
        host_name HOST_NAME 
        service_description Zombie Processes 
        check_command check_nrpe!check_zombie_procs 

define service{ 
        use             generic-service,services-pnp 
        host_name HOST_NAME 
        service_description     SSH 
        check_command   check_ssh 
        register                0 
        } 
        
3.Windows主机模块也是一样的,这里就略了。
 4.列表文件,格式如下:
192.168.1.1         Http
192.168.1.2         Mail
 使用格式:./Create.sh linux.template list.txt                   #这样就增加了两个主机以及服务了。
这样以后批量就很方便了。
 二、如何调整合适的阀值?
我们都知道,报警是根据设定的阀值来的。
例如:进程数,默认警告的阀值为150,严重的阀值为200,假如目标主机为Mail,进程数长时间保持在200以上,这时候就需要调整nrpe的阀值了。
那么我们如何来判定多少的阀值合适呢?
其实可以写个简单的命令来定时收集这些信息,例如:每5分钟收集一次进程数。
crontab -e
*/5 * *** ps -ef |wc -l >> /total_procs.txt这样就可以来分析目标主机的进程数在一个什么范围比较合适了。
 
还有一个方便就是检测失败次数的调整,有的时候可能因为网络短时间的延迟,这样如果失败检测次数过少,就会有大量的报警邮件,这样以后报警邮件多了,人的警惕意识也会有所下降,所以给失败检测次数一个合理的值也是非常有必要的。这里其实说的非常有限,只是告诉要有这个意识,nagios本身默认的东西很多是合适的,但更多的是需要调整的!
 
三、如何保证nagios稳定的运行?
其实这也是个老生常谈的问题,假如Nagios都宕机了,谁来报警?
所以必要的保证Naigos的安全也是很重要的。无非也就是关闭一些不必要的端口、不必要的服务,只提供Nagios必须的端口,这样很大程度的增强了安全性。还要经常检查其配置文件,以及log日志。
也可以写个简单的脚本来监控本机nagios进程:ps -ef |grep nagios |grep -v grep |wc -l 用个if语句来判断下是否为0,为0就发邮件通知即可。
这个其实也就是提醒要有这个意识!
 
四、定期查看日志、pnp图,了解监控情况下面呢,就是来说说nagios web页面的事了。
原创粉丝点击