温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用API自动增加Zabbix监控主机

发布时间:2020-06-12 13:13:52 来源:亿速云 阅读:447 作者:元一 栏目:系统运维

背景

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

Zabbix优点:

1 支持分布式监控

2 自带绘图功能,获取到数值型的数据,可自动生成图

3 Web配置方式,操作易用性较好。添加监控项或机器时速度很快。

4 有报警时无论在任何界面会弹出小窗口报警,同时有报警的声音提示,同时可对监控项的快速查看。

5 自带内置函数较为丰富,同时也支持脚本及nagios等脚本的调用。

6 出现问题时,可自动远程执行命令(需对agent设置执行权限)

Zabbix 缺点:

1 批量修改不方便,可用数据库辅助

2 深入后,中文资料相当少,大部分问题需看官方的文档及论坛。

3 缺少数据汇总功能,如无法查看一组服务器平均值,可考虑对其进行二次开发。

4 zabbix较cacti来说,画图功能较差些、流量获取较为复杂

API:应用程序接口(API:Application Program Interface)

应用程序接口是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过调用 API 函数对应用程序进行开发,可以减轻编程任务。 API 同时也是一种中间件,为各种不同平台提供数据共享。

根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将 API 分为四种类型:

远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。

标准查询语言(SQL):是标准的访问数据的查询语言,通过数据库实现应用程序间的数据共享。

文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。

信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。

新增接口前需要做个登录,拿到登录的token,然后拿到这个token,再去添加服务器。脚本如下:

#!/bin/bash

hostname='192.168.0.219'    #被监控主机名称
ip='192.168.0.219'                 #被监控主机IP
port=10050                            #被监控主机zabbix_agentd端口
templateid=10001                 #模板ID
groupid=2                             #需要加入的服务器组
zabbixhost='http://www.zabbix.com'     #zabbix主机地址

header='Content-Type:application/json'
request_data='{"jsonrpc" : "2.0","method" : "user.login","params" : {"user" : "admin" ,"password" : "zabbix"} ,"id" : 1 }'
result=$(curl -s -XPOST -H ${header} -d "${request_data}" ${zabbixhost}/api_jsonrpc.php)
token=$(echo $result|sed 's/.\+"result":"\([0-9a-z]\+\)".\+/\1/')

save_request_data='{"jsonrpc": "2.0","method": "host.create","params": {"host": "'${hostname}'","interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "'${ip}'","dns": "","port": "'${port}'"}],"groups": [{"groupid": "'${groupid}'"}],"templates": [{"templateid": "'${templateid}'"}]},"auth": "'${token}'","id": 1 }'

curl -s -XPOST -H ${header} -d "${save_request_data}" ${zabbixhost}/api_jsonrpc.php
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI