ES默认支持了JMX协议的监控方式,很好用,今天介绍下怎么使用,以前在本机就用过,后面在linux下部署远程一直连不上,终于昨天偶然尝试了一下,居然成功了,记录一下:
相关配置:
1.elasitcsearch.conf里加入
jmx.create_connector : true jmx.port : 9303
这是官方文档提供的方法,默认应该本机就可以用了,通过jconsole连接
service:jmx:rmi:///jndi/rmi://服务器IP:9303/jmxrmi
应该就可以看到里面的监控信息了,但如果想远程连接还需要多加一个配置
vi elasticsearch.in.sh JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=服务器IP"
这句对我来说很关键(不知道其他人是不是),手动绑定下服务器的ip就可以解决之前远程连不上的问题了
你也可以不在/conf/elasticsearch.conf里配置,直接在elasticsearch.in.sh里做相应的配置也行
vi elasticsearch.in.sh JMX_PORT=9305 JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=10.22.22.22"
另外,如果你使用的是ES提供的services-wrapper,则可以做如下修改:
vi services/elasticsearch.conf wrapper.java.additional.12=-Dcom.sun.management.jmxremote.port=9305 wrapper.java.additional.13=-Dcom.sun.management.jmxremote.ssl=false wrapper.java.additional.14=-Dcom.sun.management.jmxremote.authenticate=false wrapper.java.additional.15=-Djava.rmi.server.hostname=10.22.2.22 #key
然后配置完就可用了,通过Jconsole(jdk安装目录)或者visualVm连接即可进行监控,如下图:
Visualvm

Jconsole

本文来自: ElasticSearch-JMX监控相关配置

