一、Zabbix-java-tomcat
server端:
1、安装zabbix-java-gateway软件
yum install -y zabbix-java-gateway.x86_64
systemctl start zabbix-java-gateway
netstat -antulpe | grep 10052 #查看是否有10052这个端口
2.编辑zabbix_server.conf配置文件
vim /etc/zabbix/zabbix_server.conf
///
288 JavaGateway=172.25.51.1 #zabbix java gataway的IP
296 JavaGatewayPort=10052 #zabbix java gateway的端口
304 StartJavaPollers=5 # 从javaGateway采集数据的进程数
\\\
systemctl restart zabbix-server
5、编辑zabbix_java_gateway.conf 文件
vim /etc/zabbix/zabbix_java_gateway.conf
\\\
9 LISTEN_IP="172.25.63.4" #ip
7 LISTEN_PORT=10052 #端口
35 START_POLLERS=5 #开启的线程数
///
systemctl restart zabbix-java-gateway.service
被监控的server3里:
1、在被监控端server3安装jdk和tomcat
yum install java -y
tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
2、配置
cd /usr/local/
ln -s apache-tomcat-8.5.24 tomcat #做软链接,方便管理
3、编辑脚本文件
vim /usr/local/tomcat/bin/catalina.sh
4、启动tomcat服务
cd /usr/local/tomcat/bin
./startup.sh
netstat -antulpe | grep 8080
netstat -antulpe | grep 8888
配置zabbix浏览器端:
添加jmx接口:
添加JMX模板:
主机界面进行查看
查看JMX是否可用(JMX是绿色的才是正确的)
二、Zabbix-proxy
- 当监控规模变得庞大时,我们可能有成千上万台设备需要监控,如果部署多套zabbix监控系统,那么监控压力将会被分摊,但是,这些监控的对象将会被尽量平均的分配到不同的监控系统中,这个时候,我们就无法通过统一的监控入口,去监控这些对象了,虽然分摊了监控压力,但是也增加了监控工作的复杂度,那么,我们到底该不该建立多套zabbix监控系统从而分摊巨大的监控压力呢?
- 其实,zabbix天生就有处理这种问题的能力,因为zabbix支持分布式监控,我们可以把成千上万台的被监控对象分成不同的区域,每个区域中设置一台代理主机,区域内的每个被监控对象的信息被agent采集,提交给代理主机,在这个区域内,代理主机的作用就好比zabbix server,我们称这些代理主机为zabbix proxy,zabbix proxy再将收集到的信息统一提交给真正的zabbix server处理,这样,zabbix proxy分摊了zabbix server的压力,同时,我们还能够通过统一的监控入口,监控所有的对象。
server1(zabbix-server,zabbix-agent)
server2(zabbix-agent)
server4(proxy)
1、做解析:
在server2和server3中也需要做解析
vim /etc/hosts
2、关闭邮件报警
由于现在需要server4做代理主机,因此需要关闭之前实验在server4上配置的zabbix-agent,同样在网页端关闭邮件报警的功能
3、下载proxy和mariadb
yum install zabbix-proxy-mysql.x86_64 -y
yum install mariadb-server -y
systemctl start mariadb
4、配置数据库
mysql_secure_installation #改密码
mysql_secure_installation
>create database zabbix_proxy character set utf8 collate utf8_bin;
#创建zabbix_proxy数据库,因为之后要在web界面进行操作,为了防止乱码,这里创建的数据库要求格式为utf-8
>grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix_proxy';
#创建zabbix用户,并对其进行授权
5、导入数据库
cd /usr/share/doc/zabbix-proxy-mysql-4.4.1/
zcat schema.sql.gz | mysql -pwestos zabbix_proxy
6、编辑zabbix-proxy的配置文件
vim /etc/zabbix/zabbix_proxy.conf
///
30 Server=172.25.51.1
39 ServerPort=10051
49 Hostname=proxy
173 DBName=zabbix_proxy
188 DBUser=zabbix
196 DBPassword=redhat
338 JavaGateway=172.25.51.1
346 JavaGatewayPort=10052
354 StartJavaPollers=5
///
systemctl start zabbix-proxy
7、配置zabbix-agent server2:
vim /etc/zabbix/zabbix_agentd.conf
\\\
98 Server=172.25.51.4
139 ServerActive=172.25.51.4
\\\
systemctl restart zabbix-agent
8、zabbix 浏览器端:
三、睿象云报警
1、真机配置ip地址伪装:
iptables -t nat -I POSTROUTING -s 172.25.3.0/24 -j MASQUERADE #真机
ping baidu.com #双方都ping通
2、解压文件,配置连接
cd /usr/lib/zabbix/alertscripts/cloudalert/bin
tar -xzf /mnt/ca_zabbix_release-3.0.1.tar.gz
ls
cd cloudalert/bin/
./install.sh a9bf40fb308c4fd98a622244003c8443 #获取的key
#用户名:Admin
#密码:zabbix
#访问地址:http://172.25.3.6/zabbix
3、看日志是否报错,重启服务
cat /var/log/zabbix/zabbix_server.log
systemctl restart zabbix-server.service
4、查看报警类型
5、动作详情
6、配置Cloud Alert通知策略
7、测试
systemctl stop httpd #被监控主机server2停用httpd
三、API调用
- Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:创建新的应用程序以使用Zabbix; 将Zabbix与第三方软件集成;自动执行常规任务。
- Zabbix API是基于Web的API,作为Web前端的一部分提供。该API包含一组独立的方法;客户端和API之间的请求和响应使用JSON格式进行编码。大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据。当完成了前端的安装配置后,你就可以使用远程HTTP请求来调用API。
1.验证API请求
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。
curl -s -XPOST http://172.25.51.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": "490f5ccc9fe26113508b91902ef131f7" #这一串就是令牌
}
2.API检索主机
curl -s -XPOST http://172.25.51.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": "d88d3878dbd052b8be7a7d83ca216064"
> }' | python -m json.tool
检索结果:
{
"id": 2,
"jsonrpc": "2.0",
"result": [
{
"host": "Zabbix server",
"hostid": "10084",
"interfaces": [
{
"interfaceid": "1",
"ip": "127.0.0.1"
}
]
},
{
"host": "server2",
"hostid": "10264",
"interfaces": [
{
"interfaceid": "3",
"ip": "172.25.51.2"
}
]
},
{
"host": "server3",
"hostid": "10265",
"interfaces": [
{
"interfaceid": "4",
"ip": "172.25.51.3"
},
{
"interfaceid": "5",
"ip": "172.25.51.3"
}
]
}
]
}
3.删除
curl -s -XPOST http://172.25.51.1/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
> {
> "jsonrpc": "2.0",
> "method": "host.delete",
> "params": [
> "10265"
> ],
> "auth": "d34d0f43fab38f835dc4ea9267d483e8",
> "id": 1
> }
> ' |python -m json.tool
删除结果:zabbix上web监控的主机被删除。
帮助文档:link