写点什么

zabbix 监控 nginx、mysql、java 应用,64 位 java8 百度云盘

作者:Java高工P7
  • 2021 年 11 月 10 日
  • 本文字数:2496 字

    阅读完需:约 8 分钟

同样的添加到之前的配置文件里面,重启 agent 端服务读取脚本



我们在 server1 验证,获取 agent 端的相关键值



同样的,分别添加三个监控项 nginx_accept,nginx_handle,nginx_request





然后选择图形 nginx_status,在监控项处点击添加


![请添加图片描述](


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


https://img-blog.csdnimg.cn/1e6feeb42a404c51a173367263bb08ab.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NjY0NDc5,size_16,color_FFFFFF,t_70)


完成之后,预览一下图形



二、zabbix 监控 mysql


==============================================================================


因为之前在 server1 搭建了 mysql 数据库,为了节省资源,我们直接使用 server1;


mkdir /var/lib/zabbix zabbix :创建目录


cd /var/lib/zabbixzabbix :放 zabbix 脚本


vim .my.cnf:修改文件引导


zabbix_get -s 127.0.0.1 -p 10050 -k “mysql.ping” :可以正常看到值



添加 DB mysql 模板




查看图形信息



但是由于自带的 mysq 模板监控项(只有 102 个)太少了,所以我们需要手动添加模板;


删掉刚才添加的 mysql 模板



将真机的 percona 模板软件包传给 server1



server1 安装 percona-mysql 模块 rpm 包



将模板文件复制到 zabbix 服务相应位置



编辑如下.php 文件,修改真实的用户和密码如下:




安装 php-mysql



手动测试如下,手动测试之后会生成一个 txt 文件,这个文件默认权限是 root,而访问时是用 zabbix 用户访问的,所以测试完成后删除.txt,root 用户下测试的文件其余用户无法写入




现在导入外部模板



把 zbx_percona_mysql_template.xml(真机上提前下载好)导入到模板中,导入时聚合图形



接着选择 zabbix server 添加已经导入的模板



之后点击触发器,需要禁用一个触发器



停用 stop slave 触发器



完成之后,进到/tmp 目录,发现已经自动生成了前面删掉的文件,而且用文件所属权是 zabbix




此时监控项就增加到了 279 项



图形监控如下



三、zabbix 监控 tomcat+jave


====================================================================================


监控原理:



1、当 Zabbix-Server 需要知道 java 应用程序的某项性能的时候,会启动自身的一个 Zabbix-JavaPollers 进程去连接 Zabbix-JavaGateway 请求数据,而 ZabbixJavagateway 收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启 JMX 远程查询。Java 程序会启动自身的一个简单的小程序端口向 Zabbix-JavaGateway 提供请求数据。


2、配置 Zabbix 监控 Java 应用程序的关键点在于:配置 Zabbix-JavaGateway、让 Zabbix-Server 能够连接 Zabbix-JavaGateway、Tomcat 开启 JVM 远程监控功能等 ;


3、Java-gateway 不安装在 zabbix-server 上也可以,仅仅是作为一个采集器,tomcat 监控主要是监控 JVM。


我们在 server1 上安装 java 模块插件



默认 java 应用监听端口 10052



编辑 zabbix_server.conf 文件,设定 java 监听网关指向 zabbix-server 主机并设置处理的进程数





将真机的 tomcat 压缩包传给 server3,Tomcat 是 Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。



server3 解压缩,创建软链接



编辑 tomcat 脚本,设定 JMX 监听端口为 8888,vim /usr/local/tomcat/bin/catalina.sh




然后安装 java



开启脚本



查看端口



网页测试 tomcat 是否启动成功,访问 172.25.9.3:8080 端口(Apache Tomcat web server 安装后,默认的服务端口就是 8080)



点击 server3,选择模板,将 java TMX 加入模板



将 JMX 端口写入



此时发现 server3 的 JMX 绿色亮了



查看监控图形,出现数据



四、Zabbix-agent 主动模式 (全克隆)


=======================================================================================


在 server2 上操作,StartAgent:处理被动检查的 zabbix agentd 的预分叉实例数。如果设置为 0,则禁用被动检查,代理将不会侦听任何 TCP 端口。




点击 OS 模板,选择全克隆



创建 Active 模板




左下角全选,点击下面的批量更新




选择 zabbix 客户端主动式



server2 点击添加模板,将 Linux-Active 模板进行链接



更新成功,此时 server2 将直接向 zabbix server(server1)传递主机信息



五、Zabbix + proxy 分布式


==================================================================================




原理:


server1 ( zabbix-server、mysql-server ) <---- server4( proxy ) <------ server3( agent )


如果所有 agent 直接向 server 传递主机信息,一方面会增大 server 的负载,另一方面由于所有 agent 都需要穿过防火墙,因此降低了安全性,所以设定代理 server 收集所有受监控主机信息,再传给 server 控制端,降低负载同时保证安全性。


实验环境:


server1 作为 zabbix server 控制端


server4 作为代理端,负责接受其他 agent 发来的信息,再传递给 server1 控制端


server3 作为 agent,向代理端传递信息



server4 安装 proxy 并使用 Mysql 数据库



编辑 /etc/zabbix/zabbix_proxy.conf 配置文件;


DBName=zabbix_proxy:数据库中的库名称


DBHost=172.25.36.1:数据库位置


DBUser=zabbix :访问数据库的身份


DBPassword=westos:访问数据库的密码




将生成的数据库信息传给数据库位置 server1 中



查看服务进程是否开启



将 server4 的主机名改为 proxy



在 server1,2,3,4 的本地解析都加入 server4 解析 proxy



server 进入数据库



创建 mysql 数据库 zabbix_proxy,并将库的所有权利给 zabbix 用户,授权后刷新



将 schema.sql.gz 文件解压后导入 zabbix_proxy 库中



点击创建 agent 代理程序



然后输入代理名称,代理地址



在 server4 的配置文件里面继续修改;


Server=172.25.36.1 :分布式服务位于 zabbix-server 端


ServerPort=10051 :默认端口为 10051


Hostname=proxy :主机名为 proxy




查看 server4 日志显示:成功接受 server1 的信息



server1 日志显示:成功发送信息给 server4



然后再网页上点击主机 server3,选择 proxy 代理




然后修改 server3 的配置文件/etc/zabbix/zabbix_agentd.conf;


设定其 server 为 server4(proxy)





查看图形,此时 server3 通过 server4 的 proxy 成功连接到 zabbix-server 端



此时发现 JMX 不能正常工作



在 server4 修改配置文件;

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
zabbix监控nginx、mysql、java应用,64位java8百度云盘