zabbix 日报 周报 制作

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    zabbix 日报 周报 制作

    由于工作原因 需要zabbix 制作一个报表 每日看到流量 情况 每周 每月服务器状态报表
    网上找到以下脚本 可以出图 但是出图的时候提示
    ERROR: zabbix has receieved an incorrect request.
    Field "itemids" is mandatory

    初步判断 是出在读取itemid 出错
    请教如何获取到 Itemid
    mysql 数据库items 里面的 itemid 貌似不对

    请求组织 技术支援~~~ 要过年了 要命呀

    脚本信息如下

    #!/bin/bash
    #不配置字符集,脚本放到crontab里发出的中文E-MAIL乱码
    export LANG=en_US.UTF-8

    #有点强迫症,习惯什么东西在什么地方干 ^_^
    cd /home/zabbix/graph

    #保存cookie文件名
    COOKIE=zbx_cookie.txt
    > $COOKIE

    #我是在zbx上开一个组,弄一个只读账号,把想出图的主机放进去。
    NAME="Admin"
    PASSWD="renn8918abcdefg"

    #EMAIL木什么好说地,有几个e-mail并排写就好啦。
    EMAIL="[email protected]"

    #需要提取数据的IP地址,其实这个IP主要是用来给图片命名用的。恩恩
    IPADDR=(127.0.0.1)

    #这个地方比较麻烦,因为itemid是唯一的,所以需要自己肉眼高速扫描的去查。
    #这里我们拿内存和cpu来举个例子吧。恩恩。
    CPU_ITEMID=(12345 67890)
    MEM_ITEMID=(98765 65432)


    #我们高大上的zbx地址
    URL="http://61.186.251.202/zabbix"

    #登录保存cookie
    curl -vx -s -c $COOKIE -b $COOKIE -d "request=&name=${NAME}&password=${PASSWD}&autologi n=1&enter=Sign+in" $URL

    #还是强迫症,木办法。
    [[ -d cpu_png ]] || mkdir cpu_png
    [[ -d mem_png ]] || mkdir mem_png

    #PERIOD配置获取数据的时间段,用秒数来表示。
    #ld需求要7天内的。604800,大家都懂的。
    #这里举个例子我写的3600。
    PERIOD=86400

    #这是我们的开始时间,也就是当前时间,
    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/127.0.0.1_cpu.png -a cpu_png/127.0.0.1_cpu.png"
    #MEM_PNG="-a mem_png/127.0.0.1_mem.png -a mem_png/127.0.0.1_mem.png"

    #E-MAIL的TITLE,都懂的。不解释了。
    CPU_TITLE="$(date +%Y年%m月%d日) Cpu idle 曲线图"
    MEM_TITLE="$(date +%Y年%m月%d日) Memory realused 曲线图"

    #卡卡卡开始对ld进行邮件轰炸,用不用写个死循环呢。
    echo "附件为抽查服务器cpu idle曲线图" | mailx -s "$CPU_TITLE" $CPU_PNG $EMAIL
    echo "附件为抽查服务器memory realused曲线图" | mailx -s "$MEM_TITLE" $MEM_PNG $EMAIL

    #做事要干净,吃完饭记得擦嘴。
    #[[ -d cpu_png ]] && rm -rf cpu_png
    #[[ -d mem_png ]] && rm -rf mem_png
    exit 0

    #2
    其实我觉得你可以直接用 grafana 出图,还好看。

    Comment

    Announcement

    Collapse
    No announcement yet.
    Working...
    X