文章目录
1.zabbix server的mysql监控
由于之前server1有仓库,为了节省资源,我们直接使用server1
只要让agent可以通过mysql的密码认证,在zabbix下建立隐藏文件,说明具体命令执行的用户、密码、socket
1.1.导入已有Mysql模板
root@server1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# mysqladmin password westos ##修改密码
[root@server1 zabbix_agentd.d]# mkdir /var/lib/zabbix
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf ##隐藏文件
[root@server1 zabbix]# cat .my.cnf
[mysql]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock
[root@server1 zabbix]#systemctl restart zabbix-agent.service ##重启zabbix-agent服务
[root@server1 zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k "mysql.ping"
1 #手动测试,有返回值即可
网页配置测试
1.2.安装perconam模板并导入
由于自带的mysq模板监控项太少,所以我们需要添加perconam模板
[root@server1 zabbix]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm ##组件安装
warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:percona-zabbix-templates-1.1.8-1 ################################# [100%]
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates
[root@server1 templates]# ls
userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/
[root@server1 templates]# cd ..
[root@server1 percona]# ls
scripts templates
[root@server1 percona]# cd scripts/
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@server1 scripts]# vim ss_get_mysql_stats.php
30 $mysql_user = 'root';
31 $mysql_pass = 'westos';
bash[root@server1 scripts]# cd ..
[root@server1 percona]# cd templates/
[root@server1 templates]# ls
userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d
[root@server1 templates]# wc -l userparameter_percona_mysql.conf
190 userparameter_percona_mysql.conf
[root@server1 scripts]# systemctl restart zabbix-agent.service
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
1 ##手动测试
[root@server1 scripts]# zabbix_get -s 127.0.01 -p 10050 -k "MySQL.Key-read-requests"
1 ##有返回值
[root@server1 scripts]# cd /tmp/
[root@server1 tmp]# ls
systemd-private-0a0ca34dda544887b3ee55b85caba6fd-httpd.service-C60rtj
systemd-private-0a0ca34dda544887b3ee55b85caba6fd-mariadb.service-NfVV0y
systemd-private-91ac0c62fd4349b7aeff4d7d25426f66-httpd.service-Gw230G
systemd-private-91ac0c62fd4349b7aeff4d7d25426f66-mariadb.service-a8D3Gd
yum_save_tx.2021-07-13.15-45.X9veWf.yumtx
[root@server1 tmp]# ll
total 4
-rw-rw-r-- 1 zabbix zabbix 0 Jul 14 12:38 localhost-mysql_cacti_stats.txt
##手动测试,会生成此文件,生成的默认权限是root,可删除或修改为zabbix,否则数据没有更改
drwx------ 3 root root 17 Jul 13 16:00 systemd-private-0a0ca34dda544887b3ee55b85caba6fd-httpd.service-C60rtj
drwx------ 3 root root 17 Jul 13 15:47 systemd-private-0a0ca34dda544887b3ee55b85caba6fd-mariadb.service-NfVV0y
drwx------ 3 root root 17 Jul 14 08:59 systemd-private-91ac0c62fd4349b7aeff4d7d25426f66-httpd.service-Gw230G
drwx------ 3 root root 17 Jul 14 08:59 systemd-private-91ac0c62fd4349b7aeff4d7d25426f66-mariadb.service-a8D3Gd
-rw------- 1 root root 2283 Jul 13 15:45 yum_save_tx.2021-07-13.15-45.X9veWf.yumtx
网页配置测试
导入Percona模板
将Percona模板下载至物理机,通过Browse引导添加,并添加聚合图形选项
添加Percona模板
此时zabbix server监控项达279,点击触发器,禁用下图触发器,因为实验中没有salve!
点击图形,点击cpu jumps(可任意选择) 进行预览
2.结合tomcat,监控tomcat java应用
Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的websphere、BEA的Weblogic,sun的JRun等等。
监控流程:zabbix–>jmx(10052)–>tomcat(8888),利用zabbix通过jmx远程监控端口来监控tomcat java应用
2.1.agent端
[root@server2 ~]# yum install -y java-1.8.0-openjdk.x86_64 #Tomcat服务器主要用于部署java web项目,所以要先安装此组件
[root@server2 ~]# ls
apache-tomcat-7.0.90.tar.gz simkai.ttf zabbix
[root@server2 ~]# tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/ ##解压文件,可在官网下载
[root@server2 local]# ln -s apache-tomcat-7.0.90/ tomcat ##建立软连接
[root@server2 local]# ls
apache-tomcat-7.0.90 bin etc games include lib lib64 libexec sbin share src tomcat
[root@server2 local]# cd tomcat/bin/
[root@server2 bin]# vim catalina.sh
107 CATALINA_OPTS='-Dcom.sun.management.jmxremote
108 -Dcom.sun.management.jmxremote.port=8888 ##创建远程监控8888端口
109 -Dcom.sun.management.jmxremote.ssl=false ## 不加密
110 -Dcom.sun.management.jmxremote.authenticate=false' ##不认证
[root@server2 bin]# ./startup.sh ##在zabbix server没有JAVA网关
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
[root@server2 bin]# ./startup.sh ##正常执行结果
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@server2 bin]# netstat -antlp | grep 8888 ##tomcat java 服务监控端口
tcp6 0 0 :::8888 :::* LISTEN 23823/java
[root@server2 bin]# netstat -antlp | grep 8080 ##tomcat java 服务开启端口
tcp6 0 0 :::8080 :::* LISTEN 23823/java
2.2zabbix-server端
[root@server1 ~]# yum install zabbix-java-gateway
[root@server1 ~]# vim /etc/zabbix/zabbix_java_gateway.conf
9 LISTEN_IP="0.0.0.0"
17 LISTEN_PORT=10052
35 START_POLLERS=5
[root@server1 ~]# systemctl restart zabbix-java-gateway.service
[root@server1 zabbix]# systemctl enable --now zabbix-java-gateway.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/systemd/system/zabbix-java-gateway.service.
[root@server1 zabbix]# vim /etc/zabbix/zabbix_server.conf
288 JavaGateway=172.25.6.1 zabbix-server的ip
296 JavaGatewayPort=10052
304 StartJavaPollers=5
[root@server1 zabbix]# systemctl restart zabbix-server.service
[root@server1 zabbix]# netstat -antlp | grep 10052
tcp6 0 0 :::10052 :::* LISTEN 28254/java tcp6 0 0 172.25.6.1:10052 172.25.6.1:47294 TIME_WAIT -
网页测试
点击server2,添加JMX接口,
添加java jmx模板
server2的jmx点亮即位成功
3.proxy部署
3.1.proxy简介
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力. 此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
zabbix proxy 使用场景:
监控远程区域设备 监控本地网络不稳定区域 当 zabbix 监控上千设备时,使用它来减轻 server 的压力
3.2.Zabbix-proxy端部署
[root@server4 ~]# hostnamectl set-hostname proxy #修改主机名
[root@server4 ~]# vim /etc/hosts
172.25.6.4 server4 proxy ##将此解析添加至所以主机中,以区分proxy端主机
[root@server4 ~]# yum install -y zabbix-proxy-mysql ##安装组件
[root@server4 ~]# vim /etc/zabbix/zabbix_proxy.conf ##修改配置文件,进行数据库配置
162 DBHost=172.25.6.1 #数据库位置
173 DBName=zabbix_proxy #数据库中的库名称
188 DBUser=zabbix #访问数据库的身份
196 DBPassword=westos #访问数据库的密码
[root@server4 zabbix]# systemctl start zabbix-proxy.service
[root@server4 zabbix]# systemctl enable --now zabbix-proxy
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.
[root@server4 zabbix]# netstat -antlp | grep proxy ##监测proxy服务开启
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 14042/zabbix_proxy
tcp 0 0 172.25.6.4:39740 172.25.6.1:3306 ESTABLISHED 14044/zabbix_proxy:
tcp 0 0 172.25.6.4:34664 172.25.6.1:3306 ESTABLISHED 14048/zabbix_proxy:
tcp 0 0 172.25.6.4:34660 172.25.6.1:3306 ESTABLISHED 14060/zabbix_proxy:
tcp 0 0 172.25.6.4:34654 172.25.6.1:3306 ESTABLISHED 14049/zabbix_proxy:
tcp 0 0 172.25.6.4:34564 172.25.6.1:3306 ESTABLISHED 14046/zabbix_proxy:
tcp6 0 0 :::10051 :::* LISTEN 14042/zabbix_proxy
[root@server4 zabbix]# yum install -y mariadb
[root@server4 ~]# vim /etc/zabbix/zabbix_proxy.conf ##修改配置文件,进行proxy代理配置和javaGateway配置
30 Server=172.25.6.1 #分布式服务位于zabbix-serve
39 ServerPort=10051 #默认端口为10051
49 Hostname=proxy #主机名为proxy,需要与添加的proxy名保持一致
329 JavaGateway=172.25.6.1 ##javaGateway服务主机为zabbix-serve
337 JavaGatewayPort=10052 ##默认端口为10052
345 StartJavaPollers=5 ##Java轮询器为5,实际设置根据需求
[root@server4 ~]# systemctl restart zabbix-proxy.service ##重启服务
[root@server4 zabbix]# cd /usr/share/doc/
[root@server4 doc]# cd zabbix-proxy-mysql-4.0.5/
[root@server4 zabbix-proxy-mysql-4.0.5]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@server4 zabbix-proxy-mysql-4.0.5]# scp schema.sql.gz server1:/root ##生成的数据库信息传给server1的root目录,为导入server1的mysql数据库作准备
3.3.Zabbix-server端部署
Zabbix-server端mysql数据库配置
[root@server1 ~]# mysql -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3184
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; ##创建mysql数据库zabbix_proxy
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix_proxy.* to 'zabbix'@'%'identified by 'westos'; #库zabbix_proxy所有权利给zabbix用户
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; ##刷新
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
[root@server1 ~]# ls
schema.sql.gz
[root@server1 ~]# zcat schema.sql.gz | mysql -pwestos zabbix_proxy ##将schema.sql.gz 文件解压后导入 zabbix_proxy 库中
[root@server1 ~]# zabbix_server -R config_cache_reload
zabbix_server [32160]: command sent successfully ##加载刷新
3.4.Zabbix-proxy-agent端部署
根据proxy原理,其原理流程为:Zabbix-agent(server2)----> Zabbix-proxy(server4)----> Zabbix-server(server1)
[root@server2 ~]# cd /etc/zabbix/
[root@server2 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@server2 zabbix]# vim zabbix_agentd.conf
98 Server=172.25.6.1
139 ServerActive=172.25.6.1
[root@server3 zabbix]# systemctl restart zabbix-agent.service
4.网页配置测试
点击server2,在agent代理程序代理栏选择agent