前言
最近在分析线上问题,需要监控 Linux 相关指标,如果只是用命令,总是只能知道当前的值,无法记录过程。而设备不是云厂商的设备,所以没有相关监控,zabbix 有,但是没有相关权限可以看到。所以找到一些好用的监控小方案。
nmon
安装
yum install nmon
使用
image.png
总结
安装方便,使用简单,最快速度能搞定,无需过多依赖,控制台展示
当然它还有其他内存等相关信息的展示
不是特别好看(毕竟是控制台要求也不能太高),精度相对低,只能有个大概峰值
bottom
安装
因为是 rust 搞的,所以可能有相关依赖,需要手动处理
wget https://github.com/ClementTsang/bottom/releases/download/0.4.5/bottom_x86_64-unknown-linux-gnu.tar.gz
tar xvf bottom_x86_64-unknown-linux-gnu.tar.gz
./btm
# 如果出现以下错误需要安装 glibc
# /btm: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./btm)
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install
./btm
使用
image.png
总结
不错,也还挺好看的,因为用点绘制,所以更加好看一丢丢
安装可能有依赖,需要手动处理
netdata
安装
# make sure you run `bash` for your shell
bash
# install Netdata directly from GitHub source
bash
或者直接 docker
docker run -d --name=netdata \
-p 19999:19999 \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
--restart unless-stopped \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
使用
image.png
总结
如果手动安装的话,依赖很多,虽然官方提供了一键安装,整体安装过程还是比较长的
docker 直接启一个倒是很快,拉个镜像一跑起来就好了
好看,真的不错,各类指标都一应俱全,而且 UI 也很好看(CPU,内存,网络,中断等等都有,真的很全)
网上说安装后会影响服务器运行速度,这个监控指标很多,确实所以本身会占用一定服务器资源,需要注意
grafana + influxdb + telegraf
安装
我这边因为线上本身就有前两个的环境,所以只需要装个 telegraf 就能搞定,如果你没有,也可以手动装个
其实原本想用 Prometheus + Grafana 的,但是线上暂时没有 Prometheus 之前也用过,这里就不做展示了,其实也很方便
使用
image.png
一个字,好看!
总结
相关监控信息一应俱全,整体好看,grafana 确实有一手
相对环境如果用 docker 部署会容易很多,本身也不复杂,配置简单,推荐
相对来说还可以直接用
总结
当前我用最后一种在线上先跑着,看看情况。
上面的监控有简单的,有复杂的,你喜欢哪一种呢?或者说你还有什么更好的方案也欢迎在下面评论。