Zabbix-gnomes:Zabbix 命令行工具套件

开发者 容器化评论1,542字数 1305阅读模式

Zabbix-gnomes 是一组 Zabbix 的开源脚本工具集合,它使用 Python 对 Zabbix API 的进行了分装,使得日常的大部分操作可以通过命令行完成,非常方便。最新的 Zabbix-gnomes 代码可以在 Github 上获取到。

所有 zabbix-gnomes 相关的工具,都可以用 -h/--help 调用获得帮助。

API工具:

相关历史:

  • zgethistory.py - 从历史记录获取一个itemid的值。
  • zhinvswitcher.py - 在主机( 群组组) 上切换 inv。
  • zgetinventory.py - 以CSV格式打印主机清单。
  • zhostupdater.py - 更新主机属性。
  • zhitemfinder.py - 查找主机上的项目。
  • zgethistory.py - 从历史记录( 不支持趋势) 获取项值。
  • zhgraphfinder.py - 查找在Zabbix主机上配置的图形。
  • zgetgraph.py - 从Zabbix前端( 需要用户前端访问) 下载一个图形. PNG 并保存它。
  • zghostfinder.py - 查找hostgroup中的成员主机。
  • zhostfinder.py - 根据搜索字符串在Zabbix中查找主机。
  • zhostupdater.py - 更新主机属性。
  • zhproxyfinder.py - 为Zabbix主机查找配置的代理。
  • ztmplimport.py - 将 xml 模板导入 Zabbix。
  • zhtmplfinder.py - 查找Zabbix主机的链接模板。
  • zthostfinder.py - 查找链接到模板的主机。
  • zthtmllinker.py - 将主机( 群组组)的链接链接到模板列表。
  • zthtmlunlink.py - 将主机( 群组组) 与模板列表断开。
  • zhtrigfinder.py - 在主机上查找触发器。
  • ztrigswitcher.py - 将触发器切换为已经启用或者discabled状态。
  • zhostupdater.py - 更新主机属性。
  • zeventfinder.py - 基于过滤器(。包含 tail -f 模式) 查找事件。
  • zgetevent.py - 获取eventIds的详细信息,包括和ack警报操作。
  • zeventacker.py - 基于eventIds确认事件。

配置 Zabbix-gnomes

这些程序可以使用 .ini 风格的配置文件,来获取所需的API连接信息。它的配置文件默认为 $HOME/.zbx.conf,样例如下:

[Zabbix API]
username=debian
password=Debian-CN-Debian.cn
api=http://aws-zabbix-1/zabbix/
no_verify=true

将 no_verify 设置为 true 将在使用 https 时禁用 tls/ssl 证书验证。

脚本依赖 pyzabbix、pillow 模块:

pip install pyzabbix pillow

用法样例

将主机 www.debian.cn 的一个月的CPU负载数据保存为 ~/jan.png,具体时间跨度是 2019年01月至1月31日:

graphid=$(./zhgraphfinder.py -e p-hsg-mysql-2 | grep 'CPU load' | cut -d ':' -f 1)
./zgetgraph.py -s $(date --date 'jan 1 2019' +%s) -t 2678400 -f ~/jan.png $graphid

输出的图形如下:

Zabbix-gnomes:Zabbix 命令行工具套件

使用 zproxyfinder.py 在 zabbix_sender 脚本中使用恰当的 Zabbix 代理,

zabbix_sender -k $ITEMKEY -o $ITEMVALUE -s $HOSTNAME -z $(zhproxyfinder.py $HOSTNAME)

使用 zhtmpllinker.py 将三个模板链接到指定的 hostgroup 中所有主机:

./zhtmpllinker.py -t "Template App Apache" "Template App MySQL" "Template OS Linux" -G "LAMP Servers"

使用 zhtmplunlink.py 将模板与 hostgroup 中的所有主机关联:

./zhtmplunlink.py -G "Webservers" -t "Template App MySQL"

