Linux性能实时监测工具之NetData搭建

系统 Linux
从Github上能够看到netdata的主要功能,主要有几点:interactive bootstrap dashboards, 酷炫,所有请求每个metreic都在0.5ms内响应,即便是一台烂机器,非常高效,每秒采集数千个指标,但仅占cpu单核1%,少量MB的内存以及完全没有磁盘IO。
从Github上能够看到netdata的主要功能,主要有几点:
  •  interactive bootstrap dashboards, 酷炫
  • 所有请求每个metreic都在0.5ms内响应,即便是一台烂机器
  • 非常高效,每秒采集数千个指标,但仅占cpu单核1%,少量MB的内存以及完全没有磁盘IO
  • 提供复杂的、各种类型的告警,支持动态阈值、告警模板、多种通知方式等
  • 可扩展,使用自带的插件API(比如bash, python, perl, node.js, java, go, ruby等)来收集任何可以衡量的数据
  • 零配置:安装后netdata会自动的监测一切
  • 零依赖:netdata有自己的web server, 提供静态web文件和web API
  • 零维护:只管跑上!
  • 支撑多种时间序列后端服务,比如graphite, opentsdb, prometheus, json document DBs

NetData工作界面

系统环境:

Centos7

下载安装netData

  1. # 下载项目代码 
  2. ➜ git clone https://github.com/firehol/netdata.git 
  3. # 安装变异所需要的包 
  4. ➜ yum -y install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autogen automake pkgconfig 
  5. # 运行自带的安装启动脚本 
  6. ➜ cd ./netdata 
  7. ➜ ./netdata-installer.sh 

安装启动脚本时,提示netData安装的详细目录,按下Enter键执行。 

NetData搭建 -- Linux性能实时监测工具

安装启动脚本

启动和配置

安装完成后,脚本输出一段信息,包括:KSM、端口、启动命令

开启 KSM 以节省储存占用

如果有下列信息,说明你的系统有 KSM,但是未启用,可以按照说明执行两句echo命令,节省 40-60% 的储存空间。

  1.  --- Check KSM (kernel memory deduper) --- 
  2. Memory de-duplication instructions 
  3. You have kernel memory de-duper (called Kernel Same-page Merging, 
  4. or KSM) available, but it is not currently enabled. 
  5. To enable it run: 
  6.  echo 1 >/sys/kernel/mm/ksm/run 
  7.  echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs 
  8. If you enable it, you will save 40-60% of netdata memory. 

web端口配置

默认的web访问端口为19999。

  1. netdata by default listens on all IPs on port 19999, 
  2. so you can access it with
  3.  http://this.machine.ip:19999/ 

如果修改端口,需要编辑配置文件/etc/netdata/netdata.conf 中的 # default port = 19999。去掉注释符号#,端口尽量改掉默认的19999 !!!

修改端口后重启生效。

如果有防火墙,需开放端口(CentOS7使用firewalld)。 

NetData搭建 -- Linux性能实时监测工具

修改web端口

启动/关闭netData

  1. # 停止 
  2. ➜ systemctl stop netdata 
  3. # 启动 
  4. ➜ systemctl start netdata 
  5. # 重启 
  6. ➜ systemctl restart netdata 
  7. # 开机启动 
  8. ➜ systemctl enable netdata 
  9. # 卸载 
  10. ➜ ./netdata-uninstaller.sh --force 

至此,NetData安装启动完毕,可以通过http://host_ip:port 进行访问,无需账号密码。

下面将结合Nginx设置账号密码。

使用Nginx配置域名访问,设置账号密码授权

由于netdata没有帐号密码体系,为保护服务器隐私,我们要使用nginx反向代理配置域名访问,并使用账号密码授权。

事先准备:

  • 如果服务器没有Nginx,安装: yum install nginx
  • netdata的域名,如: netdata.example.com

生成Nginx密码文件

  1. # 密码文件存放位置自定义,路径需记录下来,放在Nginx配置中。 
  2. ➜ printf "netdata:$(openssl passwd -apr1)" > /usr/local/nginx/conf/htpasswd 

配置nginx.conf

在 ...nginx/conf.d 中创建netdata.conf文件,写入如下内容,适当修改端口号、域名、auth_basic_user_file。

  1. upstream backend { 
  2.  # the netdata server,请修改具体端口号 
  3.  server 127.0.0.1:19999; 
  4.  keepalive 64; 
  5. server { 
  6.  # nginx listens to this 
  7.  listen 80; 
  8.  # the virtual host name of this,请求改具体域名 
  9.  server_name netdata.example.com; 
  10.   
  11.  # auth password 
  12.  auth_basic "netdata Login"
  13.  # 上一步生成的密码文件路径 
  14.  auth_basic_user_file /usr/local/nginx/conf/htpasswd; 
  15.  location / { 
  16.  proxy_set_header X-Forwarded-Host $host; 
  17.  proxy_set_header X-Forwarded-Server $host; 
  18.  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  19.  proxy_pass http://backend; 
  20.  proxy_http_version 1.1; 
  21.  proxy_pass_request_headers on
  22.  proxy_set_header Connection "keep-alive"
  23.  proxy_store off
  24.  } 

重启nginx

  1. # 密码文件存放位置自定义,路径需记录下来,放在Nginx配置中。 
  2. ➜ systemctl reload nginx 

重启Nginx后,可以直接通过域名netdata.example.com访问,并且需要输入账号和密码。但是依然可以通过http://IP:Port的方式访问,接下来禁用IP访问。

NetData禁用外部IP请求

  • 打开NetData配置文件:/etc/netdata/netdata.conf,web项的 bind to修改如下:
  1. [web] 
  2.  bind to = 127.0.0.1 ::1 
  • 重启NetData: systemctl restart netdata
责任编辑:武晓燕 来源: 今日头条
相关推荐

2019-08-01 09:52:46

LinuxNetData性能监控工具

2013-07-01 17:35:30

2010-12-22 12:54:03

Linux性能监测

2018-02-26 18:00:08

Linux运维Debian

2020-03-18 08:00:00

LinuxHtop系统性能

2010-05-24 14:43:39

Linux性能监测工具

2010-12-22 13:19:43

Linux性能监测网络

2010-12-22 13:14:52

Linux性能监测

2010-12-22 13:09:23

Linux性能监测CPU

2015-06-25 12:41:53

实时 Node应用性能监测

2017-05-03 13:37:05

Linuxweb性能监测

2023-09-08 15:37:29

软件开发性能

2011-11-08 21:51:43

Linux 监控 IO

2010-12-22 13:17:47

Linux性能监测磁盘IO

2013-04-11 09:21:21

Linux性能监测命令行工具

2020-10-24 15:31:10

Linux服务器工具

2022-01-24 16:06:58

Linux 5.17RTLA工具

2011-01-21 17:15:35

Zimbra

2010-07-26 14:27:17

Linux进程实时IO

2011-02-23 09:49:40

ASP.NET
点赞
收藏

51CTO技术栈公众号