zabbix监控结合睿象云报警平台及API调用

1、zabbix监控结合睿象云报警平台

由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想出现故障时,报警提醒我们。睿象云就有这个功能,他的官方网站是https://www.aiops.com/。
首先和前面一样,准备三台虚拟机,server1作zabbix的server端,server2和server3作zabbix的agent端,本文前提是zabbix已经配置好。
睿象云需要联网,所以真机打开地址伪装功能,使得server1可以联网报警。

iptables -t nat -I POSTROUTING  -s 172.25.3.0/24 -j MASQUERADE	#打开地址伪装功能
ping www.baidu.com												#测试

注册睿象云账号并登陆,添加集成---->监控工具,创建zabbix报警,获得AppKey。
在这里插入图片描述
在这里插入图片描述
进入报警文件读取目录

cd /usr/lib/zabbix/alertscripts
tar zxf ca_zabbix_release-3.0.1.tar.gz 			#解压云报警插件
cd cloudalert/bin/								#进入解压目录
./install.sh 839925ff85a546bcb56ee10549b82c96	#执行安装脚本(使用刚才的appkey)
#输入账号Admin,初始密码为zabbix认证,地址为http://172.25.11.1/zabbix

在这里插入图片描述
zabbix中禁用报警媒介类型
在这里插入图片描述
启用云报警动作
在这里插入图片描述
睿象云中配置通知策略,这里我选择的是微信通知
在这里插入图片描述
在这里插入图片描述
测试:停用server2的zabbix-agent

[root@server2 zabbix_agentd.d]# systemctl stop zabbix-agent.service

Zabbix网页中,检测->问题,最下边查看报警状态,并且已送达给云报警平台。(如果这里报警信息存在,但是红色显示没有送达,说明zabbix正常检测,但是无法给睿象云发送,查看报错信息,说睿象云路径不对,重新安装。如果报错以前的什么东西已存在,查看睿象云的官方集成文档,里面有错误修复方式)
在这里插入图片描述
在睿象云平台告警->显示新奇事件,出现一条待处理的信息
在这里插入图片描述
同时微信页发出报警信息,
在这里插入图片描述
然后点击认领,该状态进入处理中状态
在这里插入图片描述
现在修复错误,重新打开server2客户端,等待,已修复,该状态进入已关闭状态
在这里插入图片描述

2、API调用

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:

1、 创建新的应用程序以使用Zabbix;
2、将Zabbix与第三方软件集成;
3、自动执行常规任务。

打开zabbix操作手册https://www.zabbix.com/documentation/4.0/zh/manual/api,---->19.API
首先验证,创建一个zabbix.api脚本,内容如下

curl -s -XPOST http://172.25.11.1/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

sh zabbix.api执行该脚本进行验证获取身份验证令牌token。
在这里插入图片描述
我们现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。 例如,让我们使用 host.get 方法检索所有已配置主机的ID

curl -s -XPOST http://172.25.11.1/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": "5ba5fb5cd38018ca577eea3374647e3e" ##该处令牌要用上边的结果
}' | python -m json.tool

执行后可以检索到所有客户端和服务端
在这里插入图片描述
zabbix操作手册,19.API->方法索引->host主机->删除
接下来测试删除,修改脚本进行删除

curl -s -XPOST http://172.25.11.1/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10267"  #这个号是准备删除的主机的hostid,可以通过点击主机->server3,网址处就会显示
    ],
    "auth": "5ba5fb5cd38018ca577eea3374647e3e",
    "id": 2
}' | python -m json.tool

执行后可以在网页上看到确实删除了server3
接下来测试创建,修改脚本进行创建

curl -s -XPOST http://172.25.11.1/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": "172.25.11.3",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "auth": "5ba5fb5cd38018ca577eea3374647e3e",
    "id": 2
}' | python -m json.tool

执行后,可以看到server3又添加进来群组了。

我们也可以添加一个新的监控,并执行

curl -s -XPOST http://172.25.11.1/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "item.create",
    "params": {
        "name": "Free disk space on $1",
        "key_": "vfs.fs.size[/home/joe/,free]",
        "hostid": "10267",
        "type": 0,
        "value_type": 3,
        "interfaceid": "1",
        "delay": "30s"
    },
    "auth": "5ba5fb5cd38018ca577eea3374647e3e",
    "id": 2
}' | python -m json.tool

网页中Server3添加一个trapper,类型为采集器,键值trap(自己设定),信息类型文本
在这里插入图片描述
Server3安装yum install zabbix-sender(如果不行,yum源添加zabbix模块)

zabbix_sender -z 172.25.11.1 -s "server3" -k trap -o "hello westos" #发送消息给服务端

在网页中监测->最新数据->名称(test)。就可以看到server3给服务端发的消息,hello westos

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