温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用SaltStack进行故障排查

发布时间:2025-11-16 15:16:40 来源:亿速云 阅读:147 作者:小樊 栏目:系统运维

SaltStack故障排查实战手册

一、快速定位流程

  • 连通性与认证
    • 在 Master 上检查存活与连通:salt ‘*’ test.ping;查看密钥状态:salt-key -L。必要时接受密钥:salt-key -A。若曾出现密钥不一致,可在 Minion 删除 /etc/salt/pki/minion/minion_master.pub,重启 salt-minion,再在 Master 重新接受。
  • 服务与端口
    • 确认服务运行:systemctl status salt-master / salt-minion;前台调试:salt-master -l debug、salt-minion -l debug。
    • 放行端口:Master 需开放 TCP 4505/4506;若端口不通或访问被拒,优先排查防火墙、SELinux/AppArmor 等访问控制。
  • 日志与输出
    • 调整日志级别获取更多线索:命令行 -l debug,或在配置中设置 log_level: debug / log_level_logfile: debug;必要时将日志对接 logstash/sentry 做集中与告警。

二、常见故障与修复要点

  • Minion 无响应(No response)
    • 可能原因:密钥不匹配、Minion 启动延迟、网络/防火墙阻断。
    • 处理步骤:在 Minion 删除 /etc/salt/pki/minion/minion_master.pub → 重启 salt-minion → 在 Master 执行 salt-key -L / -A → 复核 test.ping。
  • 命令超时或无输出
    • 排查思路:前台以 -l debug 观察 Master/Minion 日志;确认 4505/4506 未被防火墙/安全策略拦截;在大规模环境下检查 Master 资源是否成为瓶颈。
  • 认证泛滥(Auth Flooding)
    • 现象:大量认证请求压垮 Master。
    • 处理:核对 Minion 配置中的 master 地址是否误配为外部地址;统一与收敛 Minion 指向;必要时临时封禁异常来源并检查自动签发策略。
  • 打开文件数过多(Too many open files)
    • 现象:日志出现 “Too many open files sock …”。
    • 处理:提升 ulimit -n(如至少 2 × Minion 数量);在 /etc/security/limits.d/99-salt.conf 为运行用户设置如:root hard nofile 65536;重启 Master 生效。
  • States 渲染或文件操作报错
    • 典型错误与修复:
      • top.sls 无法渲染:检查 YAML 缩进与语法,确保存在可匹配目标。
      • “parent directory not present”:在 Minion 上预先创建 name 参数指定的目录。
      • file.copy 覆盖目录需加 recurse=True:例如 salt ‘minion’ file.copy /src/ /dst/ recurse=True。

三、日志与调试技巧

  • 日志级别与输出
    • 级别范围:all、garbage、trace、debug、profile、info、warning、error、critical、quiet;命令行 salt -l debug 或配置 log_level: debug;文件日志 log_file: /var/log/salt/master;时间格式 log_datefmt / log_datefmt_logfile;可按模块细化:log_granular_levels。
  • 前台实时调试
    • Master/Minion 前台运行:salt-master -l debug、salt-minion -l debug,可直观看到事件流与错误堆栈。
  • 本地执行与模块调试
    • 在 Minion 本地复现问题:salt-call -l debug state.apply your.state 或 salt-call test.ping,便于排除网络因素。
  • 性能与热点定位
    • 使用 –profile 或 log_level: profile 输出函数级耗时,定位慢执行与瓶颈。

四、安全与版本兼容检查

  • 版本兼容
    • 重大版本差异可能导致模块/解析行为变化,出现“部分 Minion 成功、部分失败”的不一致。必要时统一 Master/Minion 版本,或回退至已知稳定版本。
  • 安全加固与入侵排查
    • 历史上曾出现严重漏洞(如 CVE-2020-11651/CVE-2020-11652),建议升级至包含修复的版本(如 ≥2019.2.4、≥3000.2)。
    • 排查要点:检查异常进程与网络连接(如 ps -ef | grep salt、netstat -anp | grep ESTAB),关注系统日志与告警;若遭入侵,优先隔离、取证,并考虑系统重装与密钥轮换。

五、一键排障命令清单

  • 连通与密钥
    • 存活探测:salt ‘*’ test.ping
    • 密钥清单:salt-key -L;接受全部:salt-key -A
  • 服务与端口
    • 服务状态:systemctl status salt-master / salt-minion
    • 前台调试:salt-master -l debug、salt-minion -l debug
  • 本地复现
    • 本地执行:salt-call -l debug state.apply your.state
  • 日志与审计
    • 查看日志:tail -f /var/log/salt/master /var/log/salt/minion
    • 远程日志:配置 syslog/udp/tcp 日志转发,或对接 logstash/sentry 做聚合与告警。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手