zoukankan      html  css  js  c++  java
  • Zabbix之二----Zabbix监控Tomcat服务

    战一:Zabbix监控Tomcat

    1、介绍

    Java虚拟机(JVM)具有内置的插装,使您能够使用JMX监视和管理它。您还可以使用JMX监视工具化的应用程序。

    监控原理:当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。

     从上面的原理图中可以看出,配置Zabbix监控Java应用程序的关键点在于:配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等。

    2、node2主机上(Tomcat服务器)安装JDKrpm包

    使用Oracle官网的JDK 8的rpm包

    官方下载JDK地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    (1)安装下载下来的JDK 8的rpm包

    [root@node2 ~]# yum install jdk-8u211-linux-x64.rpm -y
    

    (2)配置java全局变量

    [root@node2 ~]# cat /etc/profile.d/jdk.sh  # 设置环境变量
    export JAVA_HOME=/usr/java/default
    export PATH=$JAVA_HOME/bin:$PATH
    
    [root@node2 ~]# . /etc/profile.d/jdk.sh  # 使环境变量生效
    

    (3)查看JDK版本

    [root@node2 ~]# java -version
    java version "1.8.0_211"
    Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
    

    3、下载安装二进制Tomcat包

    (1)从官网下载tomcat二进制安装包 http://tomcat.apache.org/

    下载路径:https://archive.apache.org/dist/tomcat/

    (2)解包,指定解压的目录,并创建软链接

    [root@node2 ~]# tar xvf apache-tomcat-8.5.42.tar.gz  -C /usr/local
    [root@node2 ~]# ln -sv  /usr/local/apache-tomcat-8.5.42/  /usr/local/tomcat
    ‘/usr/local/tomcat/apache-tomcat-8.5.42’ -> ‘/usr/local/apache-tomcat-8.5.42/’
    

    (3)配置tomcat参数vim /usr/local/tomcat/bin/catalina.sh

    CATALINA_OPTS="$CATALINA_OPTS
    -Dcom.sun.management.jmxremote  #启用远程监控JMX
    -Dcom.sun.management.jmxremote.port=12345 # 默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
    -Dcom.sun.management.jmxremote.authenticate=false # 不使用用户名密码
    -Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
    -Djava.rmi.server.hostname=192.168.7.102" #tomcat主机自己的IP地址,不要写zabbix服务器的地址

    (4)以ROOT身份启动Tomcat服务(不推荐,账号破解后就会被黑客以root身份做其他服务的破坏)

    [root@node2 tomcat]# ./bin/catalina.sh start
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/java/default
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    [root@node2 tomcat]# ss -nlt
    State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
    LISTEN      0      100                                  127.0.0.1:25                                                       *:*                  
    LISTEN      0      128                                          *:22                                                       *:*                  
    LISTEN      0      50                                        [::]:12345   # 验证监听了12345端口                                               [::]:*                  
    LISTEN      0      100                                      [::1]:25                                                    [::]:*                  
    LISTEN      0      1                           [::ffff:127.0.0.1]:8005                                                  [::]:*                  
    LISTEN      0      50                                        [::]:22567                                                 [::]:*                  
    LISTEN      0      100                                       [::]:8009                                                  [::]:*                  
    LISTEN      0      50                                        [::]:35756                                                 [::]:*                  
    LISTEN      0      100                                       [::]:8080     # 监听8080的tomcat端口                                             [::]:*                  
    LISTEN      0      128                                       [::]:22                                                    [::]:* 

    (5)为了tomcat服务安全起见,最好不要用root用户登录,防止被破解之后存在安全隐患,建议自己新建一个普通用户进行登录  

    [root@node2 tomcat]# useradd -r java # #创建一个系统账号,此时就没有家目录
    [root@node2 tomcat]# chown -R java.java /usr/local/tomcat/  #将tomcat目录下的文件所有者和所属组都进行修改
    [root@node2 tomcat]# su - java -c /usr/local/tomcat/bin/startup.sh  #以java用户形式进行启动tomcat服务
    

    (6)查看此时启动的服务是以java用户进行启动的

     (7)网页验证此时的tomcat服务已经可以访问

     (8)在oracle jdk download官网下载windows版本的JDK,安装并验证此时tomcat安装结果。

         官网下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

     (9)在安装好的windows版本的JDK后,打开指定的执行程序进行验证:

     (10)远程登录连接(远程此时tomcat主机的IP地址)

     (11)连接进去之后有tomcat服务的信息即可,说明安装正确。

     4、在zabbix-server服务端机器上安装对应的zabbix-java-gateway包

     (1)在zabbix-server服务器上安装zabbix-java-gateway包。

    [root@zabbix ~]# yum install zabbix-java-gateway -y
    

    (2)修改/etc/zabbix/zabbix_java_gateway.conf 配置文件

    LISTEN_IP="0.0.0.0"  # 默认监控0.0.0.0的IP地址
    LISTEN_PORT=10052 # 默认监控10052端口
    START_POLLERS=5  # 启动多少个进程轮询java,要和java 应用保持一定关系
    TIMEOUT=30   # 超时时间30s,最大时间也就是30s,尽量超时时长改大点,否则后端服务器还未响应,当大于超时时长才进行响应,此时java-gateway已经显示超时。
    

    核对配置的信息:

    [root@zabbix ~]# grep "^[a-Z]" /etc/zabbix/zabbix_java_gateway.conf 
    LISTEN_IP="0.0.0.0"
    LISTEN_PORT=10052
    PID_FILE="/var/run/zabbix/zabbix_java.pid"
    START_POLLERS=5
    TIMEOUT=30

    重启zabbix-java-gateway服务:systemctl restart zabbix-java-gateway

    (3)修改vim /etc/zabbix/zabbix_server.conf 配置文件

    JavaGateway=192.168.7.100 # 数据库的IP地址,此时的数据库IP地址和zabbix-server在同一机器,也可以分开配置
    JavaGatewayPort=10052 # 默认监听的是10052端口
    StartJavaPollers=5  #启动多少个进程去轮询java gateway,要和java gateway的配置一致
    

    重启zabbix-server服务:systemctl restart zabbix-server

    (4)查看此时的进程数,就会看到有5个进程

     5、登陆zabbix网页:192.168.7.100/zabbix/index.html,添加JMX接口

     (1)在原有的主机上进行选择,然后将之前配置好的机器进行克隆。

    (2)克隆一个新的模板,不需要自己手动新建,节约时间。

     (3)添加JMX接口:tomcat服务对应的IP地址

     (4)node2上添加Tomcat JMX模板(最好添加自定义的模板,此模板显示不是很全面)

     注意:以下是导入个人自定义的模板:先点击导入(推荐导入个人自定义模板)

      选择自定义模板,并导入

     (5)此时可以看到zabbix-web界面已经显示JMX变绿色的图标,说明配置正确。

     (6)在安装了tomcat服务的基础上安装zabbix-agent包,将agent也监控上

    [root@node2 ~]# yum install zabbix-agent  -y  # 安装zabbix-agent包
    

    (7)配置zabbix-agent文件:vim /etc/zabbix/zabbix_agentd.conf

    Server=192.168.7.100   # zabbix服务端的IP地址
    Hostname=192.168.7.102 # 本机node2主机的IP地址,或者起一个与zabbix服务器端不重名的名称
    ListenPort=10050    # 本机监听的端口
    ListenIP=0.0.0.0   # 允许监听在本机的地址,0.0.0.0 是监听所有
    

    (8)重启zabbix-agent服务

    # systemctl restart zabbix-agent 
    

    (9)在zabbix-server服务端进行测试验证此时的zabbix-agent是否正常

    [root@zabbix ~]# zabbix_get -s 192.168.7.102 -p 10050 -k "agent.ping"  # 显示结果是1,说明配置正常
    1

    (10)在zabbix网页上配置zabbix-agent

     添加zabbix-agent

     添加Template OS Linux模板,然后点击更新即可。

    查看此时监控的agent和tomcat都显示绿色,说明监控正常。

      

      

      

         

      

     

  • 相关阅读:
    C# 文件绝对路径与相对路径的转换
    DevExpress TreeList 禁止节点拖动到其他节点上
    C# 通过KD树进行距离最近点的查找.
    C# 利用键值对取代Switch...Case语句
    C# 利用位运算传递多个参数方法
    Deepin安装node与npm
    python-demo:计算合格率
    SpringDataJpa在一对多、多对多关系映射时出现StackOverflowError
    npm install 问题汇总
    CentOS7 使用firewalld打开关闭防火墙与端口
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/12307115.html
Copyright © 2011-2022 走看看