1. 软件介绍
Netdata是一款Linux系统实时性能监测工具,以web的可视化方式展示系统及应用程序的实时运行状态。前端响应快,UI很整洁,操作方面,支持图表重置,缩放。具体优点如下:
- 界面酷炫:interactive bootstrap dashboards,也可使用简单的HTML代码去自定义控制界面
- 运行高效:C编写,每秒采集数千个指标,但仅占cpu单核1%,少量MB的内存以及完全没有磁盘IO
- 零配置:安装即监控
- 零依赖:有自己的静态网络文件和网络接口拥有自己的网络服务器
- 可扩展:使用自带的插件API,手机任何可以衡量的数据。
- 可嵌入:它可以在任何Linux内核可以运行的地方运行
- 可告警:提供复杂的、各种类型的告警,支持动态阈值、告警模板、多种通知方式等
数据全面:
- CPU的使用率,中断,软中断和频率(总量和每个单核)
- RAM,互换和内核内存的使用率(包括KSM和内核内存deduper)
- 硬盘输入/输出(每个硬盘的带宽,操作,整理,利用等)
- IPv4网络(数据包,错误,分片):
- TCP:连接,数据包,错误,握手UDP:数据包,错误广播:带宽,数据包组播:带宽,数据包5.Netfilter/iptables Linux防火墙(连接,连接跟踪事件,错误等)
- 进程(运行,受阻,分叉,活动等)
- NFS文件服务器,v2,v3,v4(输入/输出,缓存,预读,RPC调用)
- 网络服务质量(唯一一个可实时可视化网络状况的工具)
- 应用程序,通过对进程树进行分组(CPU,内存,硬盘读取,硬盘写入,交换,线程,管道,套接字等)
- Apache Web服务器状态(v2.2, v2.4)
- Nginx Web服务器状态
- Mysql数据库(多台服务器,单个显示:带宽,查询/s, 处理者,锁,问题,临时操作,连接,二进制日志,线程,innodb引擎等)
- ISC Bind域名服务器(多个服务器,单个显示:客户,请求,查询,更新,失败等)
- Postfix邮件服务器的消息队列(条目,大小)
- Squid代理服务器(客户带宽和请求,服务带宽和请求)
- 硬件传感器(温度,电压,风扇,电源,湿度等)
- NUT UPSes(负载,充电,电池电压,温度,使用指标,输出指标)
2.安装过程
网上有好多文章都写了具体的安装方式:
1.安装Netdata需要的基本编译环境安装:
yum install zlib-devel gcc make git autoconf autogen automake pkgconfig
2.下载和安装Netdata
cd /usr/local/src/
wget http://firehol.org/download/netdata/releases/v1.0.0/netdata-1.0.0.tar.gz
tar -xf netdata-1.0.0.tar.gz
cd netdata-1.0.0
./netdata-installer.sh
## 访问Netdata:http://localhost:19999
理论上只需要执行上述的过程就可以安装成功,但是理论终究只是理论,由于某些不可抗力因素,我们是无法访问gitHub和google的,所以上述的安装脚本很有可能根本无法安装完成,我在安装的时候也尝试了科学上网大法,但是发现还是无法成功。最后只有祭出docker大法了。
Docker 镜像地址: https://hub.docker.com/r/netdata/netdata
docker pull netdata/netdata
docker run --name netdata -d -p 19999:19999 netdata/netdata
然后就可以愉快的访问ip:19999的网址了:
该说不说这界面是真的好看。
本来到此就应该结束了,但是我的服务器是暴露在公网下的,我发现这玩意儿没有访问控制的功能,也可能是我没找到。那这岂不是谁都能通过19999端口访问,这怎么能行,果断关了19999的访问权限,用nginx搞个基本的认证功能,同时把反向代理也搞了:
## 1.安装http-tools 用于生成密码文件
yum -y install httpd-tools
## 2.生成秘钥文件
htpasswd -c /usr/local/nginx/auth admin ## 回车后输入密码
## 执行结束只有就可以在/usr/local/nginx下生成一个auth文件,我们只需要把该文件配置到nginx中就可以了
nginx反向代理的配置:
## xxx
upstream xxx {
server 127.0.0.1:19999;
}
server {
listen 80;
server_name xxx.xxxx.xx;
#charset koi8-r;
#access_log logs/host.access.log main;
auth_basic "用户名密码";
auth_basic_user_file /usr/local/nginx/auth;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://xxx;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
./nginx -s reload
重启nginx
再次访问域名,然后就能发现配置的基本认证功能已经可以生效了
完结,撒花~~
评论区