linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)

将一台主机添加进zabbix server进行监控 配置zabbix agent
172.25.13.120
安装服务 yum install zabbix-agent.x86_64 -y
修改配置文件: /etc/zabbix/zabbix_agentd.conf

vim /etc/zabbix/zabbix_agentd.confServer=172.25.13.110# 指定server主机,指定之后agent主机主动上报数据给server主机 ServerActive=172.25.13.110# 开启之后,server主机主动前来agent主机提取数据 Hostname=toto2# 指定本机的主机名称

启动服务,并设置服务开机自动启动
systemctl start zabbix-agent.service systemctl enable zabbix-agent.service

开启之后查看10050端口开启情况:已经正常开启
[root@toto2 ~]# netstat -antlp |grep 10050 tcp00 0.0.0.0:100500.0.0.0:*LISTEN11618/zabbix_agentd tcp600 :::10050:::*LISTEN11618/zabbix_agentd

1、手动添加主机: 配置–>主机–>右上角创建主机–>主机:主集名称toto,可见名称toto2,群组添加linux server ,agent代理程序的接口,ip地址:172.25.13.120–>模板:链接指器,Template OS Linux -->点击最下面的添加.
linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

然后在配置,主机,里面看是否添加成功。
linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

需要一个一个的去进行添加。当需要进行添加的服务器数量加大的时候,实现存在困难
2 、设置自动发现: 必须先进行配置动作,再进行配置自动发现
先在配置选项下面的动作选项:
  • 动作里面的动作:选择右上角为自动发现—>点击右上角创建动作—>设置名称,添加新的触发条件:主机ip 等于
    192.168.0.1-127,192.168.2.1(还可以继续点击新的添加其他的限制条件)动作创建完成;
  • 动作里面的操作:默认标题以及消息内容可以使用默认,操作中点击新的选择台加的主机群组以及连接的模板或者还继续添加新的操作。
  • 最后点击添加
配置自动发现:
创建自动发现规则,填写名称;ip范围;更新间隔;检查等:(Zabbix 客户端 “system.uname”)选中已启用
linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

然后查看新的主机是否被发现上线。
该过程是已经配置的好的agent主机,需要等待着被server主机按照一定的频率以及一定的条件(都在规则中进行规定)发现之后才能添加进监控。
3、设置自动注册:
  • Zabbix Active
    agent可以实现自动注册,进而服务器对其进行监控。通过这种方式,无需在服务器上进行手动配置便可直接启动对新host的监控。
  • 当以前未知的active agent要求检查时,会发生自动注册。
  • 这样功能可以非常方便的自动监控新的Cloud节点。一旦在Cloud中有一个新节点,Zabbix将自动启动host的性能和可用性数据的收集。
过程:
在配置—>动作—>选择右上角为自动注册—>点击创建动作—>名称(随便写);新的触发条件 (主机名称 :toto2);已启用选中;操作 新的,添加主机;添加到主机群组 linux server;链接到模板 template os linux;添加;
linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

差一个图!:
重新启动toto2主机上的zabbix-agent服务。然后等待toto2 主机被自动添加
linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

4 、api api 应用程序编程接口。是一些预先定义的函数,或指软件系统不同组成部分衔接的约定 。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节
操作系统向编程人员提供了“程序与操作系统的接口,简称程序接口,又称应用程序接口 API(Application Programming Interface)。 该接口是为程序员在编程时使用的,系统和应用程序通过这个接口,可在执行中访问系统中的资源和取得 OS 的服务,它也是程序能取得操作系统服务的惟一途径。大多数操作系统的程序接口是由一组系统调用(system call)组成,每一个系统调用都是一个能完成特定功能的子程序 。
Zabbix API由许多名义上分组的独立API方法组成。每个方法执行一个特定任务
大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。
示例 1 验证:在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。
编辑脚本,运行来获取身份验证令牌:
vim zabbix-api.sh
[root@toto1 ~]# curl -s -XPOST -H 'Content-Type: application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1, "auth": null }' http://172.25.13.110/zabbix/api_jsonrpc.php |python -m json.tool

让我们仔细看看示例请求对象。它具有以下属性:jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0; method - 被调用的API方法名; params - 将被传递给API方法的参数; id - 请求的任意标识符; auth -用户认证令牌; 因为我们还没有一个,它的设置null。

给文件执行权限:
[root@toto1 ~]# chmod +x zabbix-api.sh [root@toto1 ~]# ll total 8 drwx------ 7 root root 4096 Jul6 23:03 7.6zabbix -rwxr-xr-x 1 root root287 Jul7 03:05 zabbix-api.sh

运行脚本获得身份验证令牌:
[root@toto1 ~]# ./zabbix-api.sh { "id": 1, "jsonrpc": "2.0", "result": "bceaae1c86e8af627c7de0fc7de35825" }

响应对象又包含以下属性:jsonrpc - JSON-RPC协议的版本; result - 方法返回的数据; id - 相应请求的标识符。

【linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)】-2 检索主机
我们现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。 例如,让我们使用 host.get 方法检索所有已配置主机的ID,主机名和接口 :
只需要修改: zabbix-api.sh 脚本内容
curl -s -XPOST -H 'Content-Type: application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "host.get", "params": { "output": [ "hostid", "host" ], "selectInterfaces": [ "interfaceid", "ip" ] }, "id": 1, "auth": "bceaae1c86e8af627c7de0fc7de35825"# 该处是上面获得的身份令牌 }' http://172.25.13.110/zabbix/api_jsonrpc.php |python -m json.tool

返回结果:
[root@toto1 ~]# ./zabbix-api.sh { "id": 1, "jsonrpc": "2.0", "result": [ { "host": "Zabbix server", "hostid": "10084", "interfaces": [ { "interfaceid": "1", "ip": "127.0.0.1"# 显示已经添加进监控的主机Zabbix server } ] }, { "host": "toto2", "hostid": "10264", "interfaces": [ { "interfaceid": "3", "ip": "172.25.13.120"# 显示已经添加进监控的主机toto2 } ] } ] }

3 删除主机:
使用 host.delete 方法删除指定的主机。
curl -s -XPOST -H 'Content-Type: application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "host.delete", "params": [ "10264" ], "id": 1, "auth": "bceaae1c86e8af627c7de0fc7de35825" }' http://172.25.13.110/zabbix/api_jsonrpc.php |python -m json.tool

运行结果:
[root@toto1 ~]# ./zabbix-api.sh { "id": 1, "jsonrpc": "2.0", "result": { "hostids": [ "10264"#该主机已经被从监控中删除了 ] } }

linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

4 添加主机:
curl -s -XPOST -H 'Content-Type: application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "host.create",# 模块添加主机 "params": {# 主机信息设置 "host": "toto2",# 主机名称 "interfaces": [# 接口设置 { "type": 1, "main": 1, "useip": 1, "ip": "172.25.13.120",# 主机ip "dns": "", "port": "10050"# 监控端口 } ], "groups": [ { "groupid": "2"# 主机群组 } ], "templates": [ { "templateid": "10001"# 连接的模板 } ] }, "id": 1, "auth": "bceaae1c86e8af627c7de0fc7de35825" }' http://172.25.13.110/zabbix/api_jsonrpc.php |python -m json.tool

运行结果:
[root@toto1 ~]# ./zabbix-api.sh { "id": 1, "jsonrpc": "2.0", "result": { "hostids": [ "10266"# 添加成功之后身成的hosttid ] } }

查看已经添加主机toto2到监控中
linux运维—zabbix监控的四种添加主机方式(手动、自动发现、自动注册、API)
文章图片

还可以参官方文档进行其他操作。

    推荐阅读