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
zabbix中禁用报警媒介类型 启用云报警动作 睿象云中配置通知策略,这里我选择的是微信通知 测试:停用server2的zabbix-agent
[root@server2 zabbix_agentd.d]
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
|