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页面的事了。
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页面的事了。
- Nagios的后期维护
- 后期维护的一点心得
- 网站的运营与后期维护
- 项目管理--系统后期维护的一点心得
- 一个好的命名规范可以给团队或后期维护带来很大的便利
- 效率重要还是后期维护重要?
- 软件项目后期维护几点心得
- Android布局方法-(便于后期维护)
- ADO.NET 连接数据库的另一种方法(通过配置文件和基类转化,适用于后期维护)
- 数码后期的重要
- 后期的设计变更
- 后期的预告
- 网站后期的关键词保护
- 后期需要总结的内容
- unity3d后期效果的重影
- vs后期生成的文件
- 天文摄影的后期处理
- 网站优化的后期工作
- 0809
- 0810
- Linux下ssh命令的用法及用途
- Django功能模块的单独使用
- Django的请求处理过程分析
- Nagios的后期维护
- 学习总结(2012-8-31)
- Django框架的URL分发机制详解
- Python的正则表达式详解
- Python中的else的特殊用法
- Python的模块与名空间
- Django模板之自定义tag和filter
- Django框架中manage.py runserver命令过程分析
- win32 GDI的那点事(二)