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

 

posted @ 2018-03-30 16:06  01234567  阅读(285)  评论(0编辑  收藏  举报