企业入门实战--Zabbix(下)之Zabbix监控nginx、mysql、java应用以及zabbix+proxy分布式
一、Zabbix添加监控服务nginx
实验环境准备:
server1 zabbix-server端
server2/3 zabbix-agent
源码编译安装nginx服务并安装监控模块
yum install pcre-devel gcc openssl-devel -y ### configure过程中需要的依赖性软件
./configure --with-http_stub_status_module --with-http_ssl_module
make install
创建软链接
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
编辑nginx配置文件,设定打开监控状态并设置访问控制,只允许本地访问。
cd /usr/local/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
重启服务
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 zabbix-get -y
zabbix_get-s 172.25.5.2-p10050-k "nginx.active"
图形添加监控项,创建图形。
创建监控项详细操作:
当出现数值时说明图形添加成功。
添加更多nginx监控项:
cd/etc/zabbix/
cd zabbix_agentd.d/
vim userparameter_nginx. conf UserParameter=nginx. active, curl-s http:/localhost/status Igrep Activelawk '{ print $3"
UserParameter=nginx. accept, curl-s http:/localhost/statuslawk NR==3l awk '{ print $1}"
UserParameter=nginx. handle, curl-s http://localhost/statuslawk NR==3lawk'{ print $2}'
UserParameter=nginx. requset, curl-s http:/localhost/statuslawk NR==3lawk{ print $3}'
重启agent端服务读取脚本
systemctl restart zabbix-agent.service
server1
不报错说明正确
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
二、Zabbix监控添加mysql
1.手动结合mysql与zabbix
zabbix添加服务会读取/etc/zabbix/zabbix_agentd.d/的.conf文件,手动监控添加mysql即编写mysql相关.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
重启服务:
systemctl restart zabbix-agent.service
重启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中手动添加模板
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
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg ##测试后在/tmp/目录下生成.txt文件
测试完成后删除.txt,因为root用户下测试的文件其余用户无法写入
rm -fr localhost-mysql_cacti_stats.txt
ll
web添加模板,
选择导入,选择模板文件
再导入,因为此时的mysql没有主从一致,所以关闭slave监听端口的触发器
完成后再次查看/tmp/下生成的文件
cat localhost-mysql_cacti_stats.txt
三、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.5.1
JavaGatewayPort=1005
StartjavaPollers=5
重启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
编辑tomcat脚本,设定监听端口为8888
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 |grep :8888
进入zabbix-web配置模板添加java通用模板
成功后:
四、Zabbix + proxy分布式
准备一台全新的虚拟机server4,安装zabbix-proxy安装包
server4
编辑配置文件
vim zabbix_proxy.conf
DBUser=zabbix
DBPassword=westos
DBHost=17225
server1
进入数据库,并给zabbix用户授权
mysql -pwestos
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all on zabbix_proxy.* to zabbix@%' identified by westos;
flush privileges;
server4
将生成的数据库信息传给数据库位置server1中
cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
scp schema.sql.gz server1:
server1
导入数据库
zcat schema.sql.gz |mysql -pwestos zabbix_proxy
server4
systemctl start zabbix-proxy.service
ps ax ##查看进程
修改主机名为proxy并添加解析(server1/2/3/4)
hostnamectl set-hostname proxy
vim /etc/hosts
将server3的服务指向proxy,通过proxy连接server,agent ----> proxy(4) ----> server
vim /etc/zabbix/zabbix_agentd.conf
server1 和server4 重启服务