远程修改Nrpe的脚本
前言:作为一个运维人员,经常修改监控是无可避免的,改少量机器还好说,如果量特别多的话,那就不容易了。如老大一句话,修改所有机器的check_disk参数,那就傻了。我今天就遇到了,开发说要修改所有业务系统的check_swap,自己写了个脚本,可以供大家参考下。
两个文件: www.zhishiwu.com
1、hostlist 这个是我需要修改监控参数的主机文件;
2、editnrpe.sh 这个是我的脚本,执行脚本时,需要调用1文件;
3、scannrpe.sh 这个是我修改完之后,再扫描一下Nrpe的脚本文件;
下面的脚本实现如下功能,之前的Nrpe参数为:
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 80% -c 70%
修改后的参数为:
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 75% -c 65%
脚本如下:
[only.liu@l-rtools1.ops.cn1 ~]$ cat editnrpe.sh
#!/bin/bash
#
# This script is auto edit Nrpe
# By Only.liu
swapfile="/usr/local/nagios/etc/nrpe.cfg"
for host in `cat hostlist`
do
ping -c 1 $host >> /dev/null 2>&1
if [ "$?" == 0 ]; then
echo "$host is alived!"
ssh $host "sudo sed -i -e '/check_swap/{s//-w 80/%//-w 75/%/;s/-c 70/%/-c 65/%/}' '$swapfile'"
if [ "$?" == 0 ]; then
echo "Swap is edited success!"
ssh $host "grep "check_swap" $swapfile"
fi
ssh $host "ps aux | grep nrpe | grep -v grep | awk '{ print /$2 }' | xargs sudo kill -HUP"
ssh $host "exit"
echo "Nrpe restart ok!"
fi
done
修改完之后,不放心,再扫描一下:
脚本如下: www.zhishiwu.com
[only.liu@l-rtools1.ops.cn1 ~]$ cat scannrpe.sh
#!/bin/bash
#
# This script is auto edit Nrpe
# By Only.liu
#hostlist=`cat hostlist`
swapfile="/usr/local/nagios/etc/nrpe.cfg"
for host in `cat hostlist`
do
ping -c 1 $host >> /dev/null 2>&1
if [ "$?" == 0 ]; then
echo "$host is alived!"
ssh $host "sudo sed -n '/check_swap/p' '$swapfile'"
fi
done