• zabbix监控top


    参考网址:http://www.51testing.com/html/05/n-4456205.html?tdsourcetag=s_pcqq_aiomsg

    https://blog.csdn.net/oqqJohn1234567890/article/details/85330766

    一.top.sh

    1.在root目录下创建autotop目录:mkdir autotop

    2.在autotop路径下创建top.sh文件

      cd autotop

      touch top.sh

    3.编辑 top.sh文件:

      vim  /root/autotop/top.sh

        内容:  top -n 1 -b >/tmp/autotop/top.txt

      :wq!   保存

    4.复制权限给top.sh可执行权限:

      chmod +x top.sh

    5.在/tmp下创建autotop文件:

      cd /tmp

      mkdir autotop

    6.进入到/root/autotop/路径下执行top.sh文件:

      cd /root/autotop/

      ./top.sh

    7.查看/tmp/autotop/top.txt文件:

      cat /tmp/autotop/top.txt

    二.定时运行top.sh

      crontab -e

        */1 * * * *  /root/autotop/top.sh > /dev/null       分 时 日 月 周(五个星号对应表示时间单位;*/1:每分钟执行一次脚本)

      crontab -l  :查看定时任务

     三.check_process.sh:

      cd /root/autotop/

      vim check_process.sh

    TABLESPACE=`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$6}END{for(k in a)print a[k]/1024,k}'|sort -gr|head -10|cut -d" " -f2`
    COUNT=`echo "$TABLESPACE" |wc -l`
    INDEX=0
    echo '{"data":['
    echo "$TABLESPACE" | while read LINE; do
    echo -n '{"{#PROCESSNAME}":"'$LINE'"}'
    INDEX=`expr $INDEX + 1`
    if [ $INDEX -lt $COUNT ]; then
    echo ','
    fi
    done
    echo ']}'

       :wq!  保存退出

      chmod +x check_process.sh

      ./check_process.sh

      运行结果如:

    {"data":[
    {"{#PROCESSNAME}":"mysqld"},
    {"{#PROCESSNAME}":"zabbix_se+"},
    {"{#PROCESSNAME}":"/opt/lamp+"},
    {"{#PROCESSNAME}":"java"},
    {"{#PROCESSNAME}":"lightdm-g+"},
    {"{#PROCESSNAME}":"systemd-j+"},
    {"{#PROCESSNAME}":"php-fpm7"},
    {"{#PROCESSNAME}":"dockerd-l+"},
    {"{#PROCESSNAME}":"docker-co+"},
    {"{#PROCESSNAME}":"X"}]}
      TABLESPACE:获取前十的进程名(是以 RES 作为标准衡量资源消耗,可通过其他指标来监控)
      COUNT:得到TABLESPACE的行数(10)
      后面代码都是为了组装成zabbix能识别读取的标准数据格式。

    四.process_monitor.sh:

      cd /root/autotop/

      vim process_monitor.sh

    process=$1
    name=$2
    case $2 in
    mem_res)
    echo "`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$6}END{for(k in a)print a[k]/1024,k}'|grep "$process"|cut -d" " -f1`"
    ;;
    cpu_p)
    echo "`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$9}END{for(k in a)print a[k],k}'|grep "$process"|cut -d" " -f1`"
    ;;
    mem_virt)
    echo "`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$5}END{for(k in a)print a[k]/1024,k}'|grep "$process"|cut -d" " -f1`"
    ;;
    mem_p)
    echo "`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$10}END{for(k in a)print a[k],k}'|grep "$process"|cut -d" " -f1`"
    ;;
    pid)
    echo "`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$1}END{for(k in a)print a[k],k}'|grep "$process"|cut -d" " -f1`"
    ;;
    runtime)
    echo "`tail -n +8 /tmp/autotop/top.txt|awk '{a[$NF]+=$11}END{for(k in a)print a[k],k}'|grep "$process"|cut -d" " -f1`"
    ;;
    *)
    echo "Error input:"
    ;;
    esac
    exit 0

     

      

    参数:
      process:进程名称(zabbix中会自动赋值)
      name:监控指标名(在zabbix模板中已经配置好)
      后面的代码都是逻辑判断,根据上面的参数信息,获取监控数值
      
     

       :wq!  保存退出

      chmod +x process_monitor.sh

      ./process_monitor.sh

    五.修改zabbix_agentd.conf,使得zabbix能够调用脚本:

      find / -name zabbix_agentd.conf  

      找到路径如下:

    /var/lib/docker-latest/overlay2/465e5fa0796af9136fcdb548e2e35b05c498b454b9261e53913ca930d409d561/diff/etc/zabbix/zabbix_agentd.conf
    /var/lib/docker-latest/overlay2/4d424828878104ca3ceffe3c9b47abc64d24371404aa93fe12693be6c9e6303f/diff/etc/zabbix/zabbix_agentd.conf
    /var/lib/docker-latest/overlay2/4d424828878104ca3ceffe3c9b47abc64d24371404aa93fe12693be6c9e6303f/merged/etc/zabbix/zabbix_agentd.conf

      选择第一个编辑:

      vim /var/lib/docker-latest/overlay2/465e5fa0796af9136fcdb548e2e35b05c498b454b9261e53913ca930d409d561/diff/etc/zabbix/zabbix_agentd.conf

    #top10_process
    UserParameter=process.discovery,/root/autotop/check_process.sh
    UserParameter=process.resource[*],/root/autotop/process_monitor.sh $1 $2

        :wq!  保存退出

      

     六.重启 zabbix_agentd:

       docker stop zabbix-agent

       docker start zabbix-agent

    七.zabbix平台配置

  • 相关阅读:
    再谈PHP、Python与Ruby
    php消息队列
    创业如同追女生:成功的创业者都是追女生好手
    Windows 下 Python easy_install 的安装
    常用Python第三方库 简介
    Highcharts使用手册
    sqoop java api
    redis 读写分离
    linux 安装redis
    hive 安装和部署
  • 原文地址:https://www.cnblogs.com/jingzaixin/p/12410213.html
Copyright © 2020-2023  润新知