• Zabbix实现对Tomcat的监控


    Zabbix实现对Tomcat的监控

    环境准备

    三台机器:

    zabbix_agent 5.0(已安装) Zabbix_java_gateway 5.0 10.0.0.7

    zabbix_server 5.0(已安装) 10.0.0.17

    Tomcat-8.5(已安装) 10.0.0.27

    1. Tomcat开启JMX监控

    [root@tomcat ~]#vim /usr/local/tomcat/bin/catalina.sh
    #   USE_NOHUP       (Optional) If set to the string true the start command will
    #                   use nohup so that the Tomcat process will ignore any hangup
    #                   signals. Default is "false" unless running on HP-UX in which
    #                   case the default is "true"
    # -----------------------------------------------------------------------------
    #以下为添加内容,添加时注释要去掉
    
    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=10.0.0.27"   #tomcat主机自己的IP地址,不要写zabbix服务器的地址
    
    #最终添加内容如下(分行写有时候服务会起不来):
    CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.27"
    
    [root@tomcat ~]#systemctl restart tomcat.service
    
    #出现8080端口和12345端口,说明服务已正常启动
    [root@tomcat ~]#ss -ntl
    State      Recv-Q Send-Q              Local Address:Port                             Peer Address:Port
    LISTEN     0      128                             *:22                                          *:*
    LISTEN     0      100                     127.0.0.1:25                                          *:*
    LISTEN     0      100                          [::]:8080                                     [::]:*
    LISTEN     0      128                          [::]:22                                       [::]:*
    LISTEN     0      50                           [::]:12345                                    [::]:*
    LISTEN     0      100                         [::1]:25                                       [::]:*
    LISTEN     0      50                           [::]:34689                                    [::]:*
    LISTEN     0      50                           [::]:37610                                    [::]:*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    2. 二进制安装Zabbix Java gateway

    环境准备

    #关闭selinux
    [root@zabbix_java_gateway ~]#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    
    #关闭防火墙
    [root@zabbix_java_gateway ~]#systemctl disable --now firewalld
    
    #重启生效
    [root@zabbix_java_gateway ~]#reboot
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.1 安装zabbix rpm源

    [root@zabbix_java_gateway ~]#rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    [root@zabbix_java_gateway ~]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
    [root@zabbix_java_gateway ~]#yum clean all
    
    • 1
    • 2
    • 3

    2.2 安装Zabbix Java gateway

    [root@zabbix_java_gateway ~]#yum list all |grep zabbix-java-gateway
    zabbix-java-gateway.x86_64               5.0.25-1.el7                  zabbix
    
    [root@zabbix_java_gateway ~]#yum -y install zabbix-java-gateway.x86_64
    
    • 1
    • 2
    • 3
    • 4

    2.3 修改Zabbix Java gateway配置文件

    [root@zabbix_java_gateway ~]#vim /etc/zabbix/zabbix_java_gateway.conf
    LISTEN_IP="0.0.0.0"  #监听地址
    LISTEN_PORT=10052  #Java gateway默认监听10052端口
    PID_FILE="/var/run/zabbix/zabbix_java.pid"  #PID_FILE文件
    START_POLLERS=5  #开启的工作线程数
    TIMEOUT=30  #超时时间
    
    [root@zabbix_java_gateway ~]#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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.4 启动Zabbix Java gateway服务

    [root@zabbix_java_gateway ~]#systemctl enable --now zabbix-java-gateway.service
    
    [root@zabbix_java_gateway ~]#systemctl status zabbix-java-gateway.service
    ● zabbix-java-gateway.service - Zabbix Java Gateway
       Loaded: loaded (/usr/lib/systemd/system/zabbix-java-gateway.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2022-06-28 11:47:32 CST; 6min ago
      Process: 2486 ExecStart=/usr/sbin/zabbix_java_gateway (code=exited, status=0/SUCCESS)
     Main PID: 2489 (java)
       CGroup: /system.slice/zabbix-java-gateway.service
               └─2489 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath l...
    
    Jun 28 11:47:31 zabbix_java_gateway systemd[1]: Starting Zabbix Java Gateway...
    Jun 28 11:47:32 zabbix_java_gateway systemd[1]: Started Zabbix Java Gateway.
    
    
    #验证Java gateway端口
    [root@zabbix_java_gateway ~]#ss -ntlp
    State      Recv-Q Send-Q              Local Address:Port                             Peer Address:Port
    LISTEN     0      128                             *:10050                                       *:*users:(("zabbix_agentd",pid=1333,fd=4),("zabbix_agentd",pid=1332,fd=4),("zabbix_agentd",pid=1331,fd=4),("zabbix_agentd",pid=1330,fd=4),("zabbix_agentd",pid=1329,fd=4),("zabbix_agentd",pid=1328,fd=4),("zabbix_agentd",pid=1327,fd=4),("zabbix_agentd",pid=1326,fd=4))
    LISTEN     0      128                             *:22                                          *:*users:(("sshd",pid=1309,fd=3))
    LISTEN     0      100                     127.0.0.1:25                                          *:*users:(("master",pid=1414,fd=13))
    LISTEN     0      50                           [::]:10052                                    [::]:*users:(("java",pid=1308,fd=12))
    LISTEN     0      128                          [::]:22                                       [::]:*users:(("sshd",pid=1309,fd=4))
    LISTEN     0      100                         [::1]:25                                       [::]:*users:(("master",pid=1414,fd=14))
    
    
    [root@zabbix_java_gateway ~]#lsof -i:10052
    COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    java    2300 zabbix   12u  IPv6  31728      0t0  TCP *:10052 (LISTEN)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    3. 配置zabbix server调用java gateway

    [root@zabbix_server ~]#vim /etc/zabbix/zabbix_server.conf
    JavaGateway=10.0.0.7  #JavaGateway的所在服务器IP地址
    JavaGatewayPort=10052  #JavaGateway的服务端口
    StartJavaPollers=5  #从javaGateway采集数据的进程数
    
    #建议让StartJavaPollers选项的值小于或等于START_POLLERS
    
    [root@zabbix_server ~]#grep "^[a-Z]" /etc/zabbix/zabbix_server.conf
    ListenPort=10051
    LogType=file
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=500
    DebugLevel=3
    PidFile=/var/run/zabbix/zabbix_server.pid
    SocketDir=/var/run/zabbix
    DBHost=10.0.0.17
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    DBPort=3306
    StartPollers=2
    StartPreprocessors=3
    StartPollersUnreachable=2
    StartTrappers=5
    StartPingers=5
    StartHTTPPollers=3
    StartTimers=3
    StartEscalators=1
    StartAlerters=3
    JavaGateway=10.0.0.7
    JavaGatewayPort=10052
    StartJavaPollers=5
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    StartSNMPTrapper=1
    HousekeepingFrequency=4
    MaxHousekeeperDelete=1000000
    CacheSize=128M
    CacheUpdateFrequency=60
    StartDBSyncers=6
    HistoryCacheSize=128M
    HistoryIndexCacheSize=32M
    TrendCacheSize=16M
    ValueCacheSize=16M
    Timeout=30
    UnavailableDelay=60
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    FpingLocation=/usr/sbin/fping
    LogSlowQueries=3000
    TmpDir=/var/run/zabbix/
    StartProxyPollers=3
    ProxyConfigFrequency=60
    ProxyDataFrequency=60
    AllowRoot=1
    User=root
    
    [root@zabbix_server ~]#systemctl restart zabbix-server.service
    
    [root@zabbix_server ~]#ss -ntl
    State      Recv-Q Send-Q              Local Address:Port                             Peer Address:Port
    LISTEN     0      128                             *:22                                          *:*
    LISTEN     0      100                     127.0.0.1:25                                          *:*
    LISTEN     0      128                             *:10050                                       *:*
    LISTEN     0      128                             *:10051                                       *:*
    LISTEN     0      128                     127.0.0.1:9000                                        *:*
    LISTEN     0      80                           [::]:3306                                     [::]:*
    LISTEN     0      128                          [::]:80                                       [::]:*
    LISTEN     0      128                          [::]:22                                       [::]:*
    LISTEN     0      100                         [::1]:25                                       [::]:*
    LISTEN     0      128                          [::]:10050                                    [::]:*
    LISTEN     0      128                          [::]:10051                                    [::]:*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    4. zabbix server添加JMX监控

    点击【配置-主机-10.0.0.7-web1-添加JMX接口】在这里插入图片描述

    5. zabbix server关联模板

    在这里插入图片描述

    6. 验证当前JMX状态及数据

    #【JMX绿色】表示JMX主机可用,监控指标检查已成功

    在这里插入图片描述

  • 相关阅读:
    【学习笔记】元学习如何解决计算机视觉少样本学习的问题?
    Vue3 从入门到放弃 (第二篇.创建第一个Web应用)
    设计模式-02-工厂模式
    .NET RulesEngine(规则引擎)
    C语言详解系列——数组详解,一维数组、二维数组
    记一次docker环境搭建笔记
    java毕业设计开题报告SSM实现的在线音乐歌曲网站音乐播放器
    COMSOL泰森多边形Voronoi图多孔骨架优化模型受力分析
    C++的线程介绍
    通过Node + SSE 做了一个构建日志推送
  • 原文地址:https://blog.csdn.net/weixin_51867896/article/details/125510470