SaltStack故障排查需围绕**“配置-通信-执行-日志”**四大核心环节展开,优先通过基础检查定位问题根源(如配置错误、网络阻断、模块异常),再结合日志分析与针对性修复解决问题,最后通过监控预防复发。
典型现象:执行salt '*' test.ping返回False或超时报错(如“Salt request timed out”)。
排查步骤:
ping <Minion-IP>、telnet <Minion-IP> 4505/4506(Salt默认通信端口)测试Master与Minion之间的网络是否可达;setenforce 0临时关闭测试);/etc/salt/minion_id文件是否存在且与Master配置的minion_id一致,若Minion重启后未重新认证,需在Master上执行salt-key -A接受新密钥。典型现象:Master/Minion启动时报错(如file_ignore_glob值为None、nodegroups格式错误)、top.sls渲染失败(“No targets found”)。
解决方法:
/etc/salt/master、/etc/salt/minion)中的参数类型正确,例如file_ignore_glob需设置为列表(如file_ignore_glob: ['*.tmp', '*.bak']),nodegroups需设置为字典(如nodegroups: {'web_servers': 'web1,web2'});base: '*'表示所有Minion)。典型现象:执行状态模块(如file.copy、service.status)时报错(如“Cannot copy overwriting a directory without recurse flag”、“Service ‘haproxy’ is not available”)。
解决方法:
recurse=True(如salt '*' file.copy /src/dir /dest/dir recurse=True);对于服务管理,需确认服务名称正确(可通过systemctl list-units --type=service查看),若服务未安装,需先通过Salt安装对应软件包;file.copy需目标目录存在,可通过file.makedirs提前创建)。典型现象:Master处理请求慢、Minion响应延迟高(如“worker_threads may need to be increased”)。
解决方法:
/etc/salt/master中的worker_threads(默认5,可根据CPU核心数调整至10-20)、max_open_files(默认1024,若Minion数量多可调整至4096);top、free -m、df -h检查CPU、内存、磁盘空间,若资源不足需扩容或清理无用进程。SaltStack的日志文件默认路径为:Master(/var/log/salt/master)、Minion(/var/log/salt/minion)。可通过修改配置文件(/etc/salt/master//etc/salt/minion)调整日志级别(log_level: info/debug,debug模式可输出更详细的错误信息)和输出方式(如发送到ELK、Splunk等集中式日志系统)。
通过配置Master的event_return参数开启审计,记录所有Salt事件(如命令执行、状态变更),便于后续追溯。示例如下:
# /etc/salt/master 配置片段
event_return: audit
audit_log_file: /var/log/salt/audit.log
审计日志需限制访问权限(如chmod 600 /var/log/salt/audit.log),仅允许管理员访问。
grep -i "error\|fail" /var/log/salt/minion过滤Minion日志中的错误信息;/var/log/salt/master与Minion的日志,分析命令执行的完整链路(如Master发送命令→Minion接收→执行→返回结果);salt '*' saltutil.disconnect),避免影响其他节点;salt '*' test.ping、salt '*' service.status <service_name>等命令验证节点是否恢复正常。/etc/salt/master、Minion的/etc/salt/minion及Pillar数据(/srv/pillar);免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。