自动发现规则监控项
脚本,获取监控项取值列表对应的json格式
vim /etc/zabbix/scripts/ceph_proc_discovery.sh
#!/bin/bash
CEPH_PROC_NAMES=($(ps -ef |awk '/\/usr\/bin\/ceph.*|\/usr\/bin\/tcmu-runner/{print $8}' |awk -F "/" '{print $NF}' |sort -u))
CEPH_PROC_NAME=($(ps -ef |awk '/\/usr\/bin\/rbd-target.*/{print $NF}' |awk -F "/" '{print $NF}' |sort -u))
CEPH_PROC_NAMES+=(${CEPH_PROC_NAME[@]})
#echo ${CEPH_PROC_NAMES[@]}
CEPH_PROC_discovery () {
printf '{\n'
printf '\t"data": [\n'
for((i=0;i<${#CEPH_PROC_NAMES[@]};i++));do
num=$((${#CEPH_PROC_NAMES[@]}-1))
#echo $num
if [ $i -ne $num ];then
printf "\t\t{\"{#CEPHNAME}\": \"${CEPH_PROC_NAMES[$i]}\"},\n"
else
printf "\t\t{\"{#CEPHNAME}\": \"${CEPH_PROC_NAMES[$i]}\"}\n"
#echo ${CEPH_PROC_NAMES[$i]}
fi
done
printf '\n]}'
}
CEPH_PROC_discovery
创建自定义监控项
vim /etc/zabbix/zabbix_agentd.d/userparameter_ceph.conf
UserParameter=ceph.proc.discovery,sh /etc/zabbix/scripts/ceph_proc_discovery.sh
zabbix-server测试监控项
zabbix_get -s 172.17.32.5 -p 10050 -k "ceph.proc.discovery"
{
"data": [
{
"{#CEPHNAME}": "ceph-osd"},
{
"{#CEPHNAME}": "tcmu-runner"},
{
"{#CEPHNAME}": "rbd-target-api"},
{
"{#CEPHNAME}": "rbd-target-gw"}
]}
zabbix_get -s 172.17.32.2 -p 10050 -k "ceph.proc.discovery"
{
"data": [
{
"{#CEPHNAME}": "ceph-mds"},
{
"{#CEPHNAME}": "ceph-mgr"},
{
"{#CEPHNAME}": "ceph-mon"},
{
"{#CEPHNAME}": "ceph-osd"},
{
"{#CEPHNAME}": "tcmu-runner"},
{
"{#CEPHNAME}": "rbd-target-api"},
{
"{#CEPHNAME}": "rbd-target-gw"}
]}
zabbix_get -s 172.17.32.12 -p 10050 -k "ceph.proc.discovery"
{
"data": [
{
"{#CEPHNAME}": "ceph-mgr"},
{
"{#CEPHNAME}": "ceph-mon"},
{
"{#CEPHNAME}": "ceph-osd"},
{
"{#CEPHNAME}": "tcmu-runner"},
{
"{#CEPHNAME}": "rbd-target-api"},
{
"{#CEPHNAME}": "rbd-target-gw"}
]}
zabbix_get -s 172.17.32.9 -p 10050 -k "ceph.proc.discovery"
{
"data": [
{
"{#CEPHNAME}": "ceph-mds"},
{
"{#CEPHNAME}": "ceph-mgr"},
{
"{#CEPHNAME}": "ceph-mon"},
{
"{#CEPHNAME}": "tcmu-runner"}
]}
模板
应用集
自动发现规则
监控项原型
触发器原型
最后主机关联模板即可