Elasticsearch 健康巡检工具使用说明
概述
该巡检工具是专门用来收集Elasticsearch集群的相关信息用来提供诊断依据。
收集到的信息主要包括以下方面:
- 集群状态、设置、任务、统计信息
- 节点信息、统计信息、热线程、线程池信息
- 索引信息、统计信息
- 分片信息、分片存储、segment信息
- elasticsearch进程日志文件
- 主机系统信息:cpu、内存、网络、IO情况
运行时它将连接到命令行参数指定的主机,必要时进行身份验证,进行Elasticsearch 版本检查 ,并获取可用节点列表及配置信息。根据检测到的Elasticsearch版本运行一系列 REST API 调用。
REST 调用完成后,系统调用(例如 top、netstat、iostat 等)将在指定主机运行。它还将从目标主机上的节点收集日志,除非它处于仅 REST API 模式。
该应用程序可以从机器上的任何目录运行。它不需要安装到特定位置,唯一的要求是用户具有对 Elasticsearch 工件的读访问权限、对所选输出目录的写访问权限,以及为生成的存档提供足够的磁盘空间。
运行要求
- 该主机的系统用户帐户必须具有足够的权限才能运行这些命令并访问日志(通常为:/var/log/elasticsearch)以获得完整的诊断集合。
- 如果您使用内置安全性进行身份验证,则提供的用户 ID 必须具有执行诊断 URL 的权限,建议使用超级用户角色。
- JDK,必要时指定JAVA_HOME
安装
首先下载巡检工具:http://dl.elasticsearch.cn/diagnostics/,如下图:
将下载的文件包上传到希望查询的Elasticsearch主机上,并解压,或者也可以在任何一台能连接上目标 Elasticsearch 集群的主机上运行改巡检工具。
运行诊断程序
为简单起见,采用在ES节点本地执行的方式。要远程执行也可参照后面的选项说明添加相关参数。
sudo ./diagnostics.sh -h 10.0.0.20 --port 9205 -u elastic -p --bypassDiagVerify
- 如果启用了TLS,追加 -s --noVerify 选项
- 运行完后,将在当前目录创建格式为<diagnostic type>-diagnostics- <DateTimeStamp>.tar.gz的存档。
示例
工具参数说明
Option |
Description |
Examples |
--help |
显示命令行选项的帮助。 |
仅选项 - 没有值。 |
-h |
目标节点的主机名或 IP 地址。默认为本地主机。IP 地址通常会产生最一致的结果。 |
--host myhost.somplace.com |
--port |
目标节点的 HTTP 侦听端口,默认值 9200。 |
--port 9205 |
--type |
执行的诊断模式。有效类型为 local、remote、api、logstash-remote、logstash-local 或 logstash-api、kibana-remote、kibana-local 或 kibana-api。默认值为 local. |
--type local |
-s |
当集群配置了 TLS (SSL)。如果您使用 https:// url 从浏览器或 curl 访问集群,请使用此选项。 |
仅选项 - 没有值。 |
-u |
登录 Elasticsearch 集群的用户名。此帐户应具有读取系统索引的权限,因此建议使用具有超级用户角色的帐户。 |
|
-p |
登录 Elasticsearch 集群的密码。 |
仅选项 - 没有值。 |
--noVerify |
使用 --ssl 选项时绕过证书的主机名验证。 |
仅选项 - 没有值。 |
-o |
输出目录的绝对路径。如果未提供,将使用工作目录,除非它在容器中运行,在这种情况下,将使用配置的卷名。 |
-o "/User/someuser/diagnostics" |
--archiveType |
将用于压缩输出目录的文件类型。选择:“zip”、“tar”或“any”。any 将先尝试 zip ,如果 zip 失败则回退到 tar。默认为any。 |
--archiveType zip |
--bypassDiagVerify |
关闭检查是否有更新的版本可用。在没有互联网访问的环境中很有用。默认值为 false |
仅选项 - 没有值。 |