arthas介绍

准备

  • 准备docker环境
name port
centos_arthas 3658:3658
docker run -tid --name centos_arthas -p 3658:3658 --privileged=true centos:latest /sbin/init
docker exec -it centos_arthas /bin/bash

配置修改

  • 此处的配置修改按照本站之前博客路径进行修改
  • 创建,修改java.policy文件
touch /opt/es/config/java.policy
vi /opt/es/config/java.policy
#修改如下
grant codeBase "file:${user.home}/.arthas/lib/-" {
permission java.io.FilePermission "${user.home}/.arthas/-", "read,write";
permission java.io.FilePermission "${user.home}/logs/arthas/-", "read,write,delete";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "shutdownHooks";
permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect";
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.http";
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.http";
permission java.net.SocketPermission "127.0.0.1:3658", "listen,resolve";
permission java.net.SocketPermission "127.0.0.1:8563", "listen,resolve";
permission java.net.SocketPermission "*", "accept";
};
#增加jvm启动参数
echo "-Djava.security.policy=file:///opt/es/config/java.policy" >> /opt/es/config/jvm.options
  • 修改/opt/es/jdk/conf/security/java.policy配置
vi /opt/es/jdk/conf/security/java.policy
#增加如下配置
grant {
permission org.elasticsearch.ThreadPermission "modifyArbitraryThreadGroup";
permission org.elasticsearch.ThreadPermission "modifyArbitraryThread";
}; grant {
permission java.io.FilePermission "<<ALL FILES>>", "read,write";
permission java.util.PropertyPermission "JM.LOG.PATH", "write";
permission java.lang.RuntimePermission "*";
permission java.lang.reflect.ReflectPermission "*";
permission java.net.SocketPermission "*", "connect,listen,resolve,accept";
permission ognl.OgnlInvokePermission "*";
};
  • 启动elasticsearch
/opt/es/bin/elasticsearch -d

安装arthas

  • 配置环境变量(这里使用es自带的jdk)
echo 'export JAVA_HOME=/opt/es/jdk' >>  ~/.bashrc
echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
chmod +x ~/.bashrc
source ~/.bashrc
  • 安装arthas
[elastic@3f24eb371050 opt]$ curl -O https://arthas.aliyun.com/arthas-boot.jar
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 135k 100 135k 0 0 217k 0 --:--:-- --:--:-- --:--:-- 217k
[elastic@3f24eb371050 opt]$ java -jar arthas-boot.jar --repo-mirror aliyun --use-http
[INFO] arthas-boot version: 3.4.4
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 513 org.elasticsearch.bootstrap.Elasticsearch
1
[INFO] Start download arthas from remote server: http://arthas.aliyun.com/download/3.4.4?mirror=aliyun
[INFO] File size: 11.94 MB, downloaded size: 4.32 MB, downloading ...
[INFO] File size: 11.94 MB, downloaded size: 7.45 MB, downloading ...
[INFO] File size: 11.94 MB, downloaded size: 9.85 MB, downloading ...
[INFO] Download arthas success.
[INFO] arthas home: /home/elastic/.arthas/lib/3.4.4/arthas
[INFO] Try to attach process 513
[INFO] Attach process 513 success.
[INFO] arthas-client connect 127.0.0.1 3658
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ''--. .--'| '--' | / O \ ' .-'
| .-. || '--'.' | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----' wiki https://arthas.aliyun.com/doc
tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
version 3.4.4
pid 513
time 2020-11-30 05:37:25 [arthas@513]$ shutdown ##安装完成后先退出增加--target-ip参数启动
  • 启动
[elastic@3f24eb371050 opt]$ java -jar arthas-boot.jar  --target-ip 0.0.0.0
[INFO] arthas-boot version: 3.4.4
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 513 org.elasticsearch.bootstrap.Elasticsearch
1
[INFO] arthas home: /home/elastic/.arthas/lib/3.4.4/arthas
[INFO] Try to attach process 513
[INFO] Attach process 513 success.
[INFO] arthas-client connect 0.0.0.0 3658
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ''--. .--'| '--' | / O \ ' .-'
| .-. || '--'.' | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----' wiki https://arthas.aliyun.com/doc
tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
version 3.4.4
pid 513
time 2020-11-30 05:39:45 [arthas@513]$ dashboard
  • 监控数据,成功启动
