企业运维实战--Zabbix教程之Zabbix监控nginx、mysql、java应用以及zabbix+proxy分布式


前言

在上一章的博客中,我们主要介绍了zabbix的安装以及zabbix-server + zabbix-agent + zabbix-web的搭建。在server端进行配置,添加agent端到server端,通过web管理zabbix监控。


一、Zabbix添加监控服务nginx

实验环境:准备三台虚拟机server1、2、3,版本为rhel7.6,要求关闭火墙和selinux。

server1:zabbix-server端,
server2、3:zabbix-agent端

步骤可参考官方文档:https://www.zabbix.com/documentation/4.0/zh/manual

server2:

源码编译安装nginx服务并安装监控模块

./configure --with-http_stub_status_module --with-http_ssl_module

make install

创建软链接

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

在这里插入图片描述

编辑nginx配置文件,设定打开监控状态并设置访问控制,只允许本地访问。

vim conf/nginx.conf

location /status {
                stub_status on;
                access_log off;
                allow 127.0.0.1;
                deny all;
}

在这里插入图片描述

检测语法,开启服务

在这里插入图片描述

获取信息

curl -s http://localhost/status | grep Active | awk '{print $3}'

在这里插入图片描述

编写脚本,以及配置文件,通过agent获取到信息

cd /etc/zabbix/zabbix_agentd.d/
cp userparameter_mysql.conf userparameter_nginx.conf
vim userparameter_nginx.conf
cat userparameter_nginx.conf

在这里插入图片描述

在这里插入图片描述

UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}'

重启agent

systemctl restart zabbix-agent.service 

在这里插入图片描述

server1:

修改图形描述文字

cd /usr/share/zabbix/fonts/

在这里插入图片描述

rm -fr graphfont.ttf
ln -s simkai.ttf graphfont.ttf

ll graphfont.ttf

在这里插入图片描述

安装zabbix-get

yum install -y zabbix-get

在这里插入图片描述

zabbix_get --help
zabbix_get -s 172.25.9.2 -p 10050 -k "nginx.active"

在这里插入图片描述

图形添加监控项,创建图形。

创建监控项详细操作:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
创建图形详细操作:
在这里插入图片描述

在这里插入图片描述

创建完成,点击更新,查看图形结果

在这里插入图片描述
当出现数值时表明图形添加成功。

添加更多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
cat userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://localhost/status | awk NR==3 | awk '{print $1}'
UserParameter=nginx.handle,curl -s http://localhost/status | awk NR==3 | awk '{print $2}'
UserParameter=nginx.request,curl -s http://localhost/status | awk NR==3 | awk '{print $3}'

在这里插入图片描述

重启agent端服务读取脚本

systemctl restart zabbix-agent.service

在这里插入图片描述

server1:
验证配置是否有误,不报错则证明agent端配置正确。

zabbix_get -s 172.25.9.2 -p 10050 -k "nginx.accept"
zabbix_get -s 172.25.9.2 -p 10050 -k "nginx.handle"
zabbix_get -s 172.25.9.2 -p 10050 -k "nginx.request"

在这里插入图片描述

web界面手动添加监控项,然后添加到图形中。

分别添加三个监控项nginx_accept,nginx_handle,nginx_request
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
图形nginx_status添加监控项
在这里插入图片描述
在这里插入图片描述
预览图形
在这里插入图片描述

二、Zabbix监控添加mysql

1.手动结合mysql与zabbix

zabbix添加服务会读取/etc/zabbix/zabbix_agentd.d/的.conf文件,手动监控添加mysql即编写musql相关.conf文件。由于server1主机已存在mysql,所以server1既可以当主机,又可以当agent机。

cd /etc/zabbix/zabbix_agentd.d/
vim userparameter_mysql.conf 

创建目录存放zabbix脚本与模板

mkdir /var/lib/zabbix

cd /var/lib/zabbix/

编写文件引导

vim .my.cnf
cat .my.cnf 

在这里插入图片描述
重启nginx服务,读取引导文件

systemctl restart zabbix-agent.service 

在这里插入图片描述

验证配置是否正确

zabbix_get -s 127.0.0.1 -k 'mysql.ping'
 zabbix_get -s 127.0.0.1 -k 'mysql.version'

在这里插入图片描述

在这里插入图片描述

web中手动添加模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
手动添加的监控项为14个,对于一个庞大的mysql数据库而言是有点少了,所以我们采用固定模板percona-mysql来更见全面的监控MySQL数据库。

2.percona-mysql模板结合mysql与zabbix

首先删掉之前手动添加的mysql数据库模块。
在这里插入图片描述

安装percona-mysql模块rpm包

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

在这里插入图片描述

cd /var/lib/zabbix/percona/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

在这里插入图片描述

安装php与mysql连接模块

yum install -y php-mysql

在这里插入图片描述

编辑php脚本,修改连接mysql数据库的用户和密码为root

cd scripts/
vim ss_get_mysql_stats.php 

在这里插入图片描述

重启agent服务

systemctl restart zabbix-agent.service 

在这里插入图片描述

测试查看模块是否添加成功

/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
cd /tmp/
 ll
cat localhost-mysql_cacti_stats.txt

