首页 > 其他分享 >Zabbix终端管理工具zabbix_manager

Zabbix终端管理工具zabbix_manager

时间:2022-12-30 15:33:01浏览次数:40  
标签:Zabbix Ansible -- zabbix manager api root

说明

Zabbix_manager是Zabbix终端管理工具,可以在linux 终端实现管理Zabbix
同时可以通过Zabbix_manager实现对Zabbix的一键初始化,一键导出报表(报表为excel)等功能。

Zabbix_manager的应用场景。

  • 需要多次部署实施Zabbix
  • 日常Zabbix管理
  • 日常导出Zabbix报表

Zabbix_manager安装及配置

安装Zabbix_manager

[root@localhost ~]# yum -y install git

[root@localhost ~]# git clone https://github.com/BillWang139967/zabbix_manager.git

[root@localhost ~]# cd zabbix_manager

[root@localhost ~]# sh start.sh

常见问题

git clone 失败

[root@localhost ~]# git clone https://github.com/BillWang139967/zabbix_manager.git

Initialized empty Git repository in /root/zabbix_manager/.git/

error: while accessing https://github.com/BillWang139967/Vim.git/info/refs

fatal: HTTP request failed

解决方法

[root@localhost ~]# git config --global http.sslVerify false

Zabbix_manager配置

# 配置文件位置/etc/zabbix_tool/zabbix_config.ini

[root@localhost zabbix_manager]# vim /etc/zabbix_tool/zabbix_config.ini

[zabbixserver]                 #默认连接(可通过--profile选择连接的zabbix)

server = 172.168.1.75    #zabbix server IP

port = 80                        #zabbix web端口

user = admin                 #zabbix web管理员账号

password = 123456      #zabbix web管理员密码

# zabbix_api 可以进行管理多台zabbix server 只需要在配置文件中增加如下配置即可,加入要对 [bendi] 的机器进行管理,在命令行后跟--profile bendi即可

[bendi]

server = 172.168.1.76

port = 80

user = admin

password = zabbix

名词解释

host:被监控的设备,服务器,交换机等等

item:被监控的设备上的一个监控点,比如[Free disk space on /]

trigger:触发器(报警点),比如[Free disk space on /] 小于 20%时

action:trigger触发后的动作,比如发邮件,被监控的设备自动注册时的动作等等,

event:zabbix server 每次收到数据后,如果此item有trigger,则会将收到的值与trigger进行比较,并记录状态

graph:自定义图表

screen:graph的集合,需要手动维护

history:每个item每次获取到的数据

trend:针对每个item,每个小时的min,max,avg的值

运行及帮助

运行

直接执行zabbix_api输出帮助信息

[root@localhost ~]# zabbix_api

输出 zabbix_api 成员函数信息以及选项

运行方式

[root@Ansible ~]# zabbix_api function param [options]zabbix_api

方法名 参数 选项(非必须)

如[root@Ansible ~]# zabbix_api host_get

如果方法名对应的参数个数不对,会默认输出此方法的提示

hostgroup管理

主机组列表

--table选项使得输出以列表输出,默认以text输出

[root@Ansible ~]# zabbix_api hostgroup_get

zabbix_manager:[1.4.04]

[hostgroupID] [hostgroupName]

[5] [Discovered hosts]

[7] [Hypervisors]

[2] [Linux servers]

[1] [Templates]

[12] [Templates/Applications]

[13] [Templates/Databases]

[8] [Templates/Modules]

[9] [Templates/Network devices]

[10] [Templates/Operating systems]

[11] [Templates/Server hardware]

[14] [Templates/Virtualization]

[16] [V3.0测试环境]

[15] [v4.0测试环境]

[6] [Virtual machines]

[4] [Zabbix servers]

sum: 15

创建主机组

[root@Ansible ~]# zabbix_api hostgroup_create "ceshi"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "create hostgroup [17] OK"}

host管理

主机列表

[root@Ansible ~]# zabbix_api host_get --table

Zabbix终端管理工具zabbix_manager_Ansible

创建主机(可设置自动创建,故不常用)

场景:创建主机

操作说明:zabbix_api host_create 主机IP 主机名 主机组名 需要链接的模板名

[root@Ansible ~]# zabbix_api host_create 192.168.1.79 "Test" "ceshi" "Template OS Linux by Zabbix agent"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "create host:[Test] hostid:[10368] OK"}

删除主机

场景:删除不需要的主机

操作说明:zabbix_api host_delete 主机名

[root@Ansible ~]# zabbix_api host_delete "Test"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "delete host:[Test] id:[10368] OK"}

批量对主机进行clear 指定模板

场景:某个模板需要clear时

操作说明:zabbix_api hosts_template_clear 模板名

注:可以使用--hostgroupid,--hostid两个选项进行对特定主机或者主机组进行clear模板操作

[root@Ansible ~]# zabbix_api hosts_template_clear "Template Module Generic SNMPv1"

zabbix_manager:[1.4.04]

clear template [Template Module Generic SNMPv1]...

host:[Test] ip:[192.168.1.79] OK

[root@Ansible ~]# zabbix_api hosts_template_clear "Template OS Linux by Zabbix agent" --hostid 10368

zabbix_manager:[1.4.04]

clear template [Template OS Linux by Zabbix agent]...

host:[Test] ip:[192.168.1.79] OK

批量对主机进行link指定模板

场景:批量对主机进行link指定模板(不加参数,默认为全部主机)

操作说明:zabbix_api hosts_template_link 模板名

