原贴作者:魂尾ac
原贴地址:https://blog.csdn.net/weixin_40331132/article/details/125815090?spm=1001.2014.3001.5501
本文是我自己根据原贴操作,稍微改动了一些编辑的。
一、三剑客介绍
Grafana:可视化大型测量数据工具,提供了强大和优雅的方式去创建、共享、浏览数据。但当有他还不能监控服务器信息。还需要下面的两个工具。
Prometheus:一个开源的监控工具,用于收集和聚合指标作为时间序列数据。但纯有这个也无法监控服务器信息,还需要一个专业的信息采集服务。
Node_exporter:是prometheus官方提供的agent,项目被托管在prometheus的账号之下,需要被安装服务器上,然后才能采集到服务器数据信息。
三剑合一后页面呈现如下:
三剑客安装顺序
其实三剑客安装顺序不讲究,随便安装即可,但对于初学,个人顺序如下
Grafana -> prometheus -> node_exporter
从外层到里面,grafana 需要配置prometheus的服务器地址,prometheus需要配置node_exporter的服务器地址(可配置多台,类似监控服务器集群);如何配置,在‘工具安装’后‘三剑合一’章节描述。
二、工具安装
声明:本文档里的工具均在linux服务器上安装。
安装开始前,在/usr 目录下创建一个pthreetools目录,
命令:mkdir /usr/pthreetools
进入:cd /usr/pthreetools
后续三个工具便安装在这个目录下
1、grafana安装
官网下载路径:https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1&platform=linux
(1)下载与解压:
这里下载写本文档的最新版本。
在/usr/pthreetools目录执行安装与解压
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.2.linux-amd64.tar.gz
解压
tar -zxvf grafana-enterprise-9.0.2.linux-amd64.tar.gz
修改目录文件
mv grafana-9.0.2 grafana
(2)创建grafana的用户、数据目录、配置权限
新增一个非登录用户
useradd -s /sbin/nologin -M grafana
创建grafana数据目录
mkdir /usr/pthreetools/grafana/data
给grafana目录配置grafana用户权限
chown -R grafana:grafana /usr/pthreetools/grafana
(3)修改grafana配置文件
打开配置文件
vim /usr/pthreetools/grafana/conf/defaults.ini
i编辑下页字段
data = /usr/pthreetools/grafana/data
logs = /usr/pthreetools/grafana/log
plugins = /usr/pthreetools/grafana/plugins
provisioning = /usr/pthreetools/grafana/conf/provisioning
保存,点击esc输入 :wq
(4)创建服务启动文件
在/usr/lib/systemd/system/目录下新增一个grafana.service文件
vim /usr/lib/systemd/system/grafana.service
将下面一段输入:
[Unit]
Description=Grafana
After=network.target
[Service]
User=grafana
Group=grafana
Type=notify
ExecStart=/usr/pthreetools/grafana/bin/grafana-server -homepath /usr/pthreetools/grafana
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存点击esc输入:wq
重新载入:
systemctl daemon-reload
(5)启动grfana
启动
systemctl start grafana
查看状态
systemctl status grafana
设置可用
systemctl enable grafana
可以通过 ss -anlt查看 3000端口是否有(默认3000)
然后输入ip a查询ip
小知识点,linux的网卡配置一般是ens33,所以查看ip也看这个标识
上图ip为 192.168.30.140在同一网段中的windows系统浏览器中输入
192.168.30.140:3000
进入网站,初始账号密码是admin/admin
【注】此处由于本人IP与服务器网段不在同一网段,无法通过IP直接访问,所以做了一步NGINX反向代理的操作
(6)设置Nginx反向代理grafana
vim /usr/pthreetools/grafana/conf/defaults.ini
编辑需要外网访问域名,把domain改成需要映射的外网域名,root_url最后面加上/grafana/
修改Nginx配置文件,在nginx.conf里面添加一个location:
location /grafana/ {
root html;
#index index.html index.htm;
add_header 'Access-Control-Allow-Origin' '*';
add_header Access-Control-Allow-Methods GET,POST,OPTIONS,DELETE;
add_header 'Access-Control-Allow-Headers' 'userId,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
proxy_pass http://******:3000/;#此处填写grafana服务器地址
rewrite ^/grafana/(.*) /$1 break;
proxy_set_header Host $host;
}
配置完成之后重启nginx
/usr/locoal/nginx/sbin/nginx -s reload
此时通过你配置的域名就可以直接访问grafanan了,但是IP加端口的方式就无法访问了
打开如下,暂时不配置东西
2、prometheus安装
官网下载页:
(1)下载与安装
下载(这里下载文档编写时的最新版本)
wget https://github.com/prometheus/prometheus/releases/download/v2.37.0-rc.1/prometheus-2.37.0-rc.1.linux-amd64.tar.gz
解压
tar -zxvf prometheus-2.37.0-rc.1.linux-amd64.tar.gz
更改目录
mv prometheus-2.37.0-rc.1.linux-amd64/ prometheus
(2)配置权限
添加用户
useradd -M -s /sbin/nologin prometheus
新增数据保存目录
mkdir -p /data/prometheus
加权限
chown -R prometheus.prometheus /usr/pthreetools/prometheus /data/prometheus
(3)prometheus.yml配置(可跳过,暂时无需配置)
进入到prometheus目录下,找到prometheus.yml文件,查看:cat prometheus.yml
可以看到如下内容,先不要管这些,只需要知道最下面的targets字段是配置监控目录机器ip:port的
(4)配置prometheus的启动service文件
打开一个编辑文件
vim /usr/lib/systemd/system/prometheus.service
在里面输入
[Unit]
Description=The Prometheus Server
After=network.target
[Service]
Restart=on-failure
ExecStart=/usr/pthreetools/prometheus/prometheus --config.file=/usr/pthreetools/prometheus/prometheus.yml
RestartSec=15s
[Install]
WantedBy=multi-user.target
配置完成后,重载一下systemctl
systemctl daemon-reload
(5)启动prometheus
systemctl start prometheus
查看9090端口,prometheus默认端口
ss -anlt
设置可用
systemctl enable prometheus
在同网段浏览器打开 ip:9090
3、node_exporter监控服务安装
prometheus负责汇总多个服务器的node_exporter收集的数据在grafana形象的展示出来。
所以node_exporter需要安装在监控的目标机上(本文档与grafana、prometheus安装在一台机器上,自己监控自己)
官网下载页:下载地址
(1)下载与解压
下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
解压
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
改目录名
mv node_exporter-1.3.1.linux-amd64/ node_exporter
(2)配置启动service文件
vim /usr/lib/systemd/system/node_exporter.service
输入
[Unit]
Description=The node_exporter Server
After=network.target
[Service]
ExecStart=/usr/pthreetools/node_exporter/node_exporter
Restart=on-failure
RestartSec=15s
SyslogIdentifier=node_exporter
[Install]
WantedBy=multi-user.target
重载systemctl
systemctl daemon-reload
(3)启动服务
systemctl start node_exporter
查看9100端口是否启动(默认9100)
ss -anlt
同网段用浏览器打开ip:9100
展示如下,即安装成功
三、三剑合一
1、配置prometheus :node_exporter
打开prometheus的配置文件
vim /usr/pthreetools/prometheus/prometheus.yml
将job_name修改为group1
将targets: 数组里添加我们node_exporter服务器ip与端口(可以看出它是一个[],列表,可以配置多个服务器,以逗号分割)
配置完成
可以检查一下文件是否正常
进入个prometheus目录下
./promtool check config prometheus.yml
如下图输出SUCCESS表示配置文件正常
重启服务prometheus服务
systemctl restart prometheus
重启成功后
用浏览器打开ip:9090打开prometheus查看targets是不是有目标了
2、grafand配置展示prometheus
(1)在浏览器里打开grafana
设置-Data source - Add data souce - Prometheus
添加成功如下图
然后点击上图数字3,打开下图配置prometheus相关信息,配置好prometheus服务器Ip端口,
然后点击save&test
3、配置展示模板
(1)下载模板
先下载一个服务器信息展示模板,下面是某个模板的链接
https://grafana.com/grafana/dashboards/11074-node-exporter-for-prometheus-dashboard-en-v20201010/
Download JSON: 点击下载模板的json
Copy ID to clipboard:点击复制模板的id
(2)配置模板
在Dashboards–Import
输入模板ID,点击load
点击Import之后就能看到监控界面
4、监控多台服务器
前面讲的是作为监控主机的服务器安装,下面说一下如何监控多台服务器
(1)在需要被监控的服务器安装Node_exporter
参考前面安装步骤
(2)修改配置
然后在监控主机的Prometheus 的配置文件的target里加上被监控机器的IP
vim /usr/pthreetools/prometheus/prometheus.yml
修改完配置记得重载一下并重启prometheus服务
systemctl daemon-reload
systemctl restart prometheus
(3)在grafana前端添加被监控的服务器
重复”grafand配置展示prometheus“里的步骤,在添加DataSource的时候填写上prometheus所在服务器就可以了
然后返回到监控界面就可以看到新增的服务器了