在这里插入图片描述
测试后在/tmp/目录下生成.txt文件
在这里插入图片描述
查看生成文件内容
在这里插入图片描述

测试完成后删除.txt,因为root用户下测试的文件其余用户无法写入

rm -fr localhost-mysql_cacti_stats.txt
ll

在这里插入图片描述

web添加模板,
选择导入,选择模板文件
在这里插入图片描述
在这里插入图片描述
导入成功会显示 已成功导入
在这里插入图片描述
在这里插入图片描述

再导入,因为此时的mysql没有主从一致,所以关闭slave监听端口的触发器
在这里插入图片描述

在这里插入图片描述

完成后再次查看/tmp/下生成的文件

cat localhost-mysql_cacti_stats.txt

在这里插入图片描述

在这里插入图片描述

监控配置完成的标志之一就是,web端可查看图形中的数据。
在这里插入图片描述

三、Zabbix监控java应用

server1:

安装zabbix与java模块插件

yum install  -y zabbix-java-gateway.x86_64

在这里插入图片描述

vim /etc/zabbix/zabbix_java_gateway.conf
systemctl enable --now zabbix-java-gateway.service

在这里插入图片描述

默认java应用监听端口10052

netstat -antlp|grep :10052

在这里插入图片描述

配置server文件

vim zabbix_server.conf

JavaGateway=172.25.9.1  #设定java监听网关指向zabbix-server主机

StartJavaPollers=5 # Java轮询器

在这里插入图片描述

在这里插入图片描述

重启zabbix-server服务

systemctl restart zabbix-server.service

在这里插入图片描述

server3:安装java服务

安装tomcat

tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
cd /usr/local/
ls
ln -s apache-tomcat-7.0.90/ tomcat

在这里插入图片描述

在这里插入图片描述

编辑tomcat脚本,设定监听端口为8888

vim /usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS='-Dcom.sun.management.jmxremote
  -Dcom.sun.management.jmxremote.port=8888
  -Dcom.sun.management.jmxremote.ssl=false
  -Dcom.sun.management.jmxremote.authenticate=false'

在这里插入图片描述

安装jdk

yum install -y java

在这里插入图片描述

脚本启动tomcat,其中tomcat端口为8080,检查8888端口是否启动

cd /usr/local/tomcat/
bin/startup.sh
netstat -antlp

在这里插入图片描述

在这里插入图片描述
网页测试tomcat是否启动成功,访问172.25.9.3:8080端口
在这里插入图片描述

进入zabbix-web配置模板添加java通用模板

在这里插入图片描述
添加JMX接口
在这里插入图片描述

JMX启动成功状态
在这里插入图片描述
查看图形
在这里插入图片描述

四、Zabbix + proxy分布式

准备一台全新的虚拟机server4,安装zabbix+proxy安装包,配置zabbix+proxy分布式

server4 proxy:

yum list zabbix-*
yum install -y zabbix-proxy-mysql.x86_64

在这里插入图片描述
修改zabbix_proxy配置文件

vim /etc/zabbix/zabbix_proxy.conf
Server=172.25.9.1 #分布式服务位于zabbix-server端
ServerPort=10051 #默认端口为10051
Hostname=proxy #主机名为proxy,需要与添加的proxy名保持一致,并且所有zabbix的服务机都需要做解析
DBHost=172.25.9.1 #数据库位置
DBName=zabbix_proxy #数据库中的库名称
DBUser=zabbix #访问数据库的身份
DBPassword=westos #访问数据库的密码
JavaGateway=172.25.9.1 #java服务监听端口指向zabbix-server端
StartJavaPollers=5 #Java轮询器为5,实际设置根据需求

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

cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
scp schema.sql.gz server1:

在这里插入图片描述

修改完配置文件后重启服务

systemctl restart zabbix-proxy.service

查看服务进程是否开启

ps ax

在这里插入图片描述

修改主机名为proxy并添加解析

hostnamectl set-hostname proxy
vim /etc/hosts

在这里插入图片描述

systemctl restart zabbix-proxy.service
cat /var/log/zabbix/zabbix_proxy.log

server1:
创建mysql数据库zabbix_proxy,并将库的所有权利给zabbix用户,授权后刷新
在这里插入图片描述

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

zcat schema.sql.gz | mysql -pwestos zabbix_proxy

在这里插入图片描述

解析proxy

vim /etc/hosts

在这里插入图片描述

server3:

vim /etc/hosts
cat /etc/hosts

在这里插入图片描述

将server3的服务指向proxy,通过proxy连接server,agent ----> proxy(4) ----> server
vim /etc/zabbix/zabbix_agentd.conf

Server=172.25.9.4
ServerActive=172.25.9.4

systemctl restart zabbix-agent.service

测试web创建agent代理程序
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

server4端查看日志

cat /var/log/zabbix/zabbix_server.log 

在这里插入图片描述
设定server3中的java导入proxy后日志变化
在这里插入图片描述

接收来自172.25.9.1数据成功

server1端查看日志
在这里插入图片描述

如果出现error,刷新zabbix-server 数据修改缓存

zabbix_server --help
zabbix_server -R config_cache_reload

查看web端状态
在这里插入图片描述
server3通过server4的proxy成功连接到zabbix-server端,并且所有服务恢复启用。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值