gpt4 book ai didi

java - 通过 SNMP 监控同一主机上的多个 java 进程

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:54:54 27 4
gpt4 key购买 nike

我想在运行多个 java 进程的 Linux 机器上通过 SNMP 监控 JVM,当然,每个 java 进程都是独立的,并且有不同的 SNMP 计数器( Activity 线程数、可用内存等),文档中的配置示例假设机器上只有一个 java 进程。我正在寻找一个简单的解决方案,我的监控工具会询问该主机上的 SNMP 管理器,而无需知道每个 java 进程的端口(如果它会询问来自远程机器的 OID - 哪个 java 进程会回答它......?他怎么能知道……?)

谢谢!!!

最佳答案

下载 Java MIB 文件: Java MIB File 并将其放入:/usr/share/snmp/mibs/JVM-MANAGEMENT-MIB.txt

  1. 因为我们要远程询问SNMP,所以我们还需要设置网络接口(interface):

    -Dcom.sun.management.snmp.port=8161 -Dcom.sun.management.snmp.interface=0.0.0.0

  2. 因为没有默认社区,我们需要添加(在顶部)到 snmpd.conf:

    rocommunity public

  3. 因为 Java 进程监听特定的端口,我们想要消除外部的机器网络拓扑 - 我们需要通过配置 snmpd.conf 将特定的 OID 前缀转发给代理路由:

    proxy -m /usr/share/snmp/mibs/JVM-MANAGEMENT-MIB.txt -v 2c -c public localhost:8161 .1.3.6.1.4.1.42.2.145

  4. 因为我们想在同一台机器上请求相同的 OID,并且该机器运行守护进程的多个实例 - 我们需要将每个实例的虚拟 OID 映射到 snmpd.conf 中的 Java 进程 OID:

    proxy -m /usr/share/snmp/mibs/JVM-MANAGEMENT-MIB.txt -v 2c -c public localhost:8161 .1.3.6.1.4.1.42.2.99 .1.3.6.1.4.1.42.2.145

    proxy -m /usr/share/snmp/mibs/JVM-MANAGEMENT-MIB.txt -v 2c -c public localhost:8162 .1.3.6.1.4.1.42.2.999 .1.3.6.1.4.1.42.2.145

  5. 重启 snmpd 并测试它:

    snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.42.2.99

    snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.42.2.999

关于java - 通过 SNMP 监控同一主机上的多个 java 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6429089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com