这份文档是根据netdata的wiki逐步完成的一份记录,如果出现命令错误或者过时等问题,可以移至netdata的wiki,根据指导完成操作。
netdata wiki - install
1. 准备工作
一台联网的centos7主机
安装环境
1
| yum install autoconf automake curl gcc git libmnl-devel libuuid-devel lm_sensors make MySQL-python nc pkgconfig python python-psycopg2 PyYAML zlib-devel -y
|
2. 下载项目
1 2 3 4 5 6 7
|
git clone https://github.com/netdata/netdata.git --depth=1 ~/netdata/
|
3.安装项目
1 2 3 4 5 6 7 8 9
|
~/netdata/netdata-installer.sh --install /usr/local
|
4.设置为服务并自启动
如果每次重新启动服务器之后都需要进入/usr/sbin
开启netdata
的话,明显和我们的使用习惯不大相同,所以我们需要将他注册成服务,并设置为开机自启动模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| killall netdata
cp ~/netdata/system/netdata.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable netdata
systemctl start netdata
cp ~/netdata/system/netdata-init-d /etc/init.d/netdata
chmod +x /etc/init.d/netdata
chkconfig --add netdata
|
5.测试访问
默认的端口是19999
,在浏览器中输入http://[centos ip]:19999
即可访问,如果出现服务器阻止访问,则需要在防火墙开启19999的端口的tcp协议,如下:
1 2 3 4
| firewall-cmd --zone=public --add-port=19999/tcp --permanent
firewall-cmd --reload
|
6.增加权限认证
如果是带公网ip的服务器,且需要将该页面放在公网上方便访问,则需要对访问的权限做验证,
netdata
的设计理念是分布式的服务器监控,那么每个服务器都有自己的子页面,那么每个页面都有一个权限验证是不可能的,
加之因为登陆信息不共通,那么每个页面都要重复登陆,这不符合常理,
所以官方提倡我们外部使用其他服务器对netdata
的访问做反向代理并做权限验证。
这里我推荐使用使用nginx做反向代理和权限验证
一是nginx可以只用配置文件就达到目的,
完全不用管源码,上手门槛低,且功能强大;
二是因为nginx性能损耗低,功能强大,毕竟一个性能监控没必要浪费过多的性能;
三是扩展性良好,直接在配置文件加上另一个服务器的ip和端口就行了,方便维护;
这里呢,我们采用源码安装nginx
首先,在github上面下载最新的源代码,我这里是下载了nginx-1.15.5 的版本。
1 2 3 4 5 6 7 8 9 10 11 12 13
| wget -P ~ http://nginx.org/download/nginx-1.15.5.tar.gz
tar -zxvf nginx-1.15.5.tar.gz
yum -y install openssl openssl-devel
./nginx-1.15.5/.configure --prefix=/usr/local/nginx
make && make install
vi /usr/local/nginx/conf/nginx.conf
|
修改代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| http { # 以上无关省略...
# netdata服务器位置 # 因为我都是放在同一台服务器,所以直接用localhost # 如果需要引入外部的服务器,需要在服务器上开放19999端口 # 并限制只有nginx服务器的ip才能访问 upstream netdataServer { server localhost:19999; keepalive 64; }
server{ # nginx端口自己定,建议不要使用80和19999 listen 8099; server_name localhost;
# 权限验证部分,指定身份验证文件,后面会提到如何创建 auth_basic "Restricted Access"; auth_basic_user_file /usr/local/nginx/conf/htpasswd.users;
#这里如果有多个服务器可以用?<xxx>代指不同服务器 location ~ /netdata/(?<ndpath>.*) { 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; # 这里也要改为$xxx proxy_pass http://netdataServer/$ndpath$is_args$args; gzip on; gzip_proxied any; gzip_types *; } } #以下无关省略... }
|
修改完还没结束,需要开放端口和创建身份验证的文件
1 2 3 4 5 6 7 8
| firewall-cmd --zone=public --add-port=8099/tcp --permanent
yum install -y httpd-tools
htpasswd -bc /usr/local/nginx/conf/htpasswd.users username password
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
|