Linux运维之zabbix(二)添加监控主机

78 篇文章 3 订阅
70 篇文章 2 订阅

Linux运维之zabbix(二)添加监控主机

  • 添加监控主机的几种方式

实验环境准备:
server1:作为zabbix-server
server2:被监控的主机,作为zabbix-agent

在server2安装zabbix-agent:

vim /etc/zabbix/zabbix_agentd.conf

Server=172.25.254.1    # 指定server主机,指定之后agent主机主动上报数据给server主机
ServerActive=172.25.254.1   # 开启之后,server主机主动前来agent主机提取数据
Hostname=server2	 # 指定本机的主机名称

systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
  • 1.手动创建主机

配置–>主机–>右上角创建主机–>主机:主集名称toto,可见名称toto2,群组添加linux server ,agent代理程序的接口,ip地址:172.25.254.2–>模板:链接指器,Template OS Linux -->点击最下面的添加.

在这里插入图片描述
创建主机:
在这里插入图片描述
添加模板:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述手动添加完成后上面的zbx为灰色,还为启用,需要在server2上配置agent并且开启zabbix-agent服务

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
文件需要修改的内容如下: 
98 Server=172.25.254.1 
139 ServerActive=172.25.254.1 
150 Hostname=server2 
开启agent服务
[root@server2 ~]# systemctl start zabbix-agent

再次刷新页面,显示server2可用
在这里插入图片描述

  • 2.自动发现

1.在web页面创建自动发现
在这里插入图片描述
在这里插入图片描述
添加自动发现规则:
在这里插入图片描述
在这里插入图片描述
添加自动发现动作:
在这里插入图片描述
添加自动发现规则:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在主机server3上配置zabbix-agent

//zabbix-agent的安装 
[root@server3 ~]# ls 
anaconda-ks.cfg zabbix-agent-4.0.5-1.el7.x86_64.rpm (准备安装包) 
[root@server3 ~]# rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm 
[root@server3 ~]# ls 
anaconda-ks.cfg zabbix-agent-4.0.5-1.el7.x86_64.rpm 
[root@server3 ~]# rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm 

//配置文件的修改 
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf 
98 Server=172.25.254.1 
139 ServerActive=172.25.254.1 
150 Hostname=server3 

//开启zabbix-agent服务 
[root@server3 ~]# systemctl start zabbix-agent

再次刷新页面发现server3主机已经添加进来并且显示可用
在这里插入图片描述
在这里插入图片描述

  • 3.自动注册

删除server3主机,并且禁用自动发现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改动作为自动注册并且启用
在这里插入图片描述
创建动作:
在这里插入图片描述
为动作添加操作:
在这里插入图片描述
在这里插入图片描述
在server3上重新启动zabbix-agent服务,刷新页面查看
在这里插入图片描述

  • 4.api

api 应用程序编程接口。是一些预先定义的函数,或指软件系统不同组成部分衔接的约定 。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节

操作系统向编程人员提供了“程序与操作系统的接口,简称程序接口,又称应用程序接口 API(Application Programming Interface)。 该接口是为程序员在编程时使用的,系统和应用程序通过这个接口,可在执行中访问系统中的资源和取得 OS 的服务,它也是程序能取得操作系统服务的惟一途径。大多数操作系统的程序接口是由一组系统调用(system call)组成,每一个系统调用都是一个能完成特定功能的子程序 。

Zabbix API由许多名义上分组的独立API方法组成。每个方法执行一个特定任务

大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。

编辑脚本,运行来获取身份验证令牌:

vim zabbix-api.sh
[root@server1 ~]# 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

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

给文件执行权限:

[root@server1 ~]# chmod +x zabbix-api.sh
[root@server1 ~]# ll
total 8
drwx------ 7 root root 4096 Jul  6 23:03 7.6zabbix
-rwxr-xr-x 1 root root  287 Jul  7 03:05 zabbix-api.sh

运行脚本获得身份验证令牌:

[root@server1 ~]# ./zabbix-api.sh
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "bceaae1c86e8af627c7de0fc7de35825"
}

响应对象又包含以下属性:

    jsonrpc - JSON-RPC协议的版本;
    result - 方法返回的数据;
    id - 相应请求的标识符。

检索主机
我们现在有一个有效的用户身份验证令牌,可以用来访问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.254.1/zabbix/api_jsonrpc.php |python -m json.tool

返回结果:

[root@server1 ~]# ./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": "server2",
            "hostid": "10264",
            "interfaces": [
                {
                    "interfaceid": "3",
					 ip": "172.25.13.120"    # 显示已经添加进监控的主机server2
                }
            ]
        }
    ]
}

删除主机:
使用 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.254.1/zabbix/api_jsonrpc.php |python -m json.tool

运行结果:

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

添加主机:

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.13.120",  # 主机ip
                "dns": "",
                "port": "10050"   # 监控端口
            }
        ],
        "groups": [
            {
                "groupid": "2"   # 主机群组
            }
		],
        "templates": [
            {
                "templateid": "10001"   # 连接的模板
            }
        ]
    },
    "id": 1,
    "auth": "bceaae1c86e8af627c7de0fc7de35825"
}' http://172.25.254.1/zabbix/api_jsonrpc.php |python -m json.tool

运行结果:

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

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值