前言
原本以为安装netdata
是比较容易的,不料却有一堆坑。首先摆上官网和Github
:
- Github: https://github.com/netdata/netdata
- 官网: https://netdata.cloud
- 官方文档: https://docs.netdata.cloud
官方文档语言选项中有中文
,但是实测有翻译的章节不多 (2019-10-07)
教程中的实验环境为Ubuntu 18.04
, 不保证本教程在其他系统也能成功运行.
安装Netdata
在使用netdata
的安装脚本之前,建议先更新一下:
sudo apt update
sudo apt upgrade -y # -y 选项可以不加
然后使用脚本:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
跟随脚本提示(其实就是不停按Enter
, y
和输密码)安装完成后, 便可执行下一步.
验证安装成功
使用浏览器访问以下网址, 如果能够打开并看到类似以下画面则表示安装成功:
http://<your ip>:19999
注意把your ip
改为你的vps的IP
地址.
更改配置(可选)
安装完成后,配置文件默认放在/etc/netdata/
目录, 建议使用该目录下的edit-config
编辑配置文件.
更改系统默认编辑器
edit-config
会使用系统默认编辑器编辑配置文件, 如果你偏爱vim
而系统默认的编辑器是nano
的话, 你可能需要进行这一步操作:
sudo update-alternatives --config editor
然后会出现一段类似这样的文字:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number:
有*
的那一行表示当前的系统默认编辑器, 输入vim
对应的那个数字即可. 如果你发现这上面并没有vim
, 那么可能是你还没有安装.
更改默认端口
edit-config
的用法是:
sudo ./edit-config FILENAME # FILENAME 为要编辑的配置文件名
使用下面的命令可以获得所有netdata
的配置文件名:
sudo ./edit-config
在使用上述命令时需保证已经进入/etc/netdata
目录:
cd /etc/netdata
并且保证每次使用都加上sudo
以获得编辑权限.
使用以下命令编辑netdata.conf
:
sudo ./edit-config netdata.conf
在[web]
标签下找到port
选项, 把他改成你想要的值, 但是切记这个值的更改会影响后面的配置, 更改需慎重.
配置域名
通常我们都不想访问netdata
的时候要使用IP
并且带上端口号, 如果能直接用域名访问就好了. 我们可以使用nginx
反向代理来实现这一功能. 以下内容均假设需要配置的域名是netdata.domain.com
, 请自行替换成自己的域名.
使用 Nginx
本节内容可参照: https://docs.netdata.cloud/docs/running-behind-nginx/
首先自然是要安装nginx
:
sudo apt install nginx
然后在/etc/nginx/sites-available
中新建一个配置文件:
cd /etc/nginx
sudo vim sites-avaliable/netdata.conf
输入以下内容:
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
server {
listen 80;
server_name netdata.domain.com;
location / {
proxy_pass http://netdata;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
}
然后保存, 退出, 让nginx
重新载入配置文件:
sudo systemctl reload nginx
访问你的域名, 看到如下画面表示成功:
监控多台设备
本节可参考: https://docs.netdata.cloud/streaming/#monitoring-ephemeral-nodes
之前的设置只能让netdata
监控单台设备, 如何让它监控多台呢?
我们把刚刚安装的那一台主机叫做master
, 其他主机叫slaves
, 此时我们需要在slaves
上安装netdata
, 方法和上面的一样, 不过不需要配置nginx
.
注: 如果你只需要在单台设备上安装, 那么你已经成功了!
配置stream
首先使用uuidgen
命令获取一个uuid
作为api key
:
uuidgen
记录输出, 输出应该是类似d1b69115-ce04-4c88-aa7a-4287fdb58222
的一个字符串.
使用edit-config
编辑stream.conf
:
cd /etc/netdata # 进入netdata配置目录
sudo ./edit-config stream.conf
把[stream]
下的选项改为以下的设置:
[stream]
# stream metrics to another Netdata
enabled = yes
# the IP and PORT of the master
destination = 10.11.12.13:19999
# the API key to use
api key = 11111111-2222-3333-4444-555555555555
其中:
api key
: 是刚刚生成的uuid
destination
:master
主机的IP
和端口号(默认是19999
)
重新启动netdata
:
sudo systemctl restart netdata
禁用本地存储(可选)
以上设置已经能让master
拿到slave
的数据了, 但是以下设置可以更好地利用slave
主机的空间.
打开/etc/netdata/netdata.conf
文件并把以下的设置改为对应值:
[global]
# disable the local database
memory mode = none
[health]
# disable health checks
enabled = no
记得重启netdata
:
sudo systemctl restart netdata
主机设置
编辑/etc/netdata/stream.conf
:
cd /etc/netdata
sudo ./edit-config stream.conf
在/etc/netdata/stream.conf
中更改以下配置:
[API_KEY]
# enable/disable this API key
enabled = yes
# one hour of data for each of the slaves
default history = 3600
# do not save slave metrics on disk
default memory = ram
# alarms checks, only while the slave is connected
health enabled by default = auto
建议找到API_KEY
这一部分然后更改有差异的选项. 然后把API_KEY
(中括号里的内容)改为之前生成的uuid
.
记得重启netdata
:
sudo systemctl restart netdata
注: 貌似每新增一台新的slaves
就需要重启一次
验证
如果你在master
的netdata
上看到一个新的节点就表示成功了(如图)
Nginx代理stream
之前我们在slave
上配置destinaiton
的时候使用的是IP
地址, 不利于迁移(如果想把master
变成另外一台主机, 那就需要把所有slaves
的配置都改一遍).
我们可以使用域名来解决这一问题. 首先先新增一条A
记录, 把一个域名指向master
主机. 切记不能有Web Proxy
, 如果你使用的是cloudflare
作为DNS
服务器, 请保证域名旁边的云是灰色的(橙色代表启用proxy
).
配置主机Nginx
Ubutnu
默认安装并启用了nginx
的stream
模块, 检测步骤为:
- 查看
/etc/nginx/modules-enabled/
里面是否有类似50-mod-stream.conf
的模块 /etc/nginx/nginx.conf
中是否包含include /etc/nginx/modules-enabled/*
相关载入stream
模块的语句
在/etc/nginx/nginx.conf
中加入以下语句:
stream {
upstream netdata {
server 127.0.0.1:19999;
}
server {
listen 9898;
proxy_pass netdata;
}
}
其中, server
里面的listen
需要和slaves
配置中的端口对应(默认应为19999
)
重启nginx
:
sudo nginx -t # 检查配置文件有无错误
sudo systemctl reload nginx
不错,写的很赞