最近在分析线上问题,需要监控 Linux 相关指标,如果只是用命令,总是只能知道当前的值,无法记录过程。而设备不是云厂商的设备,所以没有相关监控,zabbix 有,但是没有相关权限可以看到。所以找到一些好用的监控小方案。

nmon

安装

yum install nmon

使用

image.png

总结

  • 安装方便,使用简单,最快速度能搞定,无需过多依赖,控制台展示
  • 当然它还有其他内存等相关信息的展示
  • 不是特别好看(毕竟是控制台要求也不能太高),精度相对低,只能有个大概峰值

bottom

安装

因为是 rust 搞的,所以可能有相关依赖,需要手动处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

安装

1
2
3
4
5
# make sure you run `bash` for your shell
bash

# install Netdata directly from GitHub source
bash <(curl -Ss https://my-netdata.io/kickstart.sh)

或者直接 docker

1
2
3
4
5
6
7
8
9
10
11
12
13
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 就能搞定,如果你没有,也可以手动装个,具体步骤可以参考 https://www.jianshu.com/p/2fd3e9252a41

  • 其实原本想用 Prometheus + Grafana 的,但是线上暂时没有 Prometheus 之前也用过,这里就不做展示了,其实也很方便 https://www.jianshu.com/p/8d2c020313f0

使用

image.png

一个字,好看!

总结

  • 相关监控信息一应俱全,整体好看,grafana 确实有一手
  • 相对环境如果用 docker 部署会容易很多,本身也不复杂,配置简单,推荐
  • 相对来说还可以直接用

总结

当前我用最后一种在线上先跑着,看看情况。

上面的监控有简单的,有复杂的,你喜欢哪一种呢?或者说你还有什么更好的方案也欢迎在下面评论。