从模板目录中,导入所有的 xml 模板,并详细显示导入过程:

./ztmplimport.py -v -C./templates/*.xml

从 itemid 为 12345 的监控项的最新项目值:

./zgethistory.py 12345 -C 1

从历史记录中查询一个监控项的值,并指定气质时间段:

./zgethistory.py -s $(date --date 'jan 1 2014' +%s) -t 7200 -e 1030

禁用主机名为 Google DNS 的主机上的,"Unavailable by ICMP"触发器:

./ztrigswitcher.py -D $(./zhtrigfinder.py -s "Unavailable by ICMP" -n "Google DNS")

在主机 webserver 上计算活动触发器的数目:

./zhtrigfinder.py -A "Webserver" | wc -l

switch 对 hostgroup 中所有主机的库存模式:

./zhinvswitcher.py -G"Linux Servers" -m manual

从 Zabbix 的资产清单中,列出所有的主机:

./zhinvswitcher.py --all-hosts

在指定的 hostgroup 中查找与以 mongo 开头的,名称匹配的主机列表:

./zghostfinder.py "mongodb of aws-sg1" | grep -i ^mongo

将指定主机的,可用内存的最后一个监控值打印出来:

./zgethistory.py -C 1 $(./zhitemfinder.py -k 'vm.memory.size[available]' -n Webserver)

对主机名中匹配字符串 zabbix 的所有受监控主机执行搜索,列出主机名:

./zhostfinder.py -m -S zabbix

从主机资产组中,以主机组为维度,按照指定关键字查询,生产一个 csv 文件:

./zgetinventory.py -G "Zabbix Servers" -F "os" "vendor" "contact" > report.csv

将主机名为 web001 的主机,名称更新为 webserver:

./zhostupdater.py web001 -V webserver

启用主机 web001,应用宏 {$APACHEPROC} 并更新资产表中的指定字段:

./zhostupdater.py web001 -E -M apacheproc=15 -I software_app_a="Apache"

查询最近一个小时内的,某主机组中的所有问题事件(限于 100个事件):

./zeventfinder.py -P -t 3600 -G 'Linux Servers' 

使用指定的确认消息,来确认 三个事件:

./zeventacker.py -m"Power outage" 6578 6689 6590

在三个事件上打印详细信息,包括触发注释,操作和确认:

./zgetevent.py -ACL 6578 6689 6590 

确认指定主机组中的主机上的所有的问题事件:

./zeventacker.py -m 'Foobar with Fabric :-(' $(./zeventfinder.py -i -P -t 900 -G 'Linux servers') 

所有主机的Zabbix触发器事件:

./zeventfinder.py -L 10 --all-hosts -f

组合命令样例,查询受监控主机中,某一类主机的指定key值的最新状态:

for i in $(./zhostfinder.py -m -S mysql); do echo -n $i\ \ \ ; ./zgethistory.py -C 1 $(./zhitemfinder.py -k 'net.if.in[eth0]' -n $i) ; done

使用 zapi.py API客户机测试Zabbix调用:

Logging in on 'https://zabbix.debian.cn/' with user 'Admin'.
Welcome to the interactive Zabbix API client.
zapi: z host.get(filter={"host":"Zabbix Server"})
[{u'hostid': u'1001'}]
zapi: 

文章末尾固定信息

继续阅读
 
joseph
  • 本文由 joseph 发表于 2019年3月1日
  • 除非特殊声明,本站文章许可协议为"署名-非商用-相同方式共享 4.0",转载请保留原链、作者等信息。
Debian 12 安装 Nvidia 驱动及问题修复 开发者

Debian 12 安装 Nvidia 驱动及问题修复

千万不要使用Nvidia官方提供的 run 文件,会有很大问题!!安装过程以英文版的 Debian Wiki 为主,不用看中文翻译版,有段时间没更新了。 一、安装前的工作确定你安装了当前内核的 hea...
广告也精彩
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证