zoukankan      html  css  js  c++  java
  • 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 '{ ' printf ' "data":[' if [ `cat /etc/keepalived/keepalived.conf|grep "MASTER"|wc -l` -eq 0 ];then printf ' {' printf ""{#KVIP}":"$host_ip"}" else for key in ${!vip[@]} do printf ' {' printf ""{#KVIP}":"${vip[$key]}"}" if [ $key -ne $max_index ];then printf "," fi done fi printf ' ] ' printf '} '

    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 '{
    '
                printf '	"data":[
    '
                   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 '	 {
    '
                              printf "			"{#REDISPORT}":"${port[${key}]}"},
    "
                         else [[ "${key}" -eq "((${#port[@]}-1))" ]]
                  socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1`
                              printf '	 {
    '
                              printf "			"{#REDISPORT}":"${port[${key}]}"}
    "
                           fi
                   done
                              printf '	 ]
    '
                              printf '}
    '
    }

    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 '{ ' printf ' "data":[ ' 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 ' { ' printf " "{#MEMPORT}":"${port[${key}]}"}, " else [[ "${key}" -eq "((${#port[@]}-1))" ]] socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1` printf ' { ' printf " "{#MEMPORT}":"${port[${key}]}"} " fi done printf ' ] ' printf '} ' } $1
  • 相关阅读:
    年度总结会议
    2018年度移动创新竞赛组总结
    移动竞赛组2019计划
    task ':app:mergeDebugResources' property 'aapt2FromMaven'
    SQL SERVER : 'GO' 附近有语法错误问题
    Visual C# 访问 SQLserver 数据库
    数据库系统概论 第三章 课后作业
    数据库系统概论 第三章 建表&插入SQL语句
    【pyqt5 QtDesigner SQLserver2017】 Python3.6 Demo
    【Win10 + PyCharm + Python + PyQt5 + pymssql】 Python 3.6 访问 SQLserver 2017(对话框界面)1
  • 原文地址:https://www.cnblogs.com/sharesdk/p/8676766.html
Copyright © 2011-2022 走看看