51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux安装Zabbix终端管理工具Zabbix_Manager

一、Zabbix_manager简介

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

Zabbix_manager的应用场景。

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

二、Zabbix_manager安装及配置

1、安装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

2、常见问题

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

3、解决方法

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

4、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

5、名词解释

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的值

6、运行及帮助

运行

直接执行zabbix_api输出帮助信息

[root@localhost ~]# zabbix_api

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

运行方式

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

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

如[root@Ansible ~]# zabbix_api host_get

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

7、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"}

8、host管理

主机列表

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

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

场景:创建主机

操作说明: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

9、用户管理

用户组列表

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

Linux安装Zabbix终端管理工具Zabbix_Manager-图片1

创建用户组

[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" "test@163.com"

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"}

10、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"}

11、action(动作)管理

action列表

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

Linux安装Zabbix终端管理工具Zabbix_Manager-图片2

12、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 进行日常管理

13、zabbix安装后一键配置

配置内容

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

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

创建[alerts]脚本报警设置

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

创建用户[op],属于用户群组[op_group],密码为123456,同时邮箱为"ceshi@qq.com"

创建触发器 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 "ceshi@qq.com"

zabbix_api action_trigger_create "trigger_action" "op_group" "alerts"

14、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_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

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

报表

15、实例

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

[root@Ansible ~]# zabbix_api --report "Cpu" "2020-04-29 00:00:00" "2020-04-30 00:00:00" --table --sign _
继续阅读 Zabbix最后更新:2024-1-24

赞(0)
未经允许不得转载:工具盒子 » Linux安装Zabbix终端管理工具Zabbix_Manager