Prometheus通过Nginx防盗链加密node_exporter
node_exporter是Prometheus的一个扩展程序,也是通过go语言编写,同样是开箱即食,主要用来采集服务器上的数据(CPU、内存等等)
主机Prometheus可以通过部署在客户端的node_exporter拉取到数据,只需要在Prometheus.yml里面添加一个job就可以了。
当线上服务器的客户端端口的node_exporter暴露在外面,所以加上nginx的auth认证可以增加安全性。
远程服务器配置
cd /usr/local/src wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz tar xf node_exporter-0.17.0.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/node_exporter-0.17.0.linux-amd64/ /usr/local/node_exporter
启动node_exporter
cd /usr/local/node_exporter
./node_exporter &
配置node_exporter启停
vim /usr/lib/systemd/system/node_exporter.service
[Unit] Description=node_exporter After=network.target [Service] Type=simple ExecStart=/promethus/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target
保存完记得systemctl daemon-reload
Nginx配置如下:
server { listen 19100; server_name 你的远程主机IP; location / { proxy_pass http://localhost:9100/; auth_basic "Prometheus"; auth_basic_user_file /usr/local/nginx/conf/401htpasswd; } } 注意:这里的监听19100是反向代理出去的,所以要会有两个端口,一个是内部访问的9100, 然后跳转出去19100出去。
如何添加htpasswd生成密码功能可以参考:https://www.cnblogs.com/zpzp/p/16276888.html
公司内网Prometheus配置
vim /usr/local/prometheus/prometheus.yml
在Prometheus配置文件下面添加以下内容,username是远程服务器认证账号,password为加密密码,此处IP为远程服务器的IP地址,不需要加http。
- job_name: server static_configs: - targets: ['IP:19100'] labels: instance: name basic_auth: username: whsir password: blog.whsir.com
参考:https://blog.whsir.com/post-4328.html