zabbix自动发现监控脚本

自动发现端口列表脚本

# -*- coding: utf-8 -*-
import os
import json 
data={}
tcp_list=[]
port_list=[]
command=os.popen("ss -4tln | awk -F '[ :]+' 'NR>=2{print $5}'")
for port in command:
   port_list.append(port.strip())
for port in port_list:
   port_dict={}
   port_dict["{#TCP_PORT}"]=port 
   tcp_list.append (port_dict)
data["data"]=tcp_list 
js1=json.dumps(data,sort_keys=True,indent=4)

print (js1)
#!/bin/bash
#----将需要添加的服务器ip配置到列表
#----只需要运行此脚本即可  -
#-和其他服务器需要免密登陆
#-------
shdir=$(cd `dirname $0`; pwd)
echo $shdir
server_ip=(
    172.16.20.118
	)
zabbix_agent_dir=/usr/local/zabbix
#agent端使用端口号默认22
port_romote=22
agent_start_user=root
#agent端运行的脚本
cunstom_sh=$shdir/conf/service.sh
key_sh=$shdir/conf/service_check.sh
#处理agent配置文件的脚本
remote_sh=$shdir/conf/config.sh
#自定义配置选项的配置文件
cunstom_conf=$shdir/conf/userparameter_service.conf
stop_agent(){
 
   for ip in ${server_ip[*]};
      do
      ssh -p${port_romote}  root@$ip -C "systemctl stop zabbix"
	  done
}
scp_conf(){
  for ip in ${server_ip[*]};
      do
	  scp -r -P${port_romote} $key_sh root@$ip:$zabbix_agent_dir/conf/zabbix_agentd
      scp -r -P${port_romote} $cunstom_sh root@$ip:$zabbix_agent_dir/conf/zabbix_agentd
	  scp -r -P${port_romote} $cunstom_conf root@$ip:$zabbix_agent_dir/conf/zabbix_agentd
	  scp -r -P${port_romote} $remote_sh root@$ip:$zabbix_agent_dir/conf
	  ssh -p${port_romote} root@$ip -C "source $zabbix_agent_dir/conf/config.sh $agent_start_user $zabbix_agent_dir"
	  done
}
star_agent(){
for ip in ${server_ip[*]};
      do
     ssh -p${port_romote} root@$ip -C 'systemctl restart zabbix'
     done
}
#stop_agent
scp_conf
star_agent








#!/bin/bash
shdir=$(cd `dirname $0`; pwd)
temfile=/tmp/service.txt
#echo $shdir
service_name=(
    *
	)
zabbix_json(){
      length1=0
      length1=`cat /tmp/service.txt|wc -l`
	 # echo $length1
	  i=0
      printf "{\n"
      printf '\t'"\"data\":["
    while read line     
      do
	    i=$[i+1]
		printf '\n\t\t{'
		printf "\"{#SERVICE}\":\"$line\"}"
         if [ $i -lt $[$length1] ];then
          printf ','  
        fi
		
    done <$temfile
	    printf "\n\t\t]\n"
  printf "}\n"
}
check(){
      length=${#service_name[@]}
	  >/tmp/service.txt
    for ((i=0;i<$length;i++))
      do
	    #echo $i
	    systemctl list-units --type=service --no-pager | grep ".service"|grep ${service_name[$i]}.service>/dev/null
		if [ $? -eq 0 ];then
		  echo ${service_name[$i]}>>$temfile
		fi
        done
}
check
zabbix_json
#rm -rf $temfile



#!/bin/bash
#----将需要添加的服务器ip配置到列表
#----只需要运行此脚本即可  -
#-和其他服务器需要免密登陆
#-------
shdir=$(cd `dirname $0`; pwd)
check(){
     servicename=$1
	 parameter=$2
	 if [ $parameter == "start" ];then
	   systemctl list-unit-files --type=service --state=enabled --no-pager | grep ".service"|grep $servicename.service>/dev/null
	   if [ $? -eq 0 ];then
	     echo "${servicename}-startup:auto"
	   else
	      echo "${servicename}-startup:no"
	   fi
	  else
	   systemctl list-unit-files --type=service --state=running --no-pager | grep ".service"|grep $servicename.service/dev/null
	   if [ $? -eq 0 ];then
	     echo "${servicename}-running"
	   else
	      echo "${servicename}-no running"
	   fi
	 fi
}
check $1 $2 
#coding:utf-8
try:
    import json
except:
    import simplejson as json

import commands

(status, output) = commands.getstatusoutput('''cat /proc/diskstats |awk '{print $3}'|egrep 'sd|vd|hd'|egrep -v '[0-9]'|sort -u''')
if output:
        outputs = output.split('\n')
        disks = []
        for disk in  outputs:
            disks += [{'{#DISKONE}': disk}]
        print json.dumps({'data':disks},sort_keys=True,indent=4)
else:
        print 'discovery error'







#!/bin/sh
#   8       0 sda 76880282531 8117316 937263519846 4237854729 62989000438 35668103347 777694636224 1190396494 3 2895102137 899093508
while getopts "d:o:" opt
do
        case $opt in
                d ) disk=$OPTARG;;
                o ) option=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${disk}" ] || [ ! "${option}" ];then
        echo "parameter is null"        
        exit 1
fi

if [[ ${option} == "read" ]];then
    cat /proc/diskstats |grep "${disk} "|awk '{print $6}'
elif [[ ${option} == "write" ]];then
    cat /proc/diskstats |grep "${disk} "|awk '{print $10}'
elif [[ ${option} == "readops" ]];then
    cat /proc/diskstats |grep "${disk} "|awk '{print $4}'
elif [[ ${option} == "writeops" ]];then
        cat /proc/diskstats |grep "${disk} "|awk '{print $8}'
elif [[ ${option} == "readtime" ]];then
        cat /proc/diskstats |grep "${disk} "|awk '{print $7}'
elif [[ ${option} == "writetime" ]];then
        cat /proc/diskstats |grep "${disk} "|awk '{print $11}'
fi





#!/bin/bash
shdir=$(cd `dirname $0`; pwd)
agent_start_user=$1
zabbix_agent_dir=$2
echo $zabbix_agent_dir
cat $zabbix_agent_dir/conf/zabbix_agentd.conf | grep "^Include=/usr/local/zabbix/conf/zabbix_agentd/*.conf" > /dev/null
		if [ $? -ne 0 ]
		 then
		    cat $zabbix_agent_dir/conf/zabbix_agentd.conf | grep "^Include=.*" > /dev/null
				if [ $? -eq 0 ]
		         then
				  
				  sed -i '/^Include=.*/d' $zabbix_agent_dir/conf/zabbix_agentd.conf
				  
			      echo "Include= $zabbix_agent_dir/conf/zabbix_agentd/*.conf">> $zabbix_agent_dir/conf/zabbix_agentd.conf
				  else 
				  echo "Include= $zabbix_agent_dir/conf/zabbix_agentd/*.conf">> $zabbix_agent_dir/conf/zabbix_agentd.conf
		         fi
fi
chown -R $agent_start_user:$agent_start_user $zabbix_agent_dir

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值