Linux企业化运维
实验所用系统为Redhat-rhel7.6。
Linux企业化运维–zabbix之通过jmx监控tomcat、zabbix+proxy代理
一、zabbix通过jmx监控tomcat
zabbix提供java gateway来监控java程序
监控流程是zabbix-server
:10051 -> java gateway-jmx
:10052 -> tomcat
服务器:8888
在浏览器先打开zabbix
监控界面。
172.25.24.1/zabbix
在server2安装tomcat,并进行配置,重启tomcat。
lftp 172.25.254.250
> cd pub/docs/lamp/
> get apache-tomcat-8.5.24.tar.gz
> get jdk-8u121-linux-x64.rpm
rpm -ivh jdk-8u121-linux-x64.rpm
tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
在tomcat官网,查看配置。
进入tomcat的bin目录,进行配置,并开启服务,查看端口检查是否成功开启。
cd /usr/local/
mv apache-tomcat-8.5.24/ tomcat ##重命名
cd tomcat/
ls
cd bin/
vim catalina.sh
///
CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.rmi.port=8889
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'
/// ##注意修改端口
./startup.sh
netstat -antlp | grep java ##:8888 :8889
tmocat服务器
配置完成。
在server1
,zabbix服务端
,配置JavaGateway,首先需要安装zabbix-java-gateway
。
yum list zabbix-* ##zabbix-java-gateway.x86_64
yum install -y zabbix-java-gateway.x86_64
进入zabbix配置目录,查看zabbix_java_gateway.conf
,不做修改,可知监听网段,端口以及进程数等,开启服务并设定开启自启,检查端口10052
。
###server1
yum list zabbix-* ##zabbix-java-gateway.x86_64
yum install -y zabbix-java-gateway.x86_64
cd /etc/zabbix/
ls
vim zabbix_java_gateway.conf
///
不做修改,只获取信息
# LISTEN_IP="0.0.0.0" ##监听所有网段
# LISTEN_PORT=10052 ##监听指定端口
# START_POLLERS=5 ##zabbix server 的进程数,实际中需要适当加大
///
systemctl start zabbix-java-gateway.service
systemctl enable zabbix-java-gateway.service
netstat -antlp | grep :10052
编辑zabbix_server.conf ,指定JavaGateway
,JavaGatewayPort
和StartJavaPollers
,重启zabbix-server
服务。
vim zabbix_server.conf
///
297 JavaGateway=172.25.24.1
305 JavaGatewayPort=10052
313 StartJavaPollers=5
///
systemctl restart zabbix-server.service
进入浏览器,在配置中的主机,点击server2,选择模板,Templates/Applications,Template App Generic Java JMX,选择主机,添加JMX,IP地址为server2的ip172.25.24.2,端口为8888,点击更新。
等待自动更新,JMX变绿,就可以进入图形,查看数据。
二、zabbix+proxy代理
当zabbix的server端压力很大时,使用proxy代理来降低压力。
具体可查看官网代理。
Zabbix proxy 可以代替 Zabbix server 收集性能和可用性数据,承担一些收集数据的负担,分担了 Zabbix server 的负荷。
此外,使用proxy是实现集中式和分布式监控的最简单方法,所有 agents 和 proxies 发送给一个 Zabbix server,从而集中收集所有数据。
Zabbix proxy 使用场景:
监控远程区域设备
监控本地网络不稳定区域
监控上千设备时,减轻 zabbix server 的负荷
简化分布式监控的维护
新建一个快照,server4。
在server3将zabbix复制至server4。
###server3
scp zabbix.repo server4:/etc/yum.repos.d/
在server4主机进行代理安装。
yum list zabbix-*
yum install -y zabbix-proxy-mysql.x86_64
创建数据库,为Zabbix proxy
创建一个单独的数据库 。
[注意] Zabbix server和Zabbix proxy不能使用相同的数据库。
如果它们安装在同一主机上,则proxy数据库必须具有不同的名称。
lftp 172.25.254.250
> cd pub/docs/mysql/
> get mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
ls
yum install -y mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm
systemctl start mysqld
进入zabbix
配置目录,设定服务器为server1,端口和主机名以及数据库密码。
cd /etc/zabbix/
ls
vim zabbix_proxy.conf
///
30 Server=172.25.24.1
39 ServerPort=10051
49 Hostname=proxy
196 DBPassword=Ly+19990825
///
将server4主机名修改为proxy,并在server1服务端和server4代理端进行地址解析。
hostnamectl set-hostname proxy
vim /etc/hosts ##在server1也要做该解析
///
172.25.24.4 server12 proxy
///
查看mysql日志,找到数据库的初始密码,并进行修改。
cat /var/log/mysqld.log ##1Gz:DJ*Th=i(
mysql_secure_installation
^^^^^^
Enter password for user root: 1Gz:DJ*Th=i(
New password:
Change the password for root ? ((Press y|Y for Yes, any other key for No) :
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
进入数据库,建库并授权。导入数据。
mysql -p
> create database zabbix_proxy character set utf8 collate utf8_bin;
> create user zabbix@localhost identified by 'Ly+19990825';
> grant all privileges on zabbix_proxy.* to zabbix@localhost;
cd /usr/share/doc/zabbix-proxy-mysql-5.0.15/
ls
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix_proxy ##导入数据,导入初始架构
在浏览器添加代理程序。
管理 -> agent代理程序 -> 创建代理 -> agent代理程序名称(proxy) -> 代理地址(172.25.24.4) -> 描述(zabbix proxy) -> 添加
在server1
服务端,强制更新zabbix proxy缓存。
###server1
zabbix_server -R config_cache_reload
在server4开启zabbix-proxy
。
###server4
systemctl start zabbix-proxy.service
在浏览器将server3加入代理。
主机 -> server3 -> 由agent代理程序监测(proxy) -> 更新
此时在server3
的配置文件中设定,服务器为server4。重启zabbix-agent
。查看日志看代理是否实现。
###server3
vim /etc/zabbix/zabbix_agentd.conf
///
158 ServerActive=172.25.24.4
117 Server=172.25.24.4
///
systemctl restart zabbix-agent.service
cat /var/log/zabbix/zabbix_agentd.log ##代理实现