[root@Ansible ~]# zabbix_api hosts_template_link "Template DB MySQL"

注:可以使用--hostgroupid,--hostid两个选项进行对特定主机或者主机组进行clear模板操作

[root@Ansible ~]# zabbix_api hosts_template_link "Template DB MySQL" --hostid 10368

zabbix_manager:[1.4.04]

link template [Template DB MySQL]...

host:[Test] ip:[192.168.1.79] OK

用户管理

用户组列表

[root@Ansible ~]# zabbix_api usergroup_get --table

Zabbix终端管理工具zabbix_manager_Ansible_02

创建用户组

[root@Ansible ~]# zabbix_api usergroup_create "ceshi_usergroup" "Linux servers"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "create usergroup:[ceshi_usergroup] id:[13] is OK"

删除用户组

[root@Ansible ~]# zabbix_api usergroup_delete "ceshi_usergroup"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "delete usergroup [ceshi_usergroup] OK"}

用户列表

[root@Ansible ~]# zabbix_api user_get --table

zabbix_manager:[1.4.04]

+--------+-------+--------+-----+

| userid | alias | name | url |

+--------+-------+--------+-----+

| 1 | Admin | Zabbix | |

| 2 | guest | | |

+--------+-------+--------+-----+

sum: 2

创建用户

格式:zabbix_api user_create 用户名 密码 组名 报警媒介 接受报警账号

[root@Ansible ~]# zabbix_api user_create "test" "123456" "test" "alerts" "[email protected]"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "create user:[test] id:[3] OK"}

删除用户

[root@Ansible ~]# zabbix_api user_delete test

zabbix_manager:[1.4.04]

{"status": "OK", "output": "delete user:[test] id:[3] OK"}

template管理

template列表

[root@Ansible ~]# zabbix_api template_get

template模板导入

template模板路径尽量使用绝对路径,相对路径是以/tmp/为基本目录

[root@Ansible ~]# zabbix_api template_import "/tmp/zbx_export_templates.xml"

zabbix_manager:[1.4.04]

{"status": "OK", "output": "import template [/tmp/zbx_export_templates.xml] OK"}

action(动作)管理

action列表

[root@Ansible ~]# zabbix_api action_get --table

Zabbix终端管理工具zabbix_manager_Ansible_03

sh_menu

此工具与zabbix_api命令搭配使用

日常工作时有些命令是重复性操作,可以将这些日常重复使用的命令写成脚本放在zabbix_manager/ZabbixTool/sh_menu/Function目录中

# 操作方法

1)将日常需要调用zabbix_api命令的脚本放在zabbix_manager/ZabbixTool/sh_menu/Function目录中

2)执行zabbix_manager/ZabbixTool/main.sh -c 进行手动更新菜单

3)执行zabbix_manager/ZabbixTool/main.sh 进行日常管理

zabbix安装后一键配置

配置内容

一键配置主要是配置以下内容

创建自动注册action ,使用脚本安装的agent会自动添加到[Linux servers]中

创建[alerts]脚本报警设置

创建用户群组[op_group],并对[Linux servers]拥有可管理权限

创建用户[op],属于用户群组[op_group],密码为123456,同时邮箱为"[email protected]"

创建触发器 action,设置发生问题使用[alerts]邮件方式发送到设置的邮箱

脚本位置及脚本内容

脚本位置:/tmp/ZabbixTool/scripts/init.sh

#!/bin/bash

zabbix_api action_autoreg_create "ceshi_action" "Linux servers"

zabbix_api mediatype_create alerts alerts.py

zabbix_api usergroup_create "op_group" "Linux servers"

zabbix_api user_create op 123456 "op_group" alerts "[email protected]"

zabbix_api action_trigger_create "trigger_action" "op_group" "alerts"

zabbix日常使用报表

日常使用报表

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

item在一段时间内的最高值、平均值、最小值等

item支持模糊搜索

1)对监控名称进行分隔符分割后,进行完全匹配,如某个监控项名称为"CPU idle time" 则搜索CPU即可匹配,搜索CP,则不匹配

2)--sign 设置分割符,默认以" "(空格)分割,如某个监控项名称为"CPU_idle_time" 则搜索CPU相关的监控项,同时加"--sign _"参数

文件系统的使用情况等

支持选择特定主机组或者主机

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

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

格式:zabbix_api --report "监控项名称" "起始时间" "结束时间" --table --hostid 用户ID

# 用户ID可通过zabbix_api host_get --table查看

[root@Ansible ~]# zabbix_api --report "CPU" "2020-04-30 00:00:00" "2020-04-30 10:00:00" --table --hostid 10369

Zabbix终端管理工具zabbix_manager_Test_04

格式:zabbix_api --report "监控项名称" "起始时间" "结束时间" --table --hostgroupid 用户组ID

# 用户组ID可通过zabbix_api hostgroup_get --table查看

[root@Ansible ~]# zabbix_api --report "CPU" "2020-04-30 00:00:00" "2020-04-30 10:00:00" --table --hostgroupid 17

Zabbix终端管理工具zabbix_manager_git_05

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

# 报表

Zabbix终端管理工具zabbix_manager_Test_06

实例

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

[root@Ansible ~]# zabbix_api --report "Cpu" "2020-04-29 00:00:00" "2020-04-30 00:00:00" --table --sign _

  • 输入编号:6906,直达文章
  • 输入m|M,直达目录列表

标签:Zabbix,Ansible,--,zabbix,manager,api,root
From: https://blog.51cto.com/u_12018693/5980300

相关文章