按照以下步骤在Zabbix前端创建一台主机:
你可以在已经存在的主机上使用 Clone 和 Full clone 按钮的形式创建一台新的主机,点击 Clone 将保留所有的主机参数和模板链接(保留这些模版中的所有实体),Full clone 将额外保留直接附加的实体(应用集、监控项、触发器、视图、底层自动发现规则和Web定制的场景)。
注意: 当主机被克隆时,它将保留最初在模板上的所有模板实体. 在现有主机级别上对这些实体所做的任何更改(例如更改的监控间隔、修改正则表达式或添加原型到底层发现规则)都不会克隆到新主机;相反,而是与最初模板一致。
Server=172.25.254.1 被动模式,表示当监控数据有变化时,zabbix-agent需要等待zabbix-server过来采集数据,而不是主动将监控采集数据发送给zabbix-server
ServerActive=172.25.254.1 主动模式,与上面相反
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
Hostname=server2
属性 | 描述 |
---|---|
Host name | 输入一个唯一的主机名。允许有字母、空格、圆点、破折号和下划线。 注意: 由于 Zabbix agent 运行在你所配置的那台主机上,所以此 agent 配置文件 的参数 Hostname 必须和这里输入的主机名是一致的。 在配置 主动代理检查 的过程中参数中的主机名也是需要的。 |
Visible name | 显示名称。如果你设置了这个名称,它将会在列表、拓扑图等地方显示。此属性支持 UTF-8 。 |
Groups | 选择主机所属主机组。一个主机必须至少属于一个主机组。通过添加不存在的组名,可以创建新组并将其链接到主机组。 |
Interfaces | 主机支持多种主机接口类型: Agent, SNMP, JMX 和 IPMI.要增加一个新接口,在 Interfaces 区域点击 Add 并输入 IP/DNS, Connect to 和 Port 信息。注意: 用在任何监控项的接口都不能被删除,并且Remove链接是灰色的。对 SNMP 接口使用 Use bulk requests 选项来为每个接口启用和禁用SNMP请求的 批量处理。 |
IP address | 主机的IP地址(可选) |
DNS name | 连接到主机的DNS名称 |
Connect to | 点击对应的按钮告诉Zabbix服务器采用哪种模式从代理端获取数据:IP - 连接到主机的IP地址(推荐)DNS - 连接到主机的DNS名称 |
Port | TCP/UDP 端口. 默认端口:Zabbix agent 10050, SNMP agent 161 , JMX 12345 , IPMI 623. |
Default | 选择单选按钮设置默认接口. |
Description | 填写主机描述。 |
Monitored by proxy | 主机可以被Zabbix服务器或者Zabbix代理服务器监控: |
(no proxy) | 主机被Zabbix服务器监控 |
Proxy name | 主机被Zabbix代理服务器“代理服务器名称”监控 |
Enabled | 选中此项激活主机,准备接受监控。如果没选中,表示主机未激活,不能被监控。 |
####添加模板
Templates 选项卡允许你将templates 链接到主机。所有实体(监控项, 触发器, 图表和应用集)将从模板继承。
要链接一个新模板,请开始在Link new templates 区域键入,直到匹配键入的模板列表出现。向下滚动选择你希望链接的模板。当所有的模板链接完成后,单击Add.
要取消链接模板,请使用Linked templates区域的两个选项之一:
Unlink - 取消链接模板,但保留它的监控项、触发器和图表
Unlink and clear - 取消链接模板并删除所有它的监控项、触发器和图表
####此时在web页面就可看到server2主机已经被添加
从上面添加主机步骤来说,难度不大,但是,如果要管理成百上千的主机,那么这个工作量就十分大了,此时就需要自动可以去添加主机,降低成本。下面我们来实现自动发现添加主机
####自动发现添加主机
自动发现的确可以管理大批量主机,但是如果对于不同服务的主机需要自定义模板,则可以通过自动注册去实现。
配置自动注册规则:
1.点击动作,事件源选择自动注册,创建规则
操作里面就是你自定义配置模板的一些配置
动作里面就是你创建的规则的名称和条件
完成后进入主机可以看到已经注册到的主机
上面三种方法都是在web图形化界面配置,但是通过多次实验,当在网页配置完成后,有时候需要等待几秒钟,才会搜索到添加的主机,这样的确效率会不太高,因此下面我们将使用调用API 去通过代码管理主机,而且这种管理是实时性的,一旦运行代码,将会同时去配置好主机
1、登陆zabbix
# vim zabbix.api
# chmod +x zabbix.api
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.254.1/zabbix/api_jsonrpc.php | python -m json.tool
此时如果成功登陆zabbix,会显示下面响应信息
[root@server3 ~]# ./zabbix.api
{
"id": 1,
"jsonrpc": "2.0",
"result": "85590272d74887b5cc6f802f07e694d5"
}
2、获取主机信息
curl -s -XPOST -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"filter": {
"host": [
"server3"
]
}
},
"id": 1,
"auth": "85590272d74887b5cc6f802f07e694d5" #这里填写你登陆时产生的result的结果
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool
~
显示下面响应信息即为获取成功:
{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"auto_compress": "1",
"available": "1",
"description": "",
"disable_until": "0",
"error": "",
"errors_from": "0",
"flags": "0",
"host": "server3",
"hostid": "10267",
"ipmi_authtype": "-1",
"ipmi_available": "0",
"ipmi_disable_until": "0",
"ipmi_error": "",
"ipmi_errors_from": "0",
"ipmi_password": "",
"ipmi_privilege": "2",
"ipmi_username": "",
"jmx_available": "0",
"jmx_disable_until": "0",
"jmx_error": "",
"jmx_errors_from": "0",
"lastaccess": "0",
"maintenance_from": "0",
"maintenance_status": "0",
"maintenance_type": "0",
"maintenanceid": "0",
"name": "server3",
"proxy_address": "",
"proxy_hostid": "0",
"snmp_available": "0",
"snmp_disable_until": "0",
"snmp_error": "",
"snmp_errors_from": "0",
"status": "0",
"templateid": "0",
"tls_accept": "1",
"tls_connect": "1",
"tls_issuer": "",
"tls_psk": "",
"tls_psk_identity": "",
"tls_subject": ""
}
]
}
3、删除主机
curl -s -XPOST -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10267"
],
"auth": "85590272d74887b5cc6f802f07e694d5",
"id": 1
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool
得到下面响应结果为删除成功
[root@server3 ~]# ./zabbix.api
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"hostids": [
"10267"
]
}
}
此时在网页上查看,可以看到server3已经没有了
4、创建主机
curl -s -XPOST -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server2", #主机名
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.254.2", #创建的主机IP
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2" #填写主机组ID
}
],
"templates": [
{
"templateid": "10001" ###z这里使你的模板ID
}
]
},
"auth": "85590272d74887b5cc6f802f07e694d5",
"id": 1
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool
得到下面响应消息为创建成功
[root@server3 ~]# ./zabbix.api
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"hostids": [
"10269"
]
}
}