用 ssh + tmux 可实时并行监控多台服务器负载,关键在于启用 synchronize-panes 后统一发送 watch -n 2 'uptime; free -h | grep mem';rsyslog 需显式加载 imudp 模块并开放 udp 514 端口;ansible 用 service 模块查状态更简洁可靠;prometheus 抓取失败多因 dns、监听地址、metrics_path 或时间不同步。

用 ssh + tmux 实时并行看多台机器负载
想一眼看清 5 台服务器的 CPU、内存、磁盘,又不想挨个开终端切来切去?tmux 的同步发送功能比写脚本更快上手,也比 Web 界面更轻量。
常见错误是直接在 tmux 里用 ssh 连完就手动输命令,结果窗口一多就不同步。正确做法是先启用同步输入,再批量发监控命令:
- 启动新会话:
tmux new-session -s monitor - 水平分屏连三台:
tmux split-window -h 'ssh user@host1',重复两次改 host2/host3 - 按
Ctrl-b :set synchronize-panes on(注意空格和冒号) - 任意窗格里敲
watch -n 2 'uptime; free -h | grep Mem',所有窗格同时执行
注意:synchronize-panes 是会话级开关,断开重连后失效;如果某台机器 SSH 超时,对应窗格会卡住,建议提前配置好 ~/.ssh/config 加 ServerAliveInterval 30。
rsyslog 集中收集日志但收不到远程消息?检查这三点
不是配置写了就能收,rsyslog 默认不监听 UDP/TCP 端口,且新版(v8.20+)默认禁用传统模块。
典型现象:客户端用 logger 发日志,服务端 /var/log/syslog 里完全没记录,netstat -tuln | grep 514 也没监听。
- 确认加载了网络模块:检查
/etc/rsyslog.conf或/etc/rsyslog.d/50-default.conf是否有module(load="imudp")和input(type="imudp" port="514") - 防火墙必须放行 UDP 514(TCP 514 少用,容易丢包):
sudo ufw allow 514/udp - 客户端需显式指定目标:
logger -n syslog-server-ip -P 514 "test",否则走本地 socket
性能影响:UDP 日志无确认机制,高并发下可能丢,但对告警类日志够用;若要可靠传输,得换 relp 模块,但部署复杂度翻倍。
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
用 ansible 批量查服务状态比写 for 循环干净在哪
不用登录每台机器敲 systemctl is-active nginx,也不用拼接 ssh 命令加错误判断——ansible 的幂等性和返回结构天然适配状态检查。
场景:巡检 20 台机器的 nginx、redis 是否 running,出问题立刻标出 IP。
- 写一个极简 playbook:
check-services.yml,只用service模块,state: started不会重启,只查状态 - 执行:
ansible all -i hosts.ini -m service -a "name=nginx state=started" --one-line,失败的行自带红色标记 - 关键参数:
--one-line避免输出冗余,-o更紧凑;加--limit host1,host2可临时跳过异常节点
兼容性注意:CentOS 7 用 systemd,Ubuntu 22.04 同样支持,但 Alpine Linux 默认没 systemd,得换 command 模块调 ps。
prometheus + node_exporter 多机指标拉取失败的典型原因
不是端口通了就能采集,prometheus 抓取失败常卡在 DNS、TLS、路径三处,错误信息藏在 Status → Targets 页面里,不是日志。
现象:node_exporter 在本机能 curl 通,但 Prometheus 显示 context deadline exceeded 或 server returned HTTP status 404 Not Found。
- DNS 解析失败:Prometheus 配置里写
targets: ['host1:9100'],但宿主机 /etc/hosts 没映射,或容器网络不通;建议全用 IP,避开 DNS - node_exporter 启动参数漏了
--web.listen-address=:9100(默认只监听 127.0.0.1) - Prometheus 的
scrape_configs中metrics_path错写成/metrics/(多了一个斜杠),实际是/metrics
容易被忽略的是时间同步:如果某台机器时间快 3 分钟,Prometheus 会拒绝其指标(TS 不在容忍窗口内),ntpq -p 比 date 更准。









