Zabbix 监控服务
熟悉了解一些 zabbix 基础项目监控,对zabbix 的配置监控整理。
zabbix_get 相关操作 ;获取 item 监控数据
1、zabbix_get 配置 基本格式:
基本格式: -s --host: 指定客户端主机名或者IP -p --port: 客户端端口,默认10050 -I --source-address: 指定源IP,写上zabbix server的ip地址即可,一般留空,服务器如果有多ip的时候,你指定一个。 -k --key: 你想获取的key
2、zabbix_get 获取客户端基础信息:
获取 CPU 负载; ./zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg15]" 0.270000 获取主机名; # ./zabbix_get -s 127.0.0.1 -p 10050 -I 127.0.0.1 -k "system.hostname" 10-9-4-20 获取连接数; zabbix_get -s 127.0.0.1 -k "portstat[8080,ESTAB]" 查看 端口 链接状态; zabbix_get -s 127.0.0.1 -k "mongodb_stats["127.0.0.1:2018,opcounters,command]"
3、配置 zabbix_agentd.conf 文件 获取 简单的检测端口连接数
linux agent.conf 配置添加: UserParameter=80port,netstat -aon | grep "80" |wc -l Windows agent.conf 配置添加: UserParameter=80port,netstat -aon | find "127.0.0.1:80" /c 检测相关服务的连接数 UserParameter=limitcount,PID=$(pgrep ems) && cat /proc/$PID/limits |grep files |awk '{print $4}' 调用相关监控脚本 格式 检测端口 执行脚本方式 UserParameter=zabbix_low_discovery[*],sh /usr/local/zabbix-agentd/shell/port_low_discovery.sh $1 检测 memcached 状态 UserParameter=memcached_stats[*],(echo "stats";sleep 0.1) | telnet 127.0.0.1 $1 | grep $2|awk {'print $NF'}
4、监控 keepalived Port 端口
检测 lvs keepalived VIP 1、zabbix-agent.conf 配置
UserParameter=kvip_low_discovery,sh /usr/local/zabbix-agentd/shell/get_vip.sh UserParameter=vip_check[*],ip add|grep $1|wc -l 2、zabbix/shell 目录脚本配置示例
cat get_vip.sh #!/bin/bash host_ip=`echo $(hostname -I)` vip=(`sed 's#[a-z].*##' /etc/keepalived/keepalived.conf|egrep "[0-9]*.[0-9]*.[0-9]*.[0-9]"|cut -d / -f 1|sed s/[[:space:]]//g`) max_index=$[${#vip[@]}-1] printf '{\n' printf '\t"data":[' if [ `cat /etc/keepalived/keepalived.conf|grep "MASTER"|wc -l` -eq 0 ];then printf '\n\t\t{' printf "\"{#KVIP}\":\"$host_ip\"}" else for key in ${!vip[@]} do printf '\n\t\t{' printf "\"{#KVIP}\":\"${vip[$key]}\"}" if [ $key -ne $max_index ];then printf "," fi done fi printf '\n\t]\n' printf '}\n'
5、 mongoDB 监控示例
检测mongoDB 状态 1、zabbix-agent.conf 配置添加
UserParameter=zabbix_low_discovery[*],sh /usr/local/zabbix-agentd/shell/port_low_discovery.sh $1 UserParameter=mongodb_stats[*], echo "db.serverStatus().$2"| /usr/local/mongodb/bin/mongo $1 |grep -w $3|awk -F [:,] '{print $$2}'
6、Redis 监控示例
1、zabbix-agentd.conf 配置添加 UserParameter=zabbix_low_discovery[*],sh /usr/local/zabbix-agentd/shell/port_low_discovery.sh $1 2、zabbix/shell 目录中脚本配置示例 # cat port_low_discovery.sh #!/bin/bash redis() { port=($(netstat -tpln | awk -F "[ :]+" '/redis/ && /0.0.0.0/ {print $5}')) printf '{\n' printf '\t"data":[\n' for key in ${!port[@]} do if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1` printf '\t {\n' printf "\t\t\t\"{#REDISPORT}\":\"${port[${key}]}\"},\n" else [[ "${key}" -eq "((${#port[@]}-1))" ]] socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1` printf '\t {\n' printf "\t\t\t\"{#REDISPORT}\":\"${port[${key}]}\"}\n" fi done printf '\t ]\n' printf '}\n' }
7、memcache 监控配置示例
1、zabbix-agentd.conf 配置添加 (注意配置脚本目录) UserParameter=zabbix_low_discovery[*],sh /usr/local/zabbix-agentd/shell/port_low_discovery.sh $1 2、zabbix/shell 目录中脚本配置 (注意配置脚本目录) UserParameter=zabbix_low_discovery[*],sh /usr/local/zabbix-agentd/shell/port_low_discovery.sh $1
# 脚本示例: # cat port_low_discovery.sh memcached() { port=($(netstat -tpln | awk -F "[ :]+" '/memcached/ && /0.0.0.0/ {print $5}')) printf '{\n' printf '\t"data":[\n' for key in ${!port[@]} do if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1` printf '\t {\n' printf "\t\t\t\"{#MEMPORT}\":\"${port[${key}]}\"},\n" else [[ "${key}" -eq "((${#port[@]}-1))" ]] socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1` printf '\t {\n' printf "\t\t\t\"{#MEMPORT}\":\"${port[${key}]}\"}\n" fi done printf '\t ]\n' printf '}\n' } $1