提到服务器资源监控,你是不是第一反应还是 top 或 htop?
这些命令虽然稳定,但界面老旧,功能有限,尤其在需要同时监控多种指标、实时可视化输出时,显得有些力不从心。
今天给大家介绍一个不走寻常路的命令行监控工具——Sampler。
为什么推荐 Sampler?
Sampler 不是一款传统意义上的“监控系统”,它是一个高度自定义、纯命令行可视化工具。
官网地址:
https://sampler.dev/
一句话总结它的优势:
“用 YAML 配置,运行 Shell 命令,将任何数据转为实时图表。”
不需要服务器端部署,不需要数据库,不需要复杂的配置文件,几行 YAML + 你的脚本,搞定。
适用于:
- 临时性能分析
- 局部环境指标监控
- 运维人员快速排障
- 开发阶段动态调试
如果说 top 是单线程的“状态查看器”,那 Sampler 就是多线程 + 多视角 的“定制化监控仪表盘”。
核心亮点
1. 自定义监控指标
Sampler 不关心你监控的是什么——
- 系统资源
- 服务状态
- 网络流量
- 数据库响应时间
- 日志关键词匹配
只要你能写出 Shell 命令,它都能监控。
2. 实时图形化输出
支持以下组件:
- Runchart(折线图)
- Barchart(条形图)
- Gauge(仪表盘)
- Sparkline(迷你图)
终端内即可实时刷新显示。 比起传统命令+grep,清晰太多。
3. 灵活报警机制
- 指标超过阈值 → 声音提醒
- 也可以配置 → 执行脚本自动响应
比如数据库响应超过 500ms,直接报警,甚至触发自动重启脚本。
安装方式
Sampler的安装过程简单到令人发指! 以下是针对不同平台的详细指南:
1. MacOS
推荐使用Homebrew,命令如下:
brew install sampler
安装后直接运行 sampler --version 检查版本,确认安装成功。
2. Linux
下载官方二进制文件并赋予执行权限:
sudo wget https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-linux-amd64 -O /usr/local/bin/sampler
sudo chmod +x /usr/local/bin/sampler
验证安装:sampler --version
3. Windows
使用Chocolatey包管理器:
choco install sampler
或者直接从GitHub Releases下载Windows版本的二进制文件,解压后添加到环境变量。
4. Docker部署
对于容器爱好者,Sampler也支持Docker:
# 创建配置文件
vim config.yml
# 构建镜像
docker build --tag sampler .
# 运行容器
docker run --interactive --tty --volume $(pwd)/config.yml:/root/config.yml sampler --config /root/config.yml
小贴士:无论哪种方式,Sampler的安装都无需复杂依赖,单机运行毫无压力!
Sampler使用教程:从零到上手
Sampler的强大之处在于它的 YAML配置文件,通过简单的几行代码,你就能打造一个专属的监控仪表盘!
以下是一个详细的入门教程:
步骤1:创建YAML配置文件
新建一个名为 config.yml 的文件,内容如下:
runcharts:
- title: 接口响应时间
rate-ms: 500 # 每500毫秒刷新一次
items:
- label: Baidu
sample: curl -o /dev/null -s -w '%{time_total}' https://www.baidu.com
- label: wljslmz
sample: curl -o /dev/null -s -w '%{time_total}' https://www.wljslmz.cn
- title: CPU使用率
rate-ms: 1000
items:
- label: CPU Usage
sample: top -bn1 | grep "Cpu(s)" | awk '{print $2}'
这段配置定义了两个图表:
- 接口响应时间:监控Google和Yahoo的API响应时间,绘制趋势图。
- CPU使用率:通过top命令提取CPU使用率,实时展示。
步骤2:启动Sampler
在终端运行以下命令:
sampler -c config.yml
Sampler会立即启动,显示两个动态图表:一个是baidu和wljslmz的响应时间趋势,另一个是CPU使用率的实时变化。界面炫酷,数据一目了然!
步骤3:添加报警机制
想在响应时间超1秒时收到提醒?只需在YAML中添加触发条件:
runcharts:
- title: 接口响应时间
rate-ms: 500
items:
- label: Google
sample: curl -o /dev/null -s -w '%{time_total}' https://www.baidu.com
trigger:
condition: "> 1.0" # 响应时间超1秒触发
action: "echo 'Google API too slow!' | mail -s 'Alert' wljslmz@gmail.com"
现在,如果Google的响应时间超过1秒,Sampler会自动发送邮件通知!
步骤4:高级定制
Sampler支持多种图表类型和样式调整。例如,改用柱状图:
barcharts:
- title: 内存使用情况
rate-ms: 1000
items:
- label: Free Memory
sample: free -m | awk '/Mem:/ {print $4}'
你还可以调整颜色、字体大小、图表位置,打造专属的“监控艺术品”!
为什么它值得被推荐?
一句话:
Sampler ≠ 替代 top,而是用来解决 top 做不到的事情。
开源项目地址
项目主页:
https://github.com/sqshq/sampler
如果你是一名需要快速定位问题、临时追踪状态的开发或运维人员,这个工具绝对值得收藏。
关注 [网络技术联盟站],每天带你解锁一个新工具 / 新技能 / 新理念。
