zl程序教程

您现在的位置是:首页 >  系统

当前栏目

如何快速搭建一个 linux 全方位资源监控系统并带有炫酷的表盘图形统计?

Linux监控统计资源系统 如何 一个 快速
2023-09-11 14:22:07 时间

如何快速搭建一个 linux 全方位资源监控系统并带有炫酷的表盘图形统计?

使用prometheus、grafana或者zabbix 这些监控软件,也是非常不错的一个选择,但是还有更简单、更小巧的统计监控系统。

简介
Netdata是一个分布式实时性能监测工具,可以运行在 Linux、FreeBSD、MacOS等系统上,安装简单,使用方便。

Netdata项目地址:https://github.com/firehol/netdata
Netdata安装指南:https://github.com/firehol/netdata/wiki/Installation
Netdata在线演示:http://my-netdata.io/#demosites

官方架构图:

在这里插入图片描述

监测内容
下面是Netdata目前检测的内容(大多数都不需要进行配置,安装后即可开始监测,基本满足大部分需求了)
1.CPU的使用率,中断,软中断和频率(总量和每个单核)
2.RAM,互换和内核内存的使用率(包括KSM和内核内存deduper)
3.硬盘输入/输出(每个硬盘的带宽,操作,整理,利用等)
4.IPv4网络(数据包,错误,分片):
TCP:连接,数据包,错误,握手
UDP:数据包,错误
广播:带宽,数据包
组播:带宽,数据包
5.Netfilter/iptables Linux防火墙(连接,连接跟踪事件,错误等)
6.进程(运行,受阻,分叉,活动等)
7.NFS文件服务器,v2,v3,v4(输入/输出,缓存,预读,RPC调用)
8.网络服务质量(唯一一个可实时可视化网络状况的工具)
9.应用程序,通过对进程树进行分组(CPU,内存,硬盘读取,硬盘写入,交换,线程,管道,套接字等)
10.Apache Web服务器状态(v2.2, v2.4)
11.Nginx Web服务器状态
12.Mysql数据库(多台服务器,单个显示:带宽,查询/s, 处理者,锁,问题,临时操作,连接,二进制日志,线程,innodb引擎等)
13.ISC Bind域名服务器(多个服务器,单个显示:客户,请求,查询,更新,失败等)
14.Postfix邮件服务器的消息队列(条目,大小)
15.Squid代理服务器(客户带宽和请求,服务带宽和请求)
16.硬件传感器(温度,电压,风扇,电源,湿度等)
17.NUT UPSes(负载,充电,电池电压,温度,使用指标,输出指标)
可以监测任意数量的SNMP服务,不过你需要进行配置,还可以对此软件进行扩展,可以使用任何语言编写插件,以此来从任何来源收集数据

netdata搭建
源码搭建
github上也有编译好的二进制文件,有相应架构的可以直接下载使用:
在这里插入图片描述

1、安装git

yum -y install git

2、克隆仓库

git clone https://github.com/firehol/netdata.git

3、安装依赖包

yum -y install epel-release
yum -y install zlib-devel libuuid-devel libmnl-devel gcc gcc-c++ make git autoconf autogen automake pkgconfig libuv-devel cmake

4、切换到 netdata 目录,运行 netdata-installer.sh 脚本

cd netdata
./netdata-installer.sh --install /opt #指定安装到/opt下面

然后就会提示你按回车键,开始安装程序。如果要继续,就按下回车。

在这里插入图片描述

到这表示安装成功:
在这里插入图片描述
检测端口服务:
在这里插入图片描述
之后可以通过下面的命令行进行服务的管理:

service netdata start/stop/restart # 启动/停止/重启

5、如果开启了防火墙,需要放行下19999端口

firewall-cmd --zone=public --add-port=19999/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports #查看防火墙端口是否开启成功

实测掩码编译会有比较多的坑(如下),建议使用下面的docker方式部署

在这里插入图片描述

docker搭建

docker run -d --name=netdata \
  -p 19999:19999 \
  -v netdataconfig:/etc/netdata \
  -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

访问
netdata默认监听是19999端口,配置文件:/etc/netdata/netdata.conf(可修改端口配置等),效果如图,基本该有的都有了:

在这里插入图片描述
在这里还有汉化补丁:
https://gitee.com/DXLinux/Netdata-chinese-patch

拓展
netdata也不只是可以监控单机,也可以对接grafana及后端的存储等:
在这里插入图片描述
具体的可以到netdata wiki查看。利用这种方式,应该也较容易能够折腾出来一个集群监控的解决方案,并且netdata和grafana的界面看起来都非常的酷炫! 只不过目前这不是主流的监控方案,个人感觉用来监控单机还是不错的。