zabbix结合nginx、mysql、proxy、睿象云报警、API批量操作
目录
- 一.zabbix server的nginx监控
- nginx部署
- 获取信息
- 二.Zabbix监控添加mysql
- 添加模板
- 倒入外部模板
- 手动测试如下:
- 三.zabbix server 的tomcat+jave 监控
- 四.Zabbix-agent主动模式 (全克隆)
- 五.Zabbix + proxy分布式
- 六.Zabbix+睿象云报警
- 七.使用API
- 介绍
- 获取身份验证
- 参数的意义
- 检索主机
- 删除主机
- 创建主机
一.zabbix server的nginx监控
nginx部署
链接: nginx包 提取码: vuck
在server2上进行:
tar zxf nginx-1.20.1.tar.gz
cd nginx-1.20.1
yum install gcc pcre-devel opensll-devel -y
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
make
make install
完成之后,
cd /usr/local/nginx/
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin
vim /usr/local/nginx/conf/nginx.conflocation /status {stub_status on;access_log off;allow 127.0.0.1;deny all;
}
启动服务
nginx或者nginx -s reload
curl http://127.0.0.1/status
因为配置文件写了,只允许本机,其他机子被拒绝!!如下:
获取信息
我们先在shell中测试一次,抓取是否成果!
curl -s http://localhost/status | grep Active | awk '{print $3}'
接下来,编写一个nginx脚本,通过agent获取信息!
cd /etc/zabbix/zabbix_agentd.d/
cp userparameter_mysql.conf userparameter_nginx.conf
把刚才在shell测试的抓取指令写进去:
vim userparameter_nginx.conf
完成之后,重启agent
systemctl restart zabbix-agent.service
接下来在server1上操作:
我们需要一个模板simkai.ttf
cd /usr/share/zabbix/fonts/
get simkai.ttf
rm -fr graphfont.ttf
ln -s simkai.ttf graphfont.ttfll graphfont.ttf
安装zabbix-get
yum install -y zabbix-get
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.active"
OK,接下来需要图形化添加监控
网页访问172.25.1.1/zabbix
先点击server2
点击右上角的创建监控:
注意键值必须和刚才指令get到的保持一致!
解析来创建图形:
可以选择图形类别
创建完成,点击更新,查看图形结果
当出现数值时表明图形添加成功。
添加更多nginx监控项:
curl -s http://localhost/status | awk NR==3 | awk '{print $1}'
curl -s http://localhost/status | awk NR==3 | awk '{print $2}'
curl -s http://localhost/status | awk NR==3 | awk '{print $3}'
添加到之前的配置文件里面
vim userparameter_nginx.conf
重启agent端服务读取脚本
systemctl restart zabbix-agent.service
我们在server1验证一下配置是否成功!
能输出数字,不报错即可!
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.accept"
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.handle"
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.request"
web界面手动添加监控项,然后添加到图形中。
将刚才的生成的三个键置名称添加进去!
分别添加三个监控项nginx_accept,nginx_handle,nginx_request
然后图形nginx_status添加监控项点击添加:
选中
完成之后,预览一下图形
二.Zabbix监控添加mysql
因为之前在server1搭建了mysql,为了节省资源,我们直接使用server1!
agent可以通过mysql的密码认证,在zabbix下建立隐藏文件,说明具体命令执行的用户、密码、socket:
[root@server1 ~]# mkdir /var/lib/zabbix
[root@server1 ~]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf
[mysql]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock[mysqladmin]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock[root@server1 zabbix]# mysqladmin password westos
[root@server1 zabbix]# systemctl restart zabbix-agent.service
添加模板
在网页进行操作:
查看图像
手动测试
只有有返回值说明就OK了
但是由于自带的mysq模板监控项太少了,所以我们需要手动添加模板
倒入外部模板
删掉刚才添加的mysql模板
下载需要的导入工具
链接:percona 提取码: bru2
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@server1 ~]# cd /var/lib/zabbix/percona/templates/
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# systemctl restart zabbix-agent.service
[root@server1 templates]# cd ..
[root@server1 percona]# cd scripts/
[root@server1 scripts]# vim ss_get_mysql_stats.php
修改真实的用户和密码如下:
重启服务:
systemctl restart zabbix-agent
手动测试如下:
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
[root@server1 scripts]# zabbix_get -s 127.0.01 -p 10050 -k "MySQL.Key-read-requests"
注意:手动测试之后会生成一个txt文件,这个文件生成的默认权限是root,因为访问的时候是用zabbix用户访问的!所以需要权限是zabbix的,所以需要删除调手动测试生成的文件!!
[root@server1 scripts]# cd /tmp/
[root@server1 tmp]# ls
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt
[root@server1 tmp]#ll localhost-mysql_cacti_stats.txt
[root@server1 tmp]# rm -fr localhost-mysql_cacti_stats.txt
现在导入外部模板。模板是我在网上下载好的,所以直接导入
链接: 模板提取码: wysw
把之前的模板取消链接并清理掉
接下来导入新的模板!
点击导入:
导入文件,然后把复合图形打钩!!
把模板下载到真机上即可,直接选择
然后点击导入!
接着选择zabbix server导入模板!
选择zabbix server
点击选择
选择
然后点击添加
在点击更新,如下,添加成功!
最后点击更新
完成之后,发现zabbix server的监控项变多了
注意这时候,点击触发器,需要禁用一个触发器!
往下寻找,如下图,点击已启用,变为不启用!!
完成之后,进到tmp之下,自动生成了前面删掉的文件,而且用文件所属权是zabbix
可以看图形的监控如下:
如果没有数据,可以等待一会再看!!
三.zabbix server 的tomcat+jave 监控
我们在server1上搭建tomcat java 服务
链接:tomcat包 提取码: jqj6
[root@server1 bin]# yum install java-1.8.0-openjdk.x86_64 -y
[root@server1 bin]#systemctl enable --now zabbix-java-gateway
[root@server1 bin]# cd /etc/zabbixvim zabbix_java_gateway.conf[root@server1 zabbix]# netstat -antlp| grep :10052
vim zabbix_java_gateway.conf
修改内容如下:
重启服务:
在server3操作如下:
[root@server3 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@server3 ~]# cd /usr/local/
[root@server3 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server3 local]# ls
[root@server3 local]# cd tomcat
[root@server3 tomcat]# cd bin/
[root@server3 bin]# vim catalina.sh ##创建8888端口
CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false'
[root@server3 bin]# yum install -y java
[root@server3 bin]# ./startup.sh
[root@server3 bin]# netstat -antlp|grep 8888
然后安装java
yum install -y java
开启脚本
查看端口
点击server3,选择模板
点击选择
将java加入模板
将JMX端口写入:
然后更新!
测试点击主机发现JMX绿色亮了!
查看监控图形,出现数据
四.Zabbix-agent主动模式 (全克隆)
在server2上操作,
vim zabbix_agentd.confsystemctl restart zabbix-agent.servicenetstat -antlp | grep :10050
访问网页,点击模板如下:
全克隆
然后左下角全选
点击下面的批量更新,监控项的类型一定要选对
添加模板
然后点击添加
更新
查看图形!
五.Zabbix + proxy分布式
准备一台虚拟机server4,安装zabbix+proxy安装包,配置zabbix+proxy分布式!
yum list zabbix-*
yum install -y zabbix-proxy-mysql.x86_64
修改配置文件
vim /etc/zabbix/zabbix_proxy.conf
DBName=zabbix_proxy #数据库中的库名称
DBHost=172.25.0.1 #数据库位置
DBUser=zabbix #访问数据库的身份
DBPassword=westos #访问数据库的密码
将生成的数据库信息传给数据库位置server1中
cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
scp schema.sql.gz server1:
开启server4的服务
systemctl start zabbix-proxy.service
查看服务进程是否开启
ps ax
接着将server4的主机名改为proxy
hostnamectl set-hostname proxy
在server1,2,3,4的本地解析都把server4解析proxy如下图:
接着在server1上打开数据库
创建mysql数据库zabbix_proxy,并将库的所有权利给zabbix用户,授权后刷新
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all on zabbix_proxy.* to zabbix@'%' identified by 'westos';
flush privileges;
将schema.sql.gz 文件解压后导入 zabbix_proxy 库中
zcat schema.sql.gz | mysql -pwestos zabbix_proxy
测试web创建agent代理程序
然后输入代理名称,代理地址,点添加
在server4的配置文件里面继续修改一下:
vim /etc/zabbix/zabbix_proxy.conf
Server=172.25.0.1 #分布式服务位于zabbix-server端
ServerPort=10051 #默认端口为10051
Hostname=proxy #主机名为proxy,需要与添加的proxy名保持一致
systemctl restart zabbix-proxy.service
看一下日志:server1,server4
cat /var/log/zabbix/zabbix_proxy.log
看到server4日志显示:成功接受server1的信息
server1日志显示:成功发送信息给server4
然后再网页上点击主机server3
往下拖,选择proxy代理
点击更新
将server3的服务指向proxy
原理:
通过proxy连接server,agent(3)----> proxy(4) ----> server(1)
vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.0.4
ServerActive=172.25.0.4systemctl restart zabbix-agent.service
接着来到服务器端查看一下日志
server4显示
cat /var/log/zabbix/zabbix_server.log
设定server3中的java导入proxy后日志变化
server1端查看日志显示不能找到
若是遇到报错,怎么办?
刷新zabbix-server 数据修改缓存
server1
zabbix_server -R config_cache_reload
接着在server4修改配置文件
vim /etc/zabbix/zabbix_proxy.confJavaGateway=172.25.0.1 #java服务监听端口指向zabbix-server端
StartJavaPollers=5 #Java轮询器为5,实际设置根据需求systemctl restart zabbix-proxy.service
可以把server3也重启一下服务agent
server3通过server4的proxy成功连接到zabbix-server端,并且所有服务恢复启用。
最后等待一会,web界面两个都亮了就OK
六.Zabbix+睿象云报警
需要用到server1,2,3
server1为zabbix-server主机,server2、3为zabbix-agent主机。且已经连接完成。那么需要把刚才的代理去掉!
首先需要server1能够上网
在真机开启路由策略
iptables -t nat -I POSTROUTING -s 172.25.0.0/24 -j MASQUERADE
server1检测是否能上网:
打开浏览器,进入睿象云,先注册账号,绑定邮箱(一定要绑定!!)CA - >添加集成---->监控工具
生成了Appkey
图
接下来需要我们在server1上操作:
注:一定要解压在这个目录下!!!
进入报警文件读取目录,解压云报警插件,进入解压目录
获取睿象云 Cloud Alert agent包:
链接: ca探针包 提取码: k9p3
cd /usr/lib/zabbix/alertscripts
tar zxf ca_zabbix_release-2.1.0.tar.gzcd cloudalert/bin/
./install.sh ****************(自己生成的key)
处填入您新建应用时生成的appkey
在安装过程中根据安装提示,输入zabbix管理/监控/web登陆地址、管理员用户名、密码。
当显示安装成功,就说明已经配置完成
然后到web上的zabbix把之前的报警媒介禁用
然后把动作打开:
到睿象云新建通知策略
选择如下,通知人选择自己,若是没有,邮箱没有绑定!!
设置后出现:
禁用一个触发器
接着开始测试:
[root@server2 ~]# systemctl stop zabbix-agent.service
在zabbix上查看
发现出现了报警而且发送到了睿象云
然后再睿象云上也可以看到报警信息过来了!
手机上短信,微信都来了!!
短信如下
当认领了告警之后,会在睿象云提示处理中
重启服务server2 agent
systemctl restart zabbix-agent.service
在zabbix上查看问题端口状态显示 已解决
睿象云也显示解决!
显示已关闭!!
微信也发送来了
七.使用API
介绍
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
创建新的应用程序以使用Zabbix;
将Zabbix与第三方软件集成;
自动执行常规任务。
大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。
获取身份验证
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。让我们假设你想要以标准Zabbix Admin用户身份登录。然后,你的JSON请求将如下所示:
[root@server1 ~]# curl -XPOST http://172.25.0.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
参数的意义
jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0;
method - 被调用的API方法名;
params - 将被传递给API方法的参数;
id - 请求的任意标识符;
auth -用户认证令牌; 因为我们还没有一个,它的设置null。
如果你正确提供了凭据,API返回的响应将包含用户身份验证令牌:
检索主机
[root@server1 ~]# vim zabbix.api
curl -XPOST http://172.25.0.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": 1,"auth":"09dc3830f5e6780328c9f4a6fc60c503"
}' | python -m json.tool
一定要使用刚才获得的身份验证!
sh zabbix.api执行脚本
删除主机
object host.delete(array hosts)
(array) 要删除的主机的ID.
curl -XPOST http://172.25.0.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.delete","params": ["10265"],"id": 1,"auth":"09dc3830f5e6780328c9f4a6fc60c503"
}' | python -m json.tool
hostid 和前面查出来的保持一致
执行脚本
然后观察结果,删除成功!!
创建主机
需要把动作里的,自动注册禁用,不然执行脚本报错也会成功创建server3
对象 host.create(对象/数组 hosts)
curl -s -XPOST http://172.25.0.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.0.3","dns": "","port": "10050"}],"groups": [{"groupid": "2"}],"templates": [{"templateid": "10001"}]},"auth": "09dc3830f5e6780328c9f4a6fc60c503","id": 1
}' | python -m json.tool
组的查询方式:
templateid查询方法:
执行脚本,然乎观察
sh zabbix.api
在web页面查看server3是否添加成功
zabbix结合nginx、mysql、proxy、睿象云报警、API批量操作相关推荐
- 企业运维实战--Zabbix监控之结合nginx、mysql、java应用、proxy分布式、睿象云报警、API批量操作、替换mysql为tidb数据库
一.zabbix server的nginx监控 nginx部署 在server5上进行: tar zxf nginx-1.20.1.tar.gz cd nginx-1.20.1 yum install ...
- 运维实操——zabbix监控结合睿象云报警平台及API调用
zabbix监控结合睿象云报警平台及API调用 1.zabbix监控结合睿象云报警平台 2.API调用 1.zabbix监控结合睿象云报警平台 由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想 ...
- 分布式系统监控软件zabbix—— 通过qqmail或第三方报警平台(睿象云)发送告警信息
文章目录 分布式系统监控软件zabbix-- 通过qqmail或第三方报警平台(睿象云)发送告警信息 1.zabbix+ qqmail 报警实现步骤 2.zabbix+ 睿象云报警 实现步骤 分布式系 ...
- 分布式系统监控软件——zabbix详解(七) zabbix+ (qqmail 或者 第三方报警平台(睿象云))的 报警实现
文章目录 zabbix+ qqmail 报警实现步骤 zabbix+ 睿象云报警 实现步骤 实验环境 redhat7.5环境 (低版本的redhat系统可能解决不了php的依赖性) server4 1 ...
- 清理 zabbix 历史数据, 缩减 mysql 空间
zabbix 由于历史数据过大, 因此导致磁盘空间暴涨, 下面是结局方法步骤 1. 停止 ZABBIX SERER 操作 [root@gd02-qa-plxt2-nodomain-web-95 ~] ...
- zabbix的安装与部署(proxy、睿象云)
一.简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速 ...
- 云告警: zabbix + 睿象云
Zabbix 是由Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态. Zabbix 使用 MySQ ...
- 【Linux36-2】zabbix监控(mysql+percona+tomcat+主动式监控+onealert云告警)
文章目录 1. 监控数据库 1.2 种类1:mysql 1.2 种类2:percona 2. 监控java(使用apache-tomcat) 2.1 agent端配置 2.2 server端配置 2. ...
- 管理 zabbix_Zabbix 2019 峰会丨看睿象云如何在 Zabbix 中玩转告警
2019年11月29日-30日,为期两天的 Zabbix 大会中国站在北京盛大召开,本届 Zabbix 大会以"新视界,新技术,共建未来新监控!"为主题,为与会人员提供前沿的监控技 ...
最新文章
- php联系mysql配置_php支持mysql配置
- 解读ADC采样芯片(EV10AQ190A)的采样(工作)模式(双通道模式)
- Day_04-数组,元组,列表
- Notepad++ JSON关键字自动提示
- 并发不是并行,它更好!
- Jsp中使用数据库连接池
- c语言求e近似值精度在10e6,中石油2013秋季学期《C语言》补考在线适用于2014年4月...
- dell笔记本插上耳机没有声音_跑男的耳机没有声音,沙溢只用一句话诈出来,不愧是《王牌》常客...
- 使用Nginx制作下载站点
- python操作数据库的两种方式
- python猜字游戏猜三次_python的猜数字游戏
- ICT项目管理与实施体系
- 前端小项目(四)| 咖啡厅网页页面
- Sensor感应器介绍
- 【xla】二、【构图阶段】MarkForCompilationPassImpl
- 海思3516, 单摄像头接hdmi,并输出h.265文件
- matlab实现图片锐化处理
- 2019 CVPR之ReID:Hi-CMD: Hierarchical Cross-Modality Disentanglement for Visible-Infrared Person Re-Id
- gdb使用watch命令设置数据断点
- 微软 2022 新 bug:大量程序员连夜加班!
热门文章
- 免费天气api 高速稳定的天气API接口 2019年4月测试稳定OK
- 让IE浏览器兼容HTML5
- 电影票美团饿了么外卖劵分销CPS吃喝玩乐休闲娱乐小程序开发
- 【经验总结】电脑休眠后虚拟网卡地址变成169.254网段的解决方法
- WLAN工作过程——后三阶段
- 小程序生成分享海报,带小程序码,并保存图片
- 外国人都喜欢中国的什么?
- 雷达系列论文翻译(十一):LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometryvia Smoothing and Mapping
- deepin安装node
- Miracast hardening