ID   NAME                          GROUP          PRIORITY  STATE     %CPU      DELTA_TIM TIME      INTERRUPT DAEMON
-1 C1 CompilerThread0 - -1 - 0.23 0.011 0:2.577 false true
-1 C2 CompilerThread0 - -1 - 0.13 0.006 0:9.784 false true
153 Timer-for-arthas-dashboard-02 system 5 RUNNABLE 0.08 0.004 0:0.055 false true
151 arthas-NettyHttpTelnetBootstr system 5 RUNNABLE 0.06 0.003 0:0.086 false true
19 elasticsearch[3f24eb371050][s main 5 TIMED_WAI 0.06 0.003 0:0.599 false true
43 elasticsearch[3f24eb371050][m main 5 TIMED_WAI 0.05 0.002 0:0.032 false true
45 elasticsearch[3f24eb371050][m main 5 TIMED_WAI 0.04 0.002 0:0.023 false true
-1 VM Periodic Task Thread - -1 - 0.04 0.002 0:0.391 false true
-1 VM Thread - -1 - 0.01 0.000 0:0.225 false true
18 elasticsearch[3f24eb371050][[ main 5 TIMED_WAI 0.01 0.000 0:0.101 false true
-1 Sweeper thread - -1 - 0.0 0.000 0:0.159 false true
Memory used total max usage GC
heap 264M 989M 989M 26.73% gc.parnew.count 8
par_eden_space 190M 273M 273M 69.70% gc.parnew.time(ms) 138
par_survivor_space 26M 34M 34M 77.56% gc.concurrentmarksweep.count 2
cms_old_gen 47M 682M 682M 7.00% gc.concurrentmarksweep.time(m 39
nonheap 126M 137M -1 92.30% s)
codeheap_'non-nmethods' 1M 2M 5M 27.30%
metaspace 97M 104M -1 93.26% Runtime
os.name Linux
os.version 4.19.76-linuxkit
java.version 13.0.2
java.home /opt/es/jdk
systemload.average 0.00
processors 6
uptime

通过web访问arthas

  • 增加--target-ip参数(上面的操作步骤中已经加过了)
  • 通过宿主机浏览器进行访问(http://localhost:3658

arthas监控elasticsearch(7.x)的更多相关文章

  1. zabbix通过简单命令监控elasticsearch集群状态

    简单命令监控elasticsearch集群状态 原理: 使用curl命令模拟访问任意一个es节点可以反馈的集群状态,集群的状态需要为green curl -sXGET http://serverip: ...

  2. zabbix通过简单shell命令监控elasticsearch集群状态

    简单命令监控elasticsearch集群状态 原理: 使用curl命令模拟访问任意一个es节点可以反馈的集群状态,集群的状态需要为green curl -sXGET http://serverip: ...

  3. 监控Elasticsearch的插件【check_es_system】

    监控Elasticsearch的插件推荐  强大的shell脚本 #!/bin/bash ####################################################### ...

  4. 使用supervior 监控 elasticsearch 进程

    elasticsearch引擎在使用中可能会出现后台守护进程挂掉的情况,需要手动启动来恢复正常. 这时则可以引用supervior进程管理工具来监控elasticsearch进程状态,实现进程挂掉自动 ...

  5. 如何监控 Elasticsearch 集群状态?

    Marvel 让你可以很简单的通过 Kibana 监控 Elasticsearch.你可以实时查看你 的集群健康状态和性能,也可以分析过去的集群.索引和节点指标.

  6. zabbix监控Elasticsearch集群

    本节以 zabbix 为例,介绍如何使用监控系统完成 Elasticsearch 的监控报警. github 上有好几个版本的 ESZabbix 仓库,都源自 Elastic 公司员工 unterge ...

  7. Prometheus监控elasticsearch集群(以elasticsearch-6.4.2版本为例)

    部署elasticsearch集群,配置文件可"浓缩"为以下: cluster.name: es_cluster node.name: node1 path.data: /app/ ...

  8. zabbix 监控 ElasticSearch

    ElasticSearch  可以直接使用zabbix官方的模板 模板地址: https://github.com/mkhpalm/elastizabbix 通过zabbix server 直接监控 ...

  9. prometheus 监控ElasticSearch核心指标

    ES监控方案 本文主要讲述使用 Prometheus监控ES,梳理核心监控指标并构建 Dashboard ,当集群有异常或者节点发生故障时,可以根据性能图表以高效率的方式进行问题诊断,再对核心指标筛选 ...

随机推荐

  1. 已经编译安装的nginx/tenginx编译增加新模块

    只适用于自行编译安装的nginx配置 业务变更带来的Nginx增加模块需求 由于业务从php转为go开发,需要用到Http2的协议.这种协议在Nginx上需要http_v2_module这个模块的支持 ...

  2. 题解 P1541 【乌龟棋】

    题目描述 乌龟棋的棋盘是一行\(N\)个格子,每个格子上一个分数(非负整数).棋盘第\(1\)格是唯一的起点,第\(N\)格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. 乌龟棋中\(M\) ...

  3. 内网渗透 day13-漏洞复现

    漏洞复现 目录 1. 永恒之蓝(445端口) 2. 手动微笑漏洞(21端口 vsftpd2.3.4版本) 3. ingres数据库DBMS后门(1524端口) 4. distcc漏洞(3632) 5. ...

  4. php邮箱发送

    php发送邮件 -------------------------------------------------------------------------------- <?php he ...

  5. 2Git分支问题

    1,查看所有分支: git branch *号在哪表明当前分支在哪. 2,新建一个分支: git branch featureq(分支名) 转到该分支下: git checkout featureq ...

  6. 【Flutter 1-7】Flutter教程Dart语言——变量

    作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 2011年10月10日的GOTO大会上,谷歌的两位工程师发布了"Dart":Dart是一种全新的编程语言,旨在帮助 ...

  7. fork()系统调用后,对于open()前后父子进程的访问

    一开始我也不是很懂,后来看了一篇别人的博客觉得写得特别好,现在拷贝下来分享一下. 如果换成write函数 如果换成write函数,先open()后fork(),那么父子进程共享文件描述符,即使在子进程 ...

  8. mysql 常用命令和笔记

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

  9. 一次webpack小规模优化经历

    这标题一点营销号味道都没有,怎么会有人看啊!(笑) 没人看也无所谓的文章背景: 八月份入职了新公司,是个好几年的老项目了,公司产品是存在很久了,但我接触到的代码版本保守估计应该是有个三年到四年这样的历 ...

  10. nginx开启目录浏览

    使用nginx作为下载站点,开启目录浏览的功能 在/etc/nginx/sites-enabled/default中添加: autoindex on ; autoindex_exact_size of ...