zoukankan      html  css  js  c++  java
  • zabbix 自动出图脚本

    #!/bin/bash
    #不配置字符集,脚本放到crontab里发出的中文E-MAIL乱码
    export LANG=en_US.UTF-8
    
    #有点强迫症,习惯什么东西在什么地方干 ^_^
    cd /home/zabbix/graph
    
    #保存cookie文件名
    COOKIE=zbx_cookie.txt
    > $COOKIE
    
    #我是在zbx上开一个组,弄一个只读账号,把想出图的主机放进去。
    NAME="reader"
    PASSWD="123456789"
    
    #EMAIL木什么好说地,有几个e-mail并排写就好啦。
    EMAIL="haha@abc.com hehe@abc.com lala@123.com"
    
    #需要提取数据的IP地址,其实这个IP主要是用来给图片命名用的。恩恩
    IPADDR=(192.168.1.1 192.168.1.2)
    
    #这个地方比较麻烦,因为itemid是唯一的,所以需要自己肉眼高速扫描的去查。
    #这里我们拿内存和cpu来举个例子吧。恩恩。
    CPU_ITEMID=(12345 67890) MEM_ITEMID=(98765 65432) #我们高大上的zbx地址 URL="http://127.0.0.1" #登录保存cookie curl -s -c $COOKIE -b $COOKIE -d "request=&name=${NAME}&password=${PASSWD}&autologin=1&enter=Sign+in" $URL #还是强迫症,木办法。 [[ -d cpu_png ]] || mkdir cpu_png [[ -d mem_png ]] || mkdir mem_png #PERIOD配置获取数据的时间段,用秒数来表示。 #ld需求要7天内的。604800,大家都懂的。 #这里举个例子我写的3600。 PERIOD=3600 #这是我们的开始时间,也就是当前时间, STIME=$(date +%Y%m%d%H%M%S) #图片宽度 WHIDTH=1200 #我是针对ITEMID组来进行循环创建图片的,为了显的好看点,我才这么写的。
    #要不横着写起来太长鸟~!你们懂的。我们开始拼url
    for i in $(seq 0 $[${#CPU_ITEMID[@]}-1]);do curl -s -b $COOKIE \ -F "itemid=${CPU_ITEMID[i]}" \ -F "period=$PERIOD" \ -F "curtime=$STIME" \ -F "width=$WHIDTH" \ "$URL/chart.php" > cpu_png/${IPADDR[i]}_cpu.png done for i in $(seq 0 $[${#MEM_ITEMID[@]}-1]);do curl -s -b $COOKIE \ -F "itemid=${MEM_ITEMID[i]}" \ -F "period=$PERIOD" \ -F "curtime=$STIME" \ -F "width=$WHIDTH" \ "$URL/chart.php" > mem_png/${IPADDR[i]}_mem.png done
    #我开始有点懒了,反正图片都出来了爱怎么地怎么地吧。我手动拼的。 CPU_PNG="-a cpu_png/192.168.1.1_cpu.png -a cpu_png/192.168.1.2_cpu.png" MEM_PNG="-a mem_png/192.168.1.1_mem.png -a mem_png/192.168.1.2_mem.png" #E-MAIL的TITLE,都懂的。不解释了。 CPU_TITLE="$(date +%Y年%m月%d日) Cpu idle 曲线图" MEM_TITLE="$(date +%Y年%m月%d日) Memory realused 曲线图" #卡卡卡开始对ld进行邮件轰炸,用不用写个死循环呢。:p echo "附件为抽查服务器cpu idle曲线图" | mail -s "$CPU_TITLE" $CPU_PNG $EMAIL echo "附件为抽查服务器memory realused曲线图" | mail -s "$MEM_TITLE" $MEM_PNG $EMAIL #做事要干净,吃完饭记得擦嘴。 [[ -d cpu_png ]] && rm -rf cpu_png [[ -d mem_png ]] && rm -rf mem_png exit 0

    其实就是根据这个url自己拼的。

    最后呈现出来的样子就系这样啦。

  • 相关阅读:
    vue form dynamic validator All In one
    TypeScript api response interface All In One
    closable VS closeable All In One
    macOS 如何开启 WiFi 热点 All In One
    vue css inline style All In One
    vs2010里面 新建网站里面的 asp.net网站 和 新建项目里面的 asp.net Web应用程序 的区别 (下)
    牛腩新闻 59 整合添加新闻页 FreeTextBox 富文本编辑器,检测到有潜在危险的 Request.Form 值,DropDownList 的使用
    牛腩新闻 61尾声: error.aspx的使用 防止报错
    vs2010里面 新建网站里面的 asp.net网站 和 新建项目里面的 asp.net Web应用程序 的区别 (上)
    牛腩新闻 62:尾声续2 asp.net的编译和发布
  • 原文地址:https://www.cnblogs.com/itflycat/p/3924138.html
Copyright © 2011-2022 走看看