zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式

目录

  • 一、zabbix监控nginx
  • 二、zabbix监控mysql
  • 三、zabbix监控tomcat+jave
  • 四、Zabbix-agent主动模式 (全克隆)
  • 五、Zabbix + proxy分布式

一、zabbix监控nginx

在server2上部署nginx
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第1张图片
配置
请添加图片描述
编译、安装
请添加图片描述
创建软链接方便使用
请添加图片描述
修改nginx配置文件,设定只允许本机访问
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第2张图片
语法检测
请添加图片描述
启动服务
请添加图片描述
本机访问测试;
server accepts handled requests — 总共处理了1个连接 , 成功创建1次握手, 总共处理了1个请求;
reading — 读取客户端的连接数;
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,nginx 已经处理完正在等候下一次请求指令的驻留连接.
请添加图片描述
访问本机时,可以看到nginx的默认发布页面
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第3张图片
其他主机访问时被拒绝
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第4张图片
此时就可以查看图形的各种监控项了,但是发现有乱码,这是由于服务器zabbix字体的原因。
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第5张图片
解决字体乱码方法:将真机的字体文件传给server1(zabbix服务端)
请添加图片描述
将字体文件复制到相应目录下
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第6张图片
把之前的文件删除,将正确的中文字体软连接为原来的文件,好处是不需要动配置文件
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第7张图片
此时再次查看server2图形监控,发现字体正常
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第8张图片
通过shell命令,截取我们需要的信息;
过滤得到活跃连接数
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第9张图片
接下来,编写一个nginx脚本,通过agent获取信息;
重命名文件
请添加图片描述
把刚才在shell测试的抓取指令写进去,脚本内容如下;
完成之后,重启agent
请添加图片描述
server1安装zabbix-get,zabbix_get命令是在server端用来检查agent端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据。
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第10张图片
-s --host: 指定客户端主机名或者IP;
-p --port:客户端端口,默认10050;
-k --key:你想获取的key(键值)
请添加图片描述
接下来需要图形化添加监控,网页访问172.25.1.1/zabbix,为server2创建监控项
请添加图片描述
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第11张图片
之后选择创建图形:
请添加图片描述
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第12张图片
创建完成,点击更新,查看图形结果
请添加图片描述
当出现数值时表明图形添加成功
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第13张图片
添加更多nginx监控项;
通过shell命令截取所需处理连接数 , 成功创建握手次数, 处理的请求次数
请添加图片描述
同样的添加到之前的配置文件里面,重启agent端服务读取脚本
请添加图片描述
我们在server1验证,获取agent端的相关键值
请添加图片描述
同样的,分别添加三个监控项nginx_accept,nginx_handle,nginx_request
请添加图片描述
请添加图片描述
请添加图片描述
然后选择图形nginx_status,在监控项处点击添加
请添加图片描述
完成之后,预览一下图形
请添加图片描述

二、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,向代理端传递信息
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第14张图片
server4安装proxy并使用Mysql数据库
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第15张图片
编辑 /etc/zabbix/zabbix_proxy.conf 配置文件;
DBName=zabbix_proxy:数据库中的库名称
DBHost=172.25.36.1:数据库位置
DBUser=zabbix :访问数据库的身份
DBPassword=westos:访问数据库的密码
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第16张图片
请添加图片描述
将生成的数据库信息传给数据库位置server1中
请添加图片描述
查看服务进程是否开启
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第17张图片
将server4的主机名改为proxy
请添加图片描述
在server1,2,3,4的本地解析都加入server4解析proxy
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第18张图片
server进入数据库
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第19张图片
创建mysql数据库zabbix_proxy,并将库的所有权利给zabbix用户,授权后刷新
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第20张图片
将schema.sql.gz 文件解压后导入 zabbix_proxy 库中
请添加图片描述
点击创建agent代理程序
请添加图片描述
然后输入代理名称,代理地址
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第21张图片
在server4的配置文件里面继续修改;
Server=172.25.36.1 :分布式服务位于zabbix-server端
ServerPort=10051 :默认端口为10051
Hostname=proxy :主机名为proxy
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第22张图片
请添加图片描述
查看server4日志显示:成功接受server1的信息
请添加图片描述
server1日志显示:成功发送信息给server4
请添加图片描述
然后再网页上点击主机server3,选择proxy代理
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第23张图片
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第24张图片
然后修改server3的配置文件/etc/zabbix/zabbix_agentd.conf;
设定其server为server4(proxy)
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第25张图片
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第26张图片
请添加图片描述
查看图形,此时server3通过server4的proxy成功连接到zabbix-server端zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第27张图片
此时发现JMX不能正常工作
请添加图片描述
在server4修改配置文件;
JavaGateway=172.25.36.1 :java服务监听端口指向zabbix-server端
StartJavaPollers=5 :Java轮询器为5,实际设置根据需求
zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式_第28张图片
请添加图片描述
此时所有服务将恢复启用
请添加图片描述
如果设定完server3中的java导入proxy后,查看server1的日志显示不能找到,需要刷新zabbix-server 数据修改缓存:zabbix_server -R config_cache_reload

你可能感兴趣的:(zabbix监控nginx、mysql、java应用、Zabbix + proxy分布式)