Zabbix-2.4-安装-4
Zabbix api
对于以上两种方式,有些人都不选,倾向于使用第三种:使用zabbix api加上这个监控
在把这台机器删除了,然后discovery和自动注册的都关闭了
再换一种方式把它加进去,zabbix api两个作用
1、管理zabbix
2、查询一些数,把一些zabbix报警的图形一块发邮件
它支持很多方法

api的配置,在httpd.conf目录下。如下编辑zabbix.conf
[root@linux-node1 ~]# vim /etc/httpd/conf.d/zabbix.conf

[root@linux-node1 zabbix]# cd /usr/share/zabbix/
[root@linux-node1 zabbix]# ls api_jsonrpc.php
api_jsonrpc.php
[root@linux-node1 zabbix]# ls api_jsonrpc.php -l
-rw-r--r-- 1 root root 2342 Apr 20 2016 api_jsonrpc.php
[root@linux-node1 zabbix]#
可以看到,首先它是个api,传输模式是rpc的,传输格式是json的
既然是api,那肯定有验证,给api发用户名密码,得返回token吧
后面拿这个token就可以继续请求了,和openstack类似
打开文档看
https://www.zabbix.com/documentation/2.4/manual/api/reference
第一步,因为涉及登录,找用户相关的

Authenticate a user.
Request:
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": "0424bd59b807674191e7d77572075f33",
"id": 1
}
通过curl访问
-s 静默
-X POST
-H 接类型
-d 接内容,用单引号引起来
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://10.0.1.161/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":"5733cec620a75d1f7e2ebcf725c7ccec","id":1}[root@linux-node2 ~]#
[root@linux-node2 ~]#
看着不舒服,给它处理下,调用python的工具处理下,命令如下
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
执行如下
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
>
> {
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix"
> },
> "id": 1
> }' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
{
"id": 1,
"jsonrpc": "2.0",
"result": "d05f9fa13c8b182d61e462b8aaded670"
}
[root@linux-node2 ~]#
上面为什么要设置id,因为可能又多个请求,给不同的会话设置不同的id
你才知道这个是你的
把这个字符串记录下来
d05f9fa13c8b182d61e462b8aaded670
你请求的时候还可以加个下面userdata为true,这样还能返回用户信息
命令如下
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix",
"userData": true
},
"id": 1
}' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
执行如下
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
> {
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix",
> "userData": true
> },
> "id": 1
> }' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"alias": "Admin",
"attempt_clock": "0",
"attempt_failed": "0",
"attempt_ip": "",
"autologin": "1",
"autologout": "0",
"debug_mode": false,
"gui_access": "0",
"lang": "en_GB",
"name": "Zabbix",
"refresh": "30",
"rows_per_page": "50",
"sessionid": "dbfdc9c932d15760f0ed05bb5955511b",
"surname": "Administrator",
"theme": "default",
"type": "3",
"url": "",
"userid": "1",
"userip": "10.0.1.162"
}
}
[root@linux-node2 ~]#
https://www.zabbix.com/documentation/2.4/manual/api/reference/user/get
找一个简单的,只获取hostid,注意auth是sessionid
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["hostid"]
},
"auth": "dbfdc9c932d15760f0ed05bb5955511b",
"id": 2
} ' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
执行结果如下,hostid是10084
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
> {
> "jsonrpc": "2.0",
> "method": "host.get",
> "params": {
> "output": ["hostid"]
> },
> "auth": "dbfdc9c932d15760f0ed05bb5955511b",
> "id": 2
> } ' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
{
"id": 2,
"jsonrpc": "2.0",
"result": [
{
"hostid": "10084"
}
]
}
[root@linux-node2 ~]#
hostid就是下面这里的

curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["host"]
},
"auth": "dbfdc9c932d15760f0ed05bb5955511b",
"id": 2
} ' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
执行结果如下
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
> {
> "jsonrpc": "2.0",
> "method": "host.get",
> "params": {
> "output": ["host"]
> },
> "auth": "dbfdc9c932d15760f0ed05bb5955511b",
> "id": 2
> } ' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
{
"id": 2,
"jsonrpc": "2.0",
"result": [
{
"host": "Zabbix server",
"hostid": "10084"
}
]
}
[root@linux-node2 ~]#
接下来使用api方式添加被监控主机
https://www.zabbix.com/documentation/2.4/manual/api/reference/host/create

创建的时候可以指定模板,以及主机组

