使用visualvm500VIP平台搭建监控logstash的运行

visualvm是一个500VIP平台搭建论坛:haozbbs.com Q1446595067 监控jvm运行的工具。想通过visualvm监控远程虚拟机192.10.15.32中logstash的运行。

visualvm访问remote jvm,需要remote开启授权,有两种授权方式:

  1. 通过jstatd启动RMI服务

参照网上的做法

在/root下新建jstatd.all.policy文件,内容

grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermission;
};

之后,检查一下端口1099是否被占用了?

netstat–anp|grep 1099,我这里是已经被占用了

进入到/root下执行命令

nohup jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.10.15.32 -p 1098 &

之后netstat–anp|grep 1098,发现已经在监听了

那么之后addremote – add jstatd connections就自动加载出来运行jvm的程序

可以看到我这里除了jar程序外,还有es和logstash

但是,用这种方式发现一个问题,就是没有thread tab

这是为什么呢?

google了一下,
https://visualvm.github.io/applications_remote.html

参考下面

Monitoring Thread Activity

VisualVM displays real-time, high-level data on thread activity in the Threads tab.
Note: The information displayed in the Threads tab is based on Java Management Extensions (JMX). The Threads tab is visible if VisualVM can make a JMX technology-based connection (JMX connection) with the target application and retrieve JMX instrumentation from the JVM software.

所以还要使用JMX来连接

  1. 开启JMX访问授权

在logstashconfig中配置jvm.options,加入以下参数

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.10.15.32

之后netstat–anp|grep 1100,发现已经在监听了

此时,visualvm在add jmx connection,就可以了

从图中可以看出,有两个jdbc的入口,而只有一个filter-output的出口

补充:如果想来监控javajar命令运行的jvm程序,那么可以直接在命令行添加jmx参数

java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=22222 -jar spider-robot.jar

附:JMX连接与JStatD连接方式的区别

JStatd

jstatd是一个rmi的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具(如visualvm)可以远程连接到本机的jvms 。注意是jvms,就是说运行jstatd命令后可以用监控工具监控本用户(运行jstatd命令的用户)所有已经启动的java程序。原理应该也是同jps一样,读取/tmp/hsperfdata_userName/这样目录下的java程序信息

使用jstatd连接方式时,需要在远程主机上创建安全策略文件然后启动jstatd进程,并且此进程需要一直保持运行状态

客户端可以看到远程主机上当前用户的所有JVM的信息,即只要创建一个jstatd连接

JMX

所谓JMX,是Java Management Extensions的缩写,通过将监控和管理涉及到的各个方面的问题和解决办法放到一起,统一设计,以便向外提供服务,方便的管理、监控正在运行中的Java程序,它的API在以下两个地方:

java.lang.management:

javax.management.*:包括javax.management.loading、javax.management.modelmbean等

使用JMX需要远程JVM在启动的时候开启远程访问支持,设定JMX端口

每一个JMX连接一个远程JVM

至于说用visualvm来debug的用途

  1. 分析性能,进行性能调优
  2. 来分析内存泄露或死锁问题

可以提高对jvm的理解,以后有机会来学习尝试

原文地址:http://blog.51cto.com/13857066/2137604

时间: 2025-01-12 22:11:36

使用visualvm500VIP平台搭建监控logstash的运行的相关文章

监控平台搭建-监控项

本人运维某生态互联网监控平台服务.过程中遇见了很多问题.目前互联网有很多的开源监控工具:nagios.zabbix.falcon.cacti...各有优点.这里不讲解监控工具的优缺点.写一些新搭建监控平台.需要哪些监控项.避免监控一头雾水.具体每个监控项会有若干小项. 监控的简单架构 具体一个机器监控项.基本就是下面的这些.尽量少的监控项,更加高效的分析报警 (1)首先一定是基础的硬件层面(机器的的基础组件) ipmi .监控cpu.温度.卡槽.raid状态.内存 (2)系统层面监控.(这里只介

Cacti监控平台搭建

作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站.服务器的运行状态,这时需要借助开源软件(cacti.nagios.zabbix等)监控来实现. Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdtool是cacti的关键. Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成.snmp抓到数据不是存

采用Opserver来监控你的ASP.NET项目系列(一、Opserver监控的简介与平台搭建)

原文:采用Opserver来监控你的ASP.NET项目系列(一.Opserver监控的简介与平台搭建) 前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. 今天我们主要来讲讲如何监控我们的ASP.NET项目. 首先我们来介绍一下,什么是Opserver,它是Stack Overflow(Stack Overflow是一个与程序相关的IT技术问答网站.用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML.在问题页面,不会弹出任何

CAT跨语言服务加拿大28平台搭建链监控(七)消息分析器与报表

CrossAnalyzer-调用链加拿大28平台搭建论坛:haozbbs.com Q1446595067分析 在分布式环境中,应用是运行在独立的进程中的,有可能是不同的机器,或者不同的服务器进程.那么他们如果想要彼此联系在一起,形成一个调用链,在Cat中,CrossAnalyzer会统计不同服务之间调用的情况,包括服务的访问量,错误量,响应时间,QPS等,这里的服务主要指的是 RPC 服务,在微服务监控中,这是核心. 在讲 CrossAnalyzer 的处理逻辑之前,我们先看下客户端的埋点的一个

Nagios监控平台搭建

Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios和cacti有什么区别呢?简单的来说cacti主要监控流量,服务器状态页面展示:nagios主要监控服务,邮件及短信报警灯,当然也有简单的流量监控界面,二者综合使用效果更好.(附Nagios工作简单逻辑图) Nagios监控客户端需要借助插件及NR

基于rhel7.2的Zabbix平台搭建和部署(二)

 基于rhel7.2的Zabbix平台搭建和部署(二) 一.监控系统Zabbix-3.2.1的安装 zabbix-server端的操作 说明:zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均是/usr/local) (1)创建zabbix运行的用户 [[email protected] ~]# groupadd zabbix [[email protected] ~]# useradd -g zabbix [[email protected] ~]# g

【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(三)

关于windows平台搭建Mongo数据库复制集这个话题,我已经在前面写了两篇博客 第一篇: 如何在windows平台搭建Mongo数据库复制集 第二篇: 数据同步和故障自适应测试 在本篇里面,咱们重点总结一下复制集,以及分析一下它的工作原理 一.常见场景 应用程序和数据库之间的网络连接丢失 计划停机.断电.数据库服务硬盘故障等等 复制可以进行故障转移,复制能让你在副本间均衡读负载,保证复制节点与主节点保持同步 二.工作原理 副本集依赖于两个基础机制:oplog和"心跳"(heartb

基于rhel7.2的Zabbix平台搭建和部署(五)

基于rhel7.2的Zabbix平台搭建和部署(五) zabbix3.2.1邮件报警设置 说明:zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,zabiix监控运行正常. 在zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 一.zabbix报警部署步骤(操作在Zabbix监控服务端进行): 安装sendmail两个依赖包 [[email protected] ~]# yum install -y perl-Net-SSLea

【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)

原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自动修复功能成员节点的功能,各个DB之间的数据完全一致,大大降低了单点故障的风险. [] 以上图示是三个节点的Replica Set架构.该图来源于红丸编写的<Mongodb管理与开发精要>这本书.从上图可以看出,结构类似与一个集群,其实完全可以当做一个集群.因为它确实和集群实现的作用是相同的. 一