步骤参考官方原文:
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 监控相关推荐

  1. api查询所有记录 zabbix_利用zabbix—API查询zabbix监控项历史数据、均值、峰值详细讲解...

    前言: 查询监控项历史数据,最常见的办法就是在页面查询,但是页面只能展现最近的500个数值,如果要查询历史数据比较久远或要形成数据表格进行分析,这个办法就不适用了,但是利用zabbix-API查询za ...

  2. 使用API 在zabbix监控系统中查看,创建及删除监控主机

    继上一篇博客,部署好zabbix监控 什么是API: API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基 ...

  3. 运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机

    前言 API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.提供API所定义的功能的软件称作此API的实现.API是一种接口,故而是一种抽象. 应用 ...

  4. 企业运维实战--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 ...

  5. 运维实操——zabbix监控结合睿象云报警平台及API调用

    zabbix监控结合睿象云报警平台及API调用 1.zabbix监控结合睿象云报警平台 2.API调用 1.zabbix监控结合睿象云报警平台 由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想 ...

  6. zabbix结合nginx、mysql、proxy、睿象云报警、API批量操作

    目录 一.zabbix server的nginx监控 nginx部署 获取信息 二.Zabbix监控添加mysql 添加模板 倒入外部模板 手动测试如下: 三.zabbix server 的tomca ...

  7. Zabbix监控详解

    Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各 ...

  8. Zabbix监控笔记

    主流的开源监控平台介绍有: mrtg (Multi Router Traffic Grapher)通过snmp协议得到设备的流量信息,并以包含PNG格式的图形的HTML文档方式显示给用户. cacti ...

  9. 分布式部署Zabbix监控平台

    Zabbix监控的优点 Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位 ...

  10. 05: zabbix 监控配置

    目录:zabbix其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

最新文章

  1. 安卓手机复制文件到电脑
  2. [linux基础学习]文件和目录属性
  3. javascript中使用重载
  4. python 二叉树遍历
  5. 大家所推崇的Redis分布式锁真的就万无一失吗?
  6. Boost:boost::bimaps::unordered_set_of的测试程序
  7. 处理相对时间(Day.js、Moment.js)(案例:结合vue的过滤器使用)
  8. [Cordova]JS和Native交互实现关键代码(iOS)
  9. Android BLE蓝牙详细解读
  10. 慕课网 饿了么 vue2.0 项目
  11. java中如何生成对外的接口_Java利用Swagger2自动生成对外接口的文档
  12. UA OPTI512R 傅立叶光学导论1 为什么光学需要傅立叶变换
  13. 2021四川紧急选调/国考备考策略----申论/行测(2020.8.22号开始)
  14. Python - poetry(4)管理环境
  15. 超简单PictureSelector使用,从相册中选取多张图片并显示再列表中,微信样式,解决相册全白问题,可以拖拽删除并排序
  16. GG32F450XX上移植RT-Thread+LWIP协议栈
  17. 2018最新精选的Go框架,库和软件的精选列表 三
  18. 网络入侵检测系统之Suricata(七)--DDOS流量检测模型
  19. mac 备份文件 太大 时间机器_Mac 时间机器 Time Machine 备份速度太慢的解决方法
  20. matlab等式操作,matlab处理一个等式方程,急用,谢谢

热门文章

  1. 华为交换机修改radius服务器地址,华为CE交换机radius认证登陆
  2. 畏惧编程怎么办?总是逃避编码的男孩是如何变成一名程序员的?
  3. Windows Mobile的系统程序与控制面板的各项命令参数列表
  4. mac m1 打印机无法显示打印队列的解决方式
  5. 【转】以太坊钱包分析与介绍
  6. 用java实现五子棋三手交换_什么是五子棋三手交换五手两打
  7. 【基于C++个人编程】中小学数学出题系统
  8. SAP中预制发票应用分析测试
  9. 一个普通计科人的大学生活总结
  10. apache mpm php 安全,ubuntu切换为apache+php-fpm+mpm_event