在官网里看到实例如下,添加主机的时候可以指定模板,主机组,资产
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "Linux server",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.3.1",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "50"
}
],
"templates": [
{
"templateid": "20045"
}
],
"inventory_mode": 0,
"inventory": {
"macaddress_a": "01234",
"macaddress_b": "56768"
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
查看linux servers这个主机组,它的组id是2

先获取授权的sessionid
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
根据返回的sessionid来创建主机
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
{
"id": 1,
"jsonrpc": "2.0",
"result": "4c0999123f2da1b09b6a079c02a363ad"
}
[root@linux-node2 ~]#
执行命令如下
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "Linux server",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "10.0.1.162",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"id": 1,
"auth": "4c0999123f2da1b09b6a079c02a363ad"
}' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
执行结果如下
[root@linux-node2 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '
> {
> "jsonrpc": "2.0",
> "method": "host.create",
> "params": {
> "host": "Linux server",
> "interfaces": [
> {
> "type": 1,
> "main": 1,
> "useip": 1,
> "ip": "10.0.1.162",
> "dns": "",
> "port": "10050"
> }
> ],
> "groups": [
> {
> "groupid": "2"
> }
> ],
> "templates": [
> {
> "templateid": "10001"
> }
> ]
> },
> "id": 1,
> "auth": "4c0999123f2da1b09b6a079c02a363ad"
> }' http://10.0.1.161/zabbix/api_jsonrpc.php |python -mjson.tool
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"hostids": [
"10116"
]
}
}
[root@linux-node2 ~]#
创建成功

点开看看

模板也自动加上了

Zabbix-2.4-安装-4的更多相关文章
- zabbix 3.0 安装 ubuntu环境
zabbix 3.0 安装 标签(空格分隔): 开发 [TOC] 下载deb # wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/z ...
- zabbix windows angent安装:
zabbix windows angent安装:1.下载zabbix agent for windows客户端,直接解压到C盘下.C:\zabbix 的目录015/04/21 11:16 <DI ...
- Zabbix概念、安装以及快速入门
Zabbix is an enterprise-class open source distributed monitoring solution.[1] Zabbix是一个企业级的.开源的.分布式的 ...
- 【zabbix系列】安装与加入host
測试环境 Ubuntu 14.04.1 LTS [服务端安装] 关于安装官方提供了非常具体的安装方法,包含各平台的源代码及包安装.关于其它版本号Linux请參考 https://www.zabbix. ...
- zabbix源码安装实例
环境 系统 Centos7 zabbix版本 Zabbix 3.4.15 (revision 86739) zabbix源码安装 .tar.gz cd zab ...
- zabbix学习笔记----安装----2019.03.26
1.zabbix官方yum源地址:repo.zabbix.com 2.安装zabbix server zabbix server使用mysql作为数据库,在zabbix 3.X版本,安装zabbix- ...
- zabbix客户端的安装、zabbix主被动模式、添加主机模板等、处理页面的中文乱码
1.zabbix客户端的安装: 如下步骤: wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch. ...
- 运用Zabbix实现内网服务器状态及局域网状况监控(3) —— Zabbix服务端安装
1. Zabbix服务端安装,基于LNMP PHP5.5+Nginx1.9安装配置:http://www.cnblogs.com/vurtne-lu/p/7707536.html MySQL5.5编译 ...
- CentOS7 zabbix服务 简单安装文档
1. 简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快 ...
- zabbix v3.0安装部署
这篇文章没有写明init的部分要注意 zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白 ...
随机推荐
- 1040 有几个PAT
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T). 现 ...
- CPU的硬件结构和汇编语言
(已更正) 这个问题包括CPU的硬件结构和汇编语言的范畴. 这里梳理一下. 首先, 题主"李建国"自问自答的部分说的是正确的, CPU的指令集是软件与CPU这两个层级之间的接口, ...
- 一、TCP扫描技术
一.TCP扫描技术 常用的端口扫描技术有很多种,如 TCP connect() 扫描 .TCP SYN 扫描.TCP FIN 扫描 等,网络上也有很多文章专门介绍,比如 :http://www.ant ...
- 201621123001 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. Mysql数据库简单操作,常用的操作命令 启动:进入Mysql (从命令行mysql -u root -p) 退 ...
- 创建自己的docker基础镜像
1.下载镜像 centos7 docker pull centos: 2.创建容器加载镜像 docker run -i -t --name centos7 centos: docker run 参数详 ...
- sptring boot 修改默认Banner
一.自定义banner 启动Spring Boot项目时,在控制台或日志中会默认显示一个Banner,如图所示: 在我们的项目中更希望使用自己的Banner,这样看起来更帅写,但是这对于程序员来说并不 ...
- VS2010,MFC动态按钮和窗体背景图片,以及是静态文字控件透明,并避免静态文字刷新出现的重叠问题
1.动态按钮的四种动作 1)正常 2)按下 3)滑过 4)失效 在MFC中,4个动作对应着四种位图bmp, 首先,将代表四种状态的位图加载入资源中,将对应的按钮设置为BitmapButton 第二,在 ...
- ios 汽车品牌展示案例
汽车组模型 // ZQRGroup.h #import <Foundation/Foundation.h> @interface ZQRGroup : NSObject /** *组标题 ...
- 电脑快捷键与JAVA关键字、运算符
电脑快捷键: Alt+ESC切换到上一个操作的窗口 Alt+F4关闭当前窗口 Print Screen截取当前全屏幕到剪切板 Alt+Print Screen截取当前窗口到剪切板 Alt+Shift在 ...
- PHP中PSR-[0-4]规范(转)
PHP中PSR-[0-4]规范 更好排版:https://www.zybuluo.com/phper/note/65033 PHP是世界上最伟大的语言,这一点是毋庸置疑的吧.哈哈哈哈哈哈 .这个霸气的 ...