我在Netdata上构建了一个监控栈
首先
给你介绍一个很方便用来监控服务器的工具 —— Netdata。
Netdata是一种什么东西
Netdata 是一种服务器监控工具。最近监控方面很多人都在使用 Prometheus,但是 Netdata 使用了与 Prometheus 有些不同的设计方法。
使用 Prometheus 可以查看服务器集群的整体指标,使用 Netdata 可以查看每个服务器的实时指标。通过这种方式来使用是根据 Netdata 文档的设想。

仪表盘非常酷炫。

Netdata会自动收集几乎所有您希望查看的指标。
-
- CPU 使用率
-
- メモリ使用量
-
- スワップ
-
- ディスク I/O
-
- ネットワーク
-
- スレッド数
-
- プロセス数
-
- 各種 RDB の稼働状況
-
- Apache/Nginx の稼働状況
-
- コンテナの稼働状況
- その他 Tomcat/WSGI/Fluentd/Hadoop など多数
怎么开始
由于有预先准备好的Docker镜像,所以可以轻松启动。
$ docker run -d --name=netdata \
-p 19999:19999 \
-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 /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
当您成功启动后,可以通过访问 http://localhost:19999 来查看上述类似的仪表板。
普罗米修斯出口器(Prometheus エクスポータ)
由于Netdata只保存最近1小时的指标,因此不适用于长期指标监控。但是,Netdata配备了Prometheus Exporter功能,因此与Prometheus配合使用即可实现长期指标存储。而且,它还可以自动汇总各种指标,可以用作通用的导出器。
您可以通过访问以下URL,以Prometheus可读取的格式导出指标数据。
http://localhost:19999/api/v1/allmetrics?format=prometheus
只需将此 URL 登记到 Prometheus 中,就能够在 Grafana 中可视化过去的度量数据。
Shell出口
指标还可以作为环境变量导入。
$ eval "$(curl -s http://localhost:19999/api/v1/allmetrics)"
$ set | grep "^NETDATA_SYSTEM_CPU"
NETDATA_SYSTEM_CPU_GUEST=0
NETDATA_SYSTEM_CPU_GUEST_NICE=0
NETDATA_SYSTEM_CPU_IDLE=95
NETDATA_SYSTEM_CPU_IOWAIT=0
NETDATA_SYSTEM_CPU_IRQ=0
NETDATA_SYSTEM_CPU_NICE=0
NETDATA_SYSTEM_CPU_SOFTIRQ=0
NETDATA_SYSTEM_CPU_STEAL=0
NETDATA_SYSTEM_CPU_SYSTEM=1
NETDATA_SYSTEM_CPU_USER=4
NETDATA_SYSTEM_CPU_VISIBLETOTAL=5
当使用环境变量来获取指标时,即使不使用各种Linux命令,也可以参考指标,这样可以使Shell脚本编写更加简洁。
将Confluence嵌入
我个人没有使用过,但是Netdata的仪表板可以嵌入到Confluence中,我会介绍一下。
如果可用HTML插件,您可以在Confluence中嵌入图表,如下所示。

请参考此处的网址 https://docs.netdata.cloud/web/gui/confluence/,了解详细的使用方法。
其他的 API
Netdata具备许多其他方便的API。
-
- メトリクスを CSV/JSON で取得
- Google charts 連携
我认为这些都很方便。请参考下面的每个 API 的使用方法。
-
- API: https://docs.netdata.cloud/web/api/
Swagger: https://registry.my-netdata.io/swagger/
整理筆記
Netdata的安装门槛低,可以与各种工具进行协作,实现现代化的监控功能,欢迎您尝试一下。