分布式部署、睿象云云告警平台与zabbix监控的结合、API
一、分布式部署
1.server4安装配置
安装zabbix-proxy,并配置
[root@server4 zabbix]# yum list zabbix-* #查看zabbix相关安装包
[root@server4 zabbix]# yum install zabbix-proxy-mysql.x86_64 -y
[root@server4 yum.repos.d]# cd /etc/zabbix/
[root@server4 zabbix]# ls
zabbix_proxy.conf
[root@server4 zabbix]# vim zabbix_proxy.conf #修改配置文件
162 DBHost=172.25.15.1
188 DBUser=zabbix
196 DBPassword=westos
[root@server4 zabbix]# systemctl start zabbix-proxy.service
[root@server4 zabbix]# systemctl enable --now zabbix-proxy.service #开启服务,并开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.
[root@server4 doc]# pwd
/usr/share/doc
[root@server4 doc]# cd zabbix-proxy-mysql-4.0.5/
[root@server4 zabbix-proxy-mysql-4.0.5]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@server4 zabbix-proxy-mysql-4.0.5]# scp schema.sql.gz server1:
[root@server4 zabbix-proxy-mysql-4.0.5]# hostnamectl set-hostname proxy
[root@server4 zabbix-proxy-mysql-4.0.5]# vim /etc/host
host.conf hostname hosts hosts.allow hosts.deny
[root@server4 zabbix-proxy-mysql-4.0.5]# vim /etc/hosts
[root@server4 zabbix-proxy-mysql-4.0.5]# cat /etc/hosts
[root@server4 zabbix-proxy-mysql-4.0.5]# cd /etc/zabbix/
[root@server4 zabbix]# vim zabbix_proxy.conf
30 Server=172.25.15.1
49 Hostname=proxy
196 DBPassword=westos
329 JavaGateway=172.25.15.1
345 StartJavaPollers=5
[root@server4 zabbix]# systemctl restart zabbix-proxy.service
2.server1配置
[root@server1 zabbix]# mysql -pwestos #进入数据库
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'%' identified by 'westos';
[root@server1 zabbix]# vim /etc/hosts
[root@server1 ~]# ls
percona-zabbix-templates-1.1.8-1.noarch.rpm schema.sql.gz
[root@server1 ~]# zcat schema.sql.gz | mysql -uzabbix -pwestos zabbix_proxy
[root@server1 ~]# systemctl enable --now zabbix-proxy.service
Failed to execute operation: No such file or directory
[root@server1 ~]# zabbix_server -R config_cache_reload
zabbix_server [22566]: command sent successfully
3.server3配置
[root@server3 tomcat]# vim /etc/hosts
[root@server3 tomcat]# cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@server3 zabbix]# vim zabbix_agentd.conf
98 Server=172.25.15.4
139 ServerActive=172.25.15.4
[root@server3 zabbix]# grep -v ^# /etc/zabbix/zabbix_agentd.conf | uniq
[root@server3 zabbix]# systemctl restart zabbix-agent.service
4.添加代理
5.添加代理检测
6.部署完成
查看日志
[root@server4 zabbix-proxy-mysql-4.0.5]# cat /var/log/zabbix/zabbix_proxy.log
二、睿象云云告警平台与zabbix监控的结合
1.安装 Agent
1、切换到zabbix脚本目录 (如何查看zabbix脚本目录):
[root@server1 ~]# cd /usr/lib/zabbix/alertscripts
2、获取Cloud Alert Agent包:
wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-3.0.1.tar.gz
3、解压、安装。
[root@server1 alertscripts] tar -xzf ca_zabbix_release-3.0.1.tar.gz
[root@server1 alertscripts]# cd cloudalert/
[root@server1 cloudalert]# cd bin/
[root@server1 bin]# ls
alert.sh funcs install.sh uninstall.sh
[root@server1 bin]# ./install.sh 0ac412dec1a449178a4f5e214f80f82c #加上网页分配的密钥
请输入Zabbix管理地址:http://172.25.15.1/zabbix
Check connection success!
请输入Zabbix管理员账号:Admin
请输入Zabbix管理员密码:*******
创建
安装
2.关闭zabbix无用服务
3.关闭server3造成错误
关闭server3 zabbix-agent服务
zabbix出现警告
4.睿象云创建通知策略
设置发现警告微信通知
5.设置zabbix服务端的网络:server1
真机:作地址伪装,使虚拟机可以上网
[root@foundation15 ~]# iptables -t nat -I POSTROUTING -s 172.25.15.0/24 -j MASQUERADE
[root@foundation15 ~]#
server1 测试连接百度
[root@server1 bin]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=52 time=75.5 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=2 ttl=52 time=53.9 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=3 ttl=52 time=69.7 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 53.930/66.400/75.571/9.142 ms
[root@server1 bin]#
zabbix成功连接网络,才能发送警告
5.微信收到警告通知
认领警告
处理警告
警告处理完成
重启server3的zabbix-agent服务
[root@server3 zabbix]# systemctl start zabbix-agent.service
微信通知处理完成
三、API
1.简介
官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/host/delete
-
概览
-
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
- 创建新的应用程序以使用Zabbix;
- 将Zabbix与第三方软件集成;
- 自动执行常规任务。
-
Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两件事:
- 该API包含一组独立的方法;
- 客户端和API之间的请求和响应使用JSON格式进行编码。
2.检索主机
我们现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。 例如,让我们使用 host.get 方法检索所有已配置主机的ID,主机名和接口 :
[root@server1 ~]# curl -s -XPOST http://172.25.15.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
{
"id": 1,
"jsonrpc": "2.0",
"result": "80a5eb32f8310aca7f7dbfa7de7507e6"
}
[root@server1 ~]# vim zabbix.api
[root@server1 ~]# cat zabbix.api
curl -s -XPOST http://172.25.15.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": "80a5eb32f8310aca7f7dbfa7de7507e6"
}' | python -m json.tool
[root@server1 ~]# sh zabbix.api #运行脚本,检索主机
检索到的结果
3.删除主机
删除关闭自动注册发现服务
删除
[root@server1 ~]# vim zabbix.api
[root@server1 ~]# cat zabbix.api
curl -s -XPOST http://172.25.15.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10264" ##server3主机id
],
"id": 2,
"auth": "80a5eb32f8310aca7f7dbfa7de7507e6"
}' | python -m json.tool
[root@server1 ~]# sh zabbix.api
{
"id": 2, #删除成功
"jsonrpc": "2.0",
"result": {
"hostids": [
"10264"
]
}
}
[root@server1 ~]#
查看删除成果
4.创建主机
[root@server1 ~]# vim zabbix.api
[root@server1 ~]# cat zabbix.api
curl -XPOST http://172.25.15.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.15.3",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10265"
}
]
},
"id": 1,
"auth":"80a5eb32f8310aca7f7dbfa7de7507e6"
}' | python -m json.tool
[root@server1 ~]# sh zabbix.api
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 649 100 55 100 594 95 1035 --:--:-- --:--:-- --:--:-- 1036
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"hostids": [
"10271"
]
}
}
修改创建脚本