Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)

1 配置主机

按照以下步骤在Zabbix前端创建一台主机:

  • 进入:配置 → 主机
  • 在右侧点击 创建主机 (或者在主机名上编辑一台已有的主机)
  • 在表单中输入主机的相关参数

你可以在已经存在的主机上使用 Clone 和 Full clone 按钮的形式创建一台新的主机,点击 Clone 将保留所有的主机参数和模板链接(保留这些模版中的所有实体),Full clone 将额外保留直接附加的实体(应用集、监控项、触发器、视图、底层自动发现规则和Web定制的场景)。

注意: 当主机被克隆时,它将保留最初在模板上的所有模板实体. 在现有主机级别上对这些实体所做的任何更改(例如更改的监控间隔、修改正则表达式或添加原型到底层发现规则)都不会克隆到新主机;相反,而是与最初模板一致。

配置
  1. 安装zabbix-agent,配置/etc/zabbix/zabbix-agent.conf
Server=172.25.254.1 被动模式,表示当监控数据有变化时,zabbix-agent需要等待zabbix-server过来采集数据,而不是主动将监控采集数据发送给zabbix-server
ServerActive=172.25.254.1 主动模式,与上面相反
  1. 启动zabbix-agent,并设置开机自启动
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
Hostname=server2
  1. 进入web页面开始配置(手动方式配置)
属性 描述
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 选中此项激活主机,准备接受监控。如果没选中,表示主机未激活,不能被监控。

####配置主机
Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第1张图片

####添加模板
Templates 选项卡允许你将templates 链接到主机。所有实体(监控项, 触发器, 图表和应用集)将从模板继承。

要链接一个新模板,请开始在Link new templates 区域键入,直到匹配键入的模板列表出现。向下滚动选择你希望链接的模板。当所有的模板链接完成后,单击Add.

要取消链接模板,请使用Linked templates区域的两个选项之一:

Unlink - 取消链接模板,但保留它的监控项、触发器和图表
Unlink and clear - 取消链接模板并删除所有它的监控项、触发器和图表

Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第2张图片

####此时在web页面就可看到server2主机已经被添加

Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第3张图片

从上面添加主机步骤来说,难度不大,但是,如果要管理成百上千的主机,那么这个工作量就十分大了,此时就需要自动可以去添加主机,降低成本。下面我们来实现自动发现添加主机
####自动发现添加主机

  1. 点击动作,事件源选择自动发现,激活该动作,然后进入自动发现,
    Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第4张图片
  2. 在自动发现选项下,选择Local network进入配置该规则,或者也可以自己创建规则,配置完成后启动。
    注意你的IP范围,zabbix-server只能自动发现在该范围内的主机
    Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第5张图片

此时我们可以看到已经自动发现两台主机
Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第6张图片Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第7张图片

自动发现的确可以管理大批量主机,但是如果对于不同服务的主机需要自定义模板,则可以通过自动注册去实现。
配置自动注册规则:
1.点击动作,事件源选择自动注册,创建规则
Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第8张图片
操作里面就是你自定义配置模板的一些配置
Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第9张图片
动作里面就是你创建的规则的名称和条件
完成后进入主机可以看到已经注册到的主机
Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第10张图片

上面三种方法都是在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已经没有了

Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第11张图片

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"
        ]
    }
}

此时网页也会显示server2已经添加成功
Zabbix-配置主机(手动添加,自动发现、自动注册、API调用)_第12张图片

你可能感兴趣的:(Zabbix-配置主机(手动添加,自动发现、自动注册、API调用))