API批量操作、zabbix 监控
步骤参考官方原文:
https://www.zabbix.com/documentation/5.0/zh/manual/api
API
验证:
【在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。让我们假设你想要以标准Zabbix Admin用户身份登录。然后,你的JSON请求将如下所示:】
server1:
vim zabbix-api.sh
curl -s -XPOST http://172.25.70.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.toolchmod +x zabbix-api.sh./zabbix-api.sh 【正确提供了凭据,API返回的响应将包含用户身份验证令牌:】{"id": 1,"jsonrpc": "2.0","result": "3f20ddb7e7628c483b88f2540e7ee328"}
检索主机:
vim zabbix-api.shcurl -s -XPOST http://172.25.70.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": "3f20ddb7e7628c483b88f2540e7ee328"
}' | python -m json.tool
删除:
curl -s -XPOST http://172.25.70.1/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{"jsonrpc": "2.0","method": "host.delete","params": ["10434"],"id": 1,"auth": "3f20ddb7e7628c483b88f2540e7ee328"
}' | python -m json.tool
在前端主机中看server3已经被删除了
创建:
curl -s -XPOST http://172.25.70.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.70.3","dns": "","port": "10050"}],"groups": [{"groupid": "2"}],"templates": [{"templateid": "10001"}]},"id": 1,"auth": "3f20ddb7e7628c483b88f2540e7ee328"
}' | python -m json.tool
server3已经被添加
如何添加监控项--nginx
实验前准备:
下载一个nginx的包
本次实验nginx是从真机传过来的:cp /home/westos/Desktop/nginx-1.20.2.tar.gz server2:
iptables -t nat -I POSTROUTING -s 172.25.70.0/24 -j MASQUERADE #使其他虚拟机能上网
server2中:
cd
tar zxf nginx-1.20.2.tar.gz
cd nginx-1.20.2/ls
yum install gcc pcre-devel openssl-devel #下载依赖性
./configure --with-http_stub_status_module --with-http_ssl_module
make && make install
cd /usr/local/nginx/
cd conf/
vim nginx.conf47行左右添加: location /status {stub_status on;access_log off;allow 127.0.0.1;deny all;}
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
nginx -t
nginx
curl localhost/status
curl localhost/status | grep Active
curl -s localhost/status | grep Active
curl -s localhost/status | grep Active | awk '{print $3}'
cd /etc/zabbix/
ls
cd zabbix_agentd.d/
pwd
rpm -ql zabbix-agent
cp /usr/share/doc/zabbix-agent-5.0.18/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
ls
mv userparameter_mysql.conf userparameter_nginx.conf
vim userparameter_nginx.conf UserParameter=nginx.active,curl -s localhost/status | grep Active | awk '{print $3}'
systemctl restart zabbix-agent.service
server1:
yum install -y zabbix-get
zabbix_get -s 172.25.70.2 -p 10050 -k "nginx.active" #-s远程主机。-p指定端口
前端:
图形添加监控项,创建图形
创建图形
创建完成,点击更新,查看图形结果:
出现数值表示图形添加成功
添加更多nginx监控项
server2:
curl -s localhost/status
curl -s localhost/status | awk NR==3
curl -s localhost/status | awk NR==3 | awk '{print $1}'
curl -s localhost/status | awk NR==3 | awk '{print $2}'
curl -s localhost/status | awk NR==3 | awk '{print $3}'
vim userparameter_nginx.conf 添加:UserParameter=nginx.accept,curl -s localhost/status | awk NR==3 |awk '{print $1}'UserParameter=nginx.handle,curl -s localhost/status | awk NR==3 |awk '{print $2}'UserParameter=nginx.request,curl -s localhost/status | awk NR==3 |awk '{print $3}'
systemctl restart zabbix-agent.service
server1:
zabbix_get -s 172.25.70.2 -p 10050 -k "nginx.accept"
zabbix_get -s 172.25.70.2 -p 10050 -k "nginx.handle"
zabbix_get -s 172.25.70.2 -p 10050 -k "nginx.request"
在图形中添加即可;跟刚创建nginx.active方法步骤一样,最后点击预览即可
预览图形
通过模板自动添加:
删掉刚才的手动添加,修改配置,用模板直接添加
cd /usr/local/nginx/conf
vim nginx.conf47行改为:location /basic_status
cd /etc/zabbix/zabbix_agentd.d/
ls
mv userparameter_nginx.conf /mnt/
ls
systemctl restart zabbix-agent.service
先删掉上个实验添加的4项
有图形就是成功了
数据库监控:
下载percona-zabbix-templates-1.1.8-1.noarch.rpm数据包;
本次实验是在真机传过去的:
scp percona-zabbix-templates-1.1.8-1.noarch.rpm server1:
server1:
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/scripts #脚本路径
cd /var/lib/zabbix/percona/templates #模板
cd ..
ls
pwd
cd templates/
ls
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
ls
cd /etc/zabbix/zabbix_agentd.d/
ls
wc -l userparameter_percona_mysql.conf #看其监控项总共有多少个
cd ..
systemctl restart zabbix-agent.service #重启服务
cd /var/lib/zabbix/percona/scripts/
ls
#执行原理:调用shell脚本通过php代码访问数据库,取出数据,存到/tmp/XX.txp纯文本。通过shell过滤【shell和php结合的过程】
rpm -qa | grep php
rpm -ql rh-php72-php-cli-7.2.24-1.el7.x86_64 #查找php位置
ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/
ll /usr/bin/php
php -v
vim ss_get_mysql_stats.php 31行:$mysql_user = 'root';32行:$mysql_pass = 'Yakexi+007';
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
#通过超级用户身份运行脚本
cd /tmp/
ls
ll localhost-mysql_cacti_stats.txt
rm -f localhost-mysql_cacti_stats.txt
#删掉,或者让zabbix用户可以写。不然导致用户不变更
id zabbix
前端:
添加mysql模板
监控项比之前多了很多
此时mysql没有主从一致要关闭slave监听端口的触发器
java监控:
server3:
需要用到apache-tomcat-8.5.24的包【可以在官网下载】
https://tomcat.apache.org/tomcat-8.5-doc/monitoring.html
tar zxf apache-tomcat-8.5.24.tar.gz
ls
mv apache-tomcat-8.5.24 /usr/local/tomcat
cd /usr/local/tomcat/
yum search jdk
yum install -y java-1.8.0-openjdk.x86_64
ls
cd bin/
ls
vim catalina.sh #编辑脚本设定监听端口为8888109行:CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false'
cd ..
ls
bin/startup.sh
netstat -antlp #查看8888和8080端口是否开启
查看8888和8080端口是否开启
yum install -y zabbix-java-gateway.x86_64 ##服务端需要安装一个java网关,使用10052端口,不然是访问不到8888端口的
访问流程:server1 -> java-gateway (10052)-> server2(tomcat8888)
server1:
vim zabbix_server.conf 279:JavaGateway=172.25.70.1313:StartJavaPollers=5
进入zabbix-web文本配置模板添加Java
添加JMX接口
JMX启动成功状态
优化:
server2:
vim /etc/zabbix/zabbix_agentd.conf142行:StartAgents=0 #采集不到数据ZBX变红
systemctl restart zabbix-agent.service
netstat -antpl
在前端过一会之后server2的ZBX会变红
vim /etc/zabbix/zabbix_agentd.conf142行:StartAgents=3 #
systemctl restart zabbix-agent.service
netstat -antlp | grep 10050
在前端
为了让server端变得更轻松:
配置--主机--模板--选择操作系统(倒数第4个)--选择第6个--取消带OS的链接并清理--更新(替换之后server2的客户端就变成了主动式的)
server2--图形--点击第4个--预览--可以看到数据依然能采集,没有中断
zabbix+proxy分布式
删掉server2
server2:
systemctl stop zabbix-agent.service
systemctl disable zabbix-agent.service
ps ax #查看还有什么多余的进程
nginx -s stop
ps ax
cd /etc/yum.repos.d/
vim zabbix.repo 27:gpgcheck=0 #如果不该安装zabbix-proxy-mysql会不成功
yum install -y zabbix-proxy-mysql
cd /etc/zabbix/
ls
vim zabbix_proxy.conf 30:Server=172.25.70.149:Hostname=proxy162:DBHost=172.25.70.1196:DBPassword=Westos+007
hostnamectl set-hostname proxy
在三台主机server1、2、3中给server2添加proxy解析
vim /etc/hosts给server2添加proxy解析
server1、2、3都添加
server1中:
mysql -pWestos+007
> create database zabbix_proxy character set utf8 collate utf8_bin;
> show databases;
> create user 'zabbix'@'%' identified by 'Westos+007';
> grant all privileges on zabbix_proxy.* to 'zabbix'@'%';
> flush privileges;
server2:
cd /usr/share/doc/zabbix-proxy-mysql-5.0.18/
ls
zcat schema.sql.gz | wc -l
scp schema.sql.gz server1:
yum install -y mariadb
zcat schema.sql.gz | mysql -h 172.25.70.1 -uzabbix -p zabbix_proxy
以下过程不可中断
server1:可以看出导入成功
mysql -pWestos+007
> use zabbix_proxy
> show tables;
server2:
systemctl start zabbix-proxy.service
ps ax
前端:
管理--agent代理程序--创建代理(名称proxy-->名称和主机名保持一致、地址:172.25.70.2)--添加
配置--主机--server3--代理换成-proxy--更新
server1:
zabbix_server -R config_cache_reload #刷新
server2
systemctl restart zabbix-proxy.service
#重启过程中要接收配置数据从server端(server1)
server3:
vim /etc/zabbix/zabbix_agentd.conf 117 Server=172.25.70.2158:ServerActive=172.25.70.2
systemctl restart zabbix-agent.service
前端:
主机(目前server3的ZBX由红色变绿色,)
此时JMX上有图像信息,但是还是灰色的
server2:
vim /etc/zabbix/zabbix_proxy.conf 338 JavaGateway=172.25.70.1346 JavaGatewayPort=10052354 StartJavaPollers=5
systemctl status zabbix-proxy.service
前端:
过一会后server3上的JMX就会变绿色了
API批量操作、zabbix 监控相关推荐
- api查询所有记录 zabbix_利用zabbix—API查询zabbix监控项历史数据、均值、峰值详细讲解...
前言: 查询监控项历史数据,最常见的办法就是在页面查询,但是页面只能展现最近的500个数值,如果要查询历史数据比较久远或要形成数据表格进行分析,这个办法就不适用了,但是利用zabbix-API查询za ...
- 使用API 在zabbix监控系统中查看,创建及删除监控主机
继上一篇博客,部署好zabbix监控 什么是API: API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基 ...
- 运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机
前言 API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.提供API所定义的功能的软件称作此API的实现.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结合nginx、mysql、proxy、睿象云报警、API批量操作
目录 一.zabbix server的nginx监控 nginx部署 获取信息 二.Zabbix监控添加mysql 添加模板 倒入外部模板 手动测试如下: 三.zabbix server 的tomca ...
- Zabbix监控详解
Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各 ...
- Zabbix监控笔记
主流的开源监控平台介绍有: mrtg (Multi Router Traffic Grapher)通过snmp协议得到设备的流量信息,并以包含PNG格式的图形的HTML文档方式显示给用户. cacti ...
- 分布式部署Zabbix监控平台
Zabbix监控的优点 Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位 ...
- 05: zabbix 监控配置
目录:zabbix其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...
最新文章
- 安卓手机复制文件到电脑
- [linux基础学习]文件和目录属性
- javascript中使用重载
- python 二叉树遍历
- 大家所推崇的Redis分布式锁真的就万无一失吗?
- Boost:boost::bimaps::unordered_set_of的测试程序
- 处理相对时间(Day.js、Moment.js)(案例:结合vue的过滤器使用)
- [Cordova]JS和Native交互实现关键代码(iOS)
- Android BLE蓝牙详细解读
- 慕课网 饿了么 vue2.0 项目
- java中如何生成对外的接口_Java利用Swagger2自动生成对外接口的文档
- UA OPTI512R 傅立叶光学导论1 为什么光学需要傅立叶变换
- 2021四川紧急选调/国考备考策略----申论/行测(2020.8.22号开始)
- Python - poetry(4)管理环境
- 超简单PictureSelector使用,从相册中选取多张图片并显示再列表中,微信样式,解决相册全白问题,可以拖拽删除并排序
- GG32F450XX上移植RT-Thread+LWIP协议栈
- 2018最新精选的Go框架,库和软件的精选列表 三
- 网络入侵检测系统之Suricata(七)--DDOS流量检测模型
- mac 备份文件 太大 时间机器_Mac 时间机器 Time Machine 备份速度太慢的解决方法
- matlab等式操作,matlab处理一个等式方程,急用,谢谢
热门文章
- 华为交换机修改radius服务器地址,华为CE交换机radius认证登陆
- 畏惧编程怎么办?总是逃避编码的男孩是如何变成一名程序员的?
- Windows Mobile的系统程序与控制面板的各项命令参数列表
- mac m1 打印机无法显示打印队列的解决方式
- 【转】以太坊钱包分析与介绍
- 用java实现五子棋三手交换_什么是五子棋三手交换五手两打
- 【基于C++个人编程】中小学数学出题系统
- SAP中预制发票应用分析测试
- 一个普通计科人的大学生活总结
- apache mpm php 安全,ubuntu切换为apache+php-fpm+mpm_event