跳到主要内容
版本:v6.x

如何修改Elasticsearch密码

Elasticsearch 密码同时也是节点与主控之间通讯的密码。如果密码泄露,务必按以下两步修改:先改主控,再改节点。密码只允许字母和数字。

1. 修改主控上的 ES 密码

登录主控服务器,用 root 执行。把 NEW_ES_PWD 换成新密码:

bash -s <<'CDNFLY_ES_PWD'
new_pwd="NEW_ES_PWD"

set -euo pipefail

conf="/opt/cdnfly-go/conf/config.yaml"
old_pwd="$(sed -n '/^log:/,/^[^[:space:]]/ s/^[[:space:]]*password:[[:space:]]*//p' "$conf" | head -1 | tr -d '\"')"

test -n "$old_pwd"
cp -a "$conf" "$conf.$(date +%Y%m%d%H%M%S).bak"

curl -fsS -u "elastic:$old_pwd" -X POST "http://127.0.0.1:9200/_security/user/elastic/_password" \
-H "Content-Type: application/json" -d "{\"password\": \"$new_pwd\"}"

sed -i "/^log:/,/^[^[:space:]]/ s|^\([[:space:]]*\)password:.*|\1password: $new_pwd|" "$conf"

systemctl restart master-api.service master-task.service
systemctl is-active master-api.service master-task.service
CDNFLY_ES_PWD

命令会自动从 /opt/cdnfly-go/conf/config.yaml 读取旧密码,修改 ES 中 elastic 用户的密码,更新主控配置并重启主控服务。

2. 修改节点上的 ES 密码

方式一:后台批量下发(推荐)

登录主控后台,进入"系统管理"→"维护升级"→"维护操作"选项卡,在"节点设置"中勾选"节点配置的ES密码",输入相同的新密码,输入当前管理员密码后创建设置任务,全部节点执行成功即完成。

维护操作 - 节点设置:勾选节点配置的ES密码并输入新密码

方式二:登录节点手动修改

每台 V6 节点上用 root 执行。把 NEW_ES_PWD 换成同一个新密码:

bash -s <<'CDNFLY_NODE_ES_PWD'
new_pwd="NEW_ES_PWD"

set -euo pipefail

conf="/opt/cdnfly-go/agent/conf/config.yaml"
filebeat="/opt/cdnfly-go/agent/conf/filebeat.yml"
ts="$(date +%Y%m%d%H%M%S)"

cp -a "$conf" "$conf.$ts.bak"
cp -a "$filebeat" "$filebeat.$ts.bak"

sed -i "/^log:/,/^[^[:space:]]/ s|^\([[:space:]]*\)password:.*|\1password: $new_pwd|" "$conf"
sed -i "s|^ password:.*| password: \"$new_pwd\"|" "$filebeat"

systemctl restart filebeat.service agent-socket.service agent-task.service
systemctl is-active filebeat.service agent-socket.service agent-task.service
CDNFLY_NODE_ES_PWD

检查结果

# 主控上验证新密码能访问 ES
curl -u elastic:NEW_ES_PWD http://127.0.0.1:9200

返回集群信息 JSON 即修改成功;再确认主控后台中节点在线、访问日志和监控数据正常更新。