Cacti监控批量加脚本,批量服务器程序监控

近日集团游戏上线,隔天开风流洒脱组性格很顽强在荆棘满途或巨大压力面前不屈,招致线上服务器瞬间爆增,加之服务端不常会core,core后又要求重启服务端程序。初始几台服务器的时候仍然是能够时一时上服务器上看一下主次是还是不是运维平常,是或不是有core文件,但到新兴服务器数量超越50台的时候,鲜明就忙不过来了,人也疲乏。

因此Zabbix批量监察和控制 web
url,脚本借鉴其余博友的,测验完全ok。自定义的key须求风流洒脱台服务器安顿,那边是献身zabbix_server端。

cacti监察和控制批量加,省时省力又便利。不精通干运行的小家伙们,有木有加监察和控制加到手抽筋,反正自个儿是资历过了。

基于百度linux批量管理阅历,大篇关于dsh批量处理的贴子呈现出来。博士机勃勃翻,果然好用。于是登时开端布置,经dsh和shell结合,完全减轻地点提及的几个难点,相当的棒。增减服务器监控也格外有益于,只需求在ip.txt里把服务器的ip写上或删除就能够,当然前提是把密钥对配置好。

监察脚本如下:

此地给大家大饱眼福七个cacti监控批量抬高的剧本。

#!/bin/bash
array=(`cat /usr/local/dsh/etc/ip.txt`)
array_nginx=(`cat /usr/local/dsh/etc/ip.txt`)
e_mail=”25497724133@qq.com”
date=`date  +%Y/%m/%d-%H:%M`
function check_nginx(){
j=0
while [ $i -lt  ${#array_nginx[@]} ];do
 nginx_pid=(`dsh -r ssh -m ${array_nginx[$j]} —  ps aux | grep
nginx | grep -v grep`)
 if [ ${#Cacti监控批量加脚本,批量服务器程序监控。nginx_pid[@]} -lt 1 ]; then
    message=”${array_nginx[$j]}无nginx进程 $date”
    echo $message
    `dsh -r ssh -m ${array_nginx[$j]}
/usr/local/nginx/sbin/nginx`
 fi
j=$((j+1))
done
}
function check_user(){
x=0
while [ $x -lt  ${#array[@]} ];do
 user_pid=(`dsh -r ssh -m ${array[$x]} —  ps aux | grep /user |
grep -v grep`)
 if [ ${#user_pid[@]} -lt 1 ]; then
 message=”${array[$i]}无user进程 $date”
 userd=`dsh -r ssh -m ${array[$x]} — /etc/init.d/user restart`
 echo -e “${message},\n${userd}”
 echo -e “${message},\n${userd}”|mail -s “${array[$i]}notuser”
${e_mail}
 fi
 x=$((x+1))
done
}
function check_core(){
i=0
while [ $i -lt  ${#array[@]} ];do
file=(`dsh -r ssh -m ${array[$i]} — find /home/king_3/exe/ -mmin -5
-name ‘core*’`)
if [ ${#file[@]} -gt 0 ]; then
host=${array[$i]}
userd=`dsh -r ssh -m ${host} — /etc/init.d/user restart`
title=”`echo ${host}`core”
message=”`echo ${host}` 生成core文件, 文件名路线: ${file[$i]}”
echo -e “${message}.\n${userd}” | mail -s $title $e_mail
echo ${host} ${file[$i]} $date
fi
i=$((i+1))
done
}
check_nginx
check_user
check_core

# cat web_site_code_status.sh
#!/bin/bash
# function:monitor tcp connect status from zabbix
 
source /etc/bashrc >/dev/null 2>&1
source /etc/profile  >/dev/null 2>&1
#/usr/bin/curl -o /dev/null -s -w %{http_code}
 
web_site_discovery () {
WEB_SITE=($(cat 
/usr/local/zabbix/share/zabbix/alertscripts/WEB.txt|grep -v “^#”))
        printf ‘{\n’
        printf ‘\t”data”:[\n’
for((i=0;i<${#WEB_SITE[@]};++i))
{
num=$(echo $((${#WEB_SITE[@]}-1)))
        if [ “$i” != ${num} ];
                then
        printf “\t\t{ \n”
        printf
“\t\t\t\”{#SITENAME}\”:\”${WEB_SITE[$i]}\”},\n”
                else
                        printf  “\t\t{ \n”
                        printf 
“\t\t\t\”{#SITENAME}\”:\”${WEB_SITE[$num]}\”}]}\n”
        fi
}
}
 
web_site_code () {
/usr/bin/curl -o /dev/null -s -w %{http_code}
}
 
case “$1” in
web_site_discovery)
web_site_discovery
;;
web_site_code)
web_site_code $2
;;
*)
 
echo “Usage:$0 {web_site_discovery|web_site_code [URL]}”
;;
esac

功能有:自动抬高设备,自动生成模板图像,自动生成远程抓取的数量图像,自动增添到相应的组。

 

zabbix_agentd.conf文件增多如下2行:

cacti本人提供了多少个科学的php脚本,只要我们成立的调用它,就会到位增加批量工作。

图片 1

cat /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=web.site.discovery,/usr/local/zabbix/share/zabbix/alertscripts/web_site_code_status.sh
web_site_discovery
UserParameter=web.site.code[*],/usr/local/zabbix/share/zabbix/alertscripts/web_site_code_status.sh
web_site_code $1

风野趣的同桌,商量一下啊,照旧省不菲小时的。

本子调用的web url文件,竖列写:

剧本内容如下:

cat /usr/local/zabbix/share/zabbix/alertscripts/WEB.txt
www.baidu.com
www.linuxidc.com

#!/bin/bash  #by 崔元荣  #QQ:295749093  #cacti批量加监控   #读取IP列表  host_ips=`cat ips.txt`  for host_ip in $host_ips  do          #添加cacti设备          php add_device.php --description="$host_ip" --ip="$host_ip" --template=3 --version=2 --community="public"           #读取设备ID          host_ids=`php add_graphs.php --list-hosts | grep $host_ip | awk -F " " '{print $1}'`           #创建模板图像          php add_graphs.php --host-id="$host_ids" --graph-type=cg --graph-template-id=4          php add_graphs.php --host-id="$host_ids" --graph-type=cg --graph-template-id=11          php add_graphs.php --host-id="$host_ids" --graph-type=cg --graph-template-id=13           #创建网卡数据图像                  php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=2 --snmp-query-id=1 --snmp-query-type-id=16 --snmp-field=ifDescr --snmp-value="eth0  "          php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=2 --snmp-query-id=1 --snmp-query-type-id=16 --snmp-field=ifDescr --snmp-value="eth1  "           #创建分区数据图像          php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-val  ue="/"         php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-val  ue="/data"         php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-val  ue="/usr/local"         php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-val  ue="Memory Buffers"         php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-val  ue="Real Memory"         php add_graphs.php --host-id="$host_ids" --graph-type=ds  --graph-template-id=26 --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-val  ue="Swap Space"          #添加设备到相应的组          php add_tree.php --host-id="$host_ids" --type=node --node-type=host --tree-id=2  done 

重启zabbix_agentd服务:

看一下批量增多的名堂:

/etc/init.d/zabbix_agentd restart

加设备:

通过zabbix_get去拿到自定义的key:

图片 2

/usr/local/zabbix/bin/zabbix_get -p 10050 -s 10.10.254.25 -k
web.site.discovery
/usr/local/zabbix/bin/zabbix_get -p 10050 -s 10.10.254.25  -k
web.site.code[www.baidu.com]

浮动数据:

网站地图xml地图