Skip to content

app_report

遇见王斌 edited this page Sep 23, 2017 · 8 revisions

日常使用报表

加个crontab,可以定期导出报表哦

注意:日常使用报表需要zabbix server 3.0.x 以上支持(程序中会调用 3.0.x 新增的 trend_get 接口支持)

1 报表功能

日常使用报表可以输出一段时间内特定的item(模糊搜索)在最高值、平均值、最小值,并将其输出到excel表格中

1.1 使用说明

#zabbix_api --report "CPU" "2017-01-01 00:00:00" "2017-03-01 00:00:00"  --table 

1.2 参数说明

  • 搜索 item
    • (1)对监控名称进行分隔符分割后,进行完全匹配,如某个监控项名称为“CPU idle time” 则搜索CPU即可匹配,搜索CP,则不匹配
    • (2)--sign 设置分割符,默认以“ ”(空格)分割,如某个监控项名称为“CPU_idle_time” 则搜索CPU相关的监控项,同时加“--sign _”参数
  • 选择特定主机组或者主机
    • --hostgroupid,--hostid 选择特定主机组或者主机
  • 导出 excel 报表相关
    • --xls /tmp/ceshi.xls 导出excel文档,名字为ceshi.xls,因程序会切换工作路径,此块最好使用绝对路径
    • --title title_name 导出excel文档的头标题
  • 输出内容相关
    • --sort num 对设置的列进行升序输出,通过--desc可以将升序修改为降序
    • --table 以表格内容在终端输出显示

2 报表实例

2.1 选择特定主机

通过--hostgroupid,--hostid选择特定主机

[root@Linux ~]#zabbix_api --report "CPU" "2016-12-01 00:00:00" "2017-01-01 00:00:00" --table --hostid 10084
1.2.2
主机:ceshi
主机组:无
+CPU-----+-------+--------------------+---------+---------+---------+
| hostid | name  | itemName           | min     | max     | avg     |
+--------+-------+--------------------+---------+---------+---------+
| 10084  | ceshi | CPU idle time      | 35.9216 | 96.3813 | 93.0219 |
| 10084  | ceshi | CPU interrupt time | 0.0     | 0.0383  | 0.005   |
| 10084  | ceshi | CPU iowait time    | 2.2971  | 28.0711 | 4.9127  |
| 10084  | ceshi | CPU nice time      | 0.0     | 0.944   | 0.0008  |
| 10084  | ceshi | CPU softirq time   | 0.0334  | 0.7599  | 0.117   |
| 10084  | ceshi | CPU steal time     | 0.0     | 0.0     | 0.0     |
| 10084  | ceshi | CPU system time    | 0.5688  | 5.2582  | 0.8132  |
| 10084  | ceshi | CPU user time      | 0.2007  | 45.491  | 1.1232  |
+--------+-------+--------------------+---------+---------+---------+

2.2 导出excel报表

输出显示时加--xls /tmp/ceshi.xls可以导出excel文件到/tmp目录 report

2.3 设置模糊搜索分隔符

默认监控项名称是以空格分隔的,假如要搜索的字符串是以其他字符串分割,可以通过 “--sign 分隔符”进行设置分隔符

[root@Linux ~]# zabbix_api --report "Cpu" "2017-01-01 00:00:00" "2017-03-01 00:00:00"  --table --sign _
1.2.3
ALL
┌Cpu─────┬───────────────┬──────────┬─────┬─────┬─────┐
│ hostid │ name          │ itemName │ min │ max │ avg │
├────────┼───────────────┼──────────┼─────┼─────┼─────┤
│ 10084  │ Zabbix server │ Cpu_load │ 0   │ 0   │ 0   │
│ 10084  │ Zabbix server │ Cpu_ceshi│ 0   │ 0   │ 0   │
└────────┴───────────────┴──────────┴─────┴─────┴─────┘

2.4 设置输出excel表title

此项需要--xls 参数为前提

设置excel表title为 --title itle_name

2.5 设置输出excel时是否输出logo

设置/etc/zabbix_tool/zabbix_setting.ini

此参数默认为设置为True即显示状态

logo_show = True

2.6 将某列内容进行排序

第六列升序输出

#zabbix_api --report item_name date_from date_till --table --sort 6

以表格形式展示在终端输出,同时将第六列降序输出

#zabbix_api --report item_name date_from date_till --table --sort 6 --desc