大家好,我是 JackTian。
今天给大家推荐一款基于 Shell 命令执行,可视化和警报工具 —— Sampler。
Sampler 不是全面监控系统的替代品,而是易于设置的开发工具。比如说你要用其他监控工具 Grafana 配置 Prometheus 会对你觉得一头雾水,Sampler 则可能是一个正确的解决办法。
你只需指定 Shell 命令即可使用,可直接从终端中采样任何动态过程、观察数据库中的更改情况、监视 MQ 实时消息,触发部署脚本并在完成时获取通知消息,简单方便,易于配置。
无需将 Sampler 安装在监控的每台服务器上,您可以直接在本地运行 Sampler,仍然可以从多台远程计算机上收集信息,任何可视化都可能具有 init 命令,您可以在其中命令 SSH 到远程服务器。
MacOS
# brew install sampler
或者
# sudo curl -Lo /usr/local/bin/sampler https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-darwin-amd64
# sudo chmod +x /usr/local/bin/sampler
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
libasound2-dev 需安装系统库,Sampler 才能播放触发音。通常情况下,该库已存在,如没有,则可使用您喜欢的软件包管理器进行安装。例如:
$ apt install libasound2-dev
Windows
choco install sampler
或者
https://github.com/sqshq/sampler/releases/download/v1.1.0/sampler-1.1.0-windows-amd64.exe
具有 MacOS 兼容采样脚本的每种组件类型的配置示例。
runcharts:
- title: Search engine response time
rate-ms: 500 # sampling rate, default = 1000
scale: 2 # number of digits after sample decimal point, default = 1
legend:
enabled: true # enables item labels, default = true
details: false # enables item statistics: cur/min/max/dlt values, default = true
items:
- label: GOOGLE
sample: curl -o /dev/null -s -w '%{time_total}' https://www.google.com
color: 178 # 8-bit color number, default one is chosen from a pre-defined palette
- label: YAHOO
sample: curl -o /dev/null -s -w '%{time_total}' https://search.yahoo.com
- label: BING
sample: curl -o /dev/null -s -w '%{time_total}' https://www.bing.com
sparklines:
- title: CPU usage
rate-ms: 200
scale: 0
sample: ps -A -o %cpu | awk '{s+=$1} END {print s}'
- title: Free memory pages
rate-ms: 200
scale: 0
sample: memory_pressure | grep 'Pages free' | awk '{print $3}'
gauges:
- title: Minute progress
rate-ms: 500 # sampling rate, default = 1000
scale: 2 # number of digits after sample decimal point, default = 1
percent-only: false # toggle display of the current value, default = false
color: 178 # 8-bit color number, default one is chosen from a pre-defined palette
cur:
sample: date +%S # sample script for current value
max:
sample: echo 60 # sample script for max value
min:
sample: echo 0 # sample script for min value
- title: Year progress
cur:
sample: date +%j
max:
sample: echo 365
min:
sample: echo 0
textboxes:
- title: Local weather
rate-ms: 10000 # sampling rate, default = 1000
sample: curl wttr.in?0ATQF
border: false # border around the item, default = true
color: 178 # 8-bit color number, default is white
- title: Docker containers stats
rate-ms: 500
sample: docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.PIDs}}"
时钟表,显示分钟进度并在每分钟开始时宣布当前时间,搜索引擎延迟图表,当延迟超过阈值时向用户发出警报;
除 Sample 命令外,还可以指定 init 命令(在采样前仅执行一次)和 transform 命令(对 Sample 命令输出进行后处理)。
主要包括:基本模式、PTY模式、多步初始化。
https://github.com/sqshq/sampler
原创不易,码字不易。 觉得这篇文章对你有点用的话,麻烦你为本文点个赞,留言或转发一下,因为这将是我输出更多优质文章的动力,感谢!
⬇⬇⬇⬇⬇⬇⬇⬇