監(jiān)控java進(jìn)程腳本
- 腳本部分
ProcessName
表示需要監(jiān)控的進(jìn)程名字
mkdir -pv /server/scripts
vi /server/scripts/check_java_process.sh
#!/bin/bash
ProcessName="$1"
ps -ef |grep -w "[/]usr/local/jdk/bin/java"|awk -F"[ ]+" '{print $NF}'|grep -qw $ProcessName
if [ $? -eq 0 ];then
echo 0
else
echo 1
fi
- 配置部分
chmod 655 /server/scripts/check_java_process.sh
vi /etc/zabbix/zabbix_agentd.d/UserDefined.conf
UserParameter=java.process[*],bash /server/scripts/check_java_process.sh "$1"
監(jiān)控內(nèi)存使用率的腳本
- 腳本部分
vi /server/scripts/base_memory.sh
#!/bin/bash
free |awk 'NR==2{print 100-($2-$3)/$2*100}'
- 配置部分
echo "UserParameter=base_memory,bash /server/scripts/base_memory.sh" >> /etc/zabbix/zabbix_agentd.d/UserDefined.conf
chmod +x /server/scripts/*
systemctl restart zabbix-agent.service
前端頁(yè)面可用性探測(cè)腳本
- 腳本部分
-
DomainName
表示域名瘩蚪;PortNum
表示端口號(hào)
mkdir -pv /server/scripts
vi /server/scripts/check_front_status.sh
#!/bin/bash
DomainName=$1
PortNum=$2
StatusNum=$(curl http://127.0.0.1:${PortNum:-80} -H"Host:${DomainName}" -Is|awk 'NR==1{print $2}')
if [ -z "$StatusNum" ]
then
echo 1
elif [ $StatusNum -eq 200 ]
then
echo 0
else
echo 1
fi
- 配置部分
vi /etc/zabbix/zabbix_agentd.d/UserDefined.conf
UserParameter=front.status[*],bash /server/scripts/check_front_status.sh "$1" "$2"
監(jiān)控進(jìn)程腳本
- 腳本部分
PidFileDir
表示需要監(jiān)控的進(jìn)程的pid文件位置
vi /server/scripts/monitor_process_pid.sh
#!/bin/bash
PidFileDir=$1
if [ -z $PidFileDir ]
then
echo 1
exit 2
fi
PidNum=$(cat "$PidFileDir" 2>/dev/null)
ps -ef |grep -q $PidNum 2>/dev/null
if [ $? -eq 0 ]
then
echo 0
else
echo 1
fi
- 命令部分
chmod +x /server/scripts/*
vi /etc/zabbix/zabbix_agentd.d/UserDefined.conf
UserParameter=process.pid[],bash /server/scripts/monitor_process_pid.sh "$1"
配置低級(jí)自動(dòng)發(fā)現(xiàn)json原數(shù)據(jù)的腳本
低級(jí)自動(dòng)發(fā)現(xiàn)需要自定義腳本证鸥,具體zabbix Low discover教程請(qǐng)自行科普。
- 腳本部分
vi /server/scripts/base_discovery_disk.sh
#!/bin/bash
DiskName=(`df|awk 'NR>1{print $1}'`)
DiskCount=${#DiskName[*]}
a=`echo $((DiskCount-2))`
b=`echo $((DiskCount-1))`
for ((i=0;i<$DiskCount;i++))
do
if [ $i -eq 0 ]
then
echo '{"data":['
fi
if [ $i -eq $b ]
then
echo -n '{"{#NAME}":"'
echo -n "${DiskName[$i]##*/}"
echo '"}]}'
elif [ $i -le $DiskCount ]
then
echo -n '{"{#NAME}":"'
echo -n "${DiskName[$i]##*/}"
echo '"},'
fi
done
- 配置部分
echo "UserParameter=base_disk,bash /server/scripts/base_discovery_disk.sh" >> /etc/zabbix/zabbix_agentd.d/UserDefined.conf
systemctl restart zabbix-agent.service
磁盤使用率取值
這個(gè)腳本是配合上邊的Low discover功能實(shí)現(xiàn)的揩页,單獨(dú)用來(lái)監(jiān)控需要自己測(cè)試猖败。
- 腳本部分
vi /server/scripts/monitor_base_disk.sh
#!/bin/bash
DiskName=$1
df |grep ${DiskName} 2>/dev/null |awk -va=${DiskName} '/a/{print $5 }' 2>/dev/null |grep -Eo "[0-9]+" 2>/dev/null
- 配置部分
echo 'UserParameter=disk.use[*],bash /server/scripts/monitor_base_disk.sh "$1"' >> /etc/zabbix/zabbix_agentd.d/UserDefined.conf
chmod +x /server/scripts/*