一、手动添加
手动再web端添加,server端主动采集信息:
在网页监控端,配置---主机 中 创建主机:
添加agent,填好信息后添加主机
链接模板
此时server2已经被添加了,设置监控项
二、自动发现
在实际生产环境中,如果需要逐个添加监控对象,会耗费大量人力物力,这里我们可以使用一种规则来使服务端能够自动发现被监测的对象
agent配置
下来我们设置主机自动被发现,同样,再次配置一个server3
[root@server3 yum.repos.d]# yum install -y zabbix-agent
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf
...
Server=192.168.56.171
ServerActive=192.168.56.171
Hostname=server2
[root@server3 zabbix]# systemctl enable --now zabbix-agent.service
[root@server3 ~]# netstat -antlp |grep :10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 8336/zabbix_agentd
启用动作,选自动发现,打开自动发现的规则,更改ip段为已部署好的客户主机的ip范围,在检测处就可以看到,有默认的动作
可以看到server3已经被自动发现了。
三、自动注册
服务端自动发现的规则仍不是最优选择,客户端自动注册为监控对象将更加节省人力
操作步骤:
1、关闭自动发现,启用动作,选择自动注册,创建该动作,加的主机名为server,将主机群组和连接模板添加进去
2、重启客户端的systemctl restart zabbix-agent.service ,等待一段时间就可以在图形化界面中发现该客户主机
四、api使用
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
创建新的应用程序以使用Zabbix、将Zabbix与第三方软件集成、自动执行常规任务。
Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两点:
- 该API包含一组独立的方法;
- 客户端和API之间的请求和响应使用JSON格式进行编码。
大多数API至少包含四种方法: get,create,update 和 delete,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。
一下列举常用的api,更多的参见官网
获取token
在用zabbix api时,需要获取zabbix api token,请求的 Content-Type 头部必须设置为以下值之一: application/json-rpc, application/json 或 application/jsonrequest。
curl -s -X POST http://192.168.56.171/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}' | python -m json.tool
检索主机
curl -s -X POST http://192.168.56.171/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "2a1536963f6ba0eeed3d0c113b16dc50"
}' | python -m json.tool
删除主机
curl -s -X POST http://192.168.56.171/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10439"
],
"id": 2,
"auth": "2a1536963f6ba0eeed3d0c113b16dc50"
}' | python -m json.tool
创建主机
curl -s -X POST http://192.168.56.171/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server3",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.56.173",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"tags": [
{
"tag": "Host name",
"value": "server3"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"id": 2,
"auth": "2a1536963f6ba0eeed3d0c113b16dc50"
}' | python -m json.tool