Prometheus+Grafana搭建
1.安装grafana
Grafana 是一个可视化工具,简单点说就是用来展示数据的。它和Zabbix、Prometheus 有本质区别,在于它不能解决监控问题,仅用于展示。也就是说,在监控领域,Grafana 需要配合 Zabbix、Prometheus 等工具一起使用,以获取数据源。
安装grafana,可以采用传统或是docker方式安装,我这里使用docker来部署。部署前创建一个用于数据持久化的文件夹:
mkdir -p /opt/docker/grafana
chmod 777 /opt/docker/grafana
注:如果不赋予持久化文件夹权限,可能会报权限问题
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
使用以下命令安装部署:
docker run -d \
-p 3000:3000 \
--name=grafana \
--restart=always \
--privileged=true \
-v /opt/docker/grafana:/var/lib/grafana \
grafana/grafana
安装完成后,使用http://ip:3000,将ip改为你服务器的网址,使用浏览器访问:
默认初始账号为admin/admin,登录后会要求你更改密码。这样我们就把grafana的环境给部署好了,待后面进行配置。
2.安装prometheus
Prometheus 是一款基于时序数据库的开源监控告警系统。prometheus也可以使用传统二进制或是docker安装,为了便于配置,我这里使用传统的方式部署。
首先从官网下载最新的prometheus安装包:
wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz
解压:
tar -xf prometheus-2.36.1.linux-amd64.tar.gz && mv prometheus-2.36.1.linux-amd64 /usr/local/prometheus
创建启动脚本:
vim /usr/lib/systemd/system/prometheus.service
将下面的内容粘贴进去:
[Unit]
Description=The Prometheus Server
After=network.target
[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
RestartSec=15s
[Install]
WantedBy=multi-user.target
如果需要指定端口运行,可以在ExecStart后指定端口,格式如下,默认为9090:
--web.listen-address=:8001
最后保存退出,设置启动和开机启动,查看程序运行状态:
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
systemctl status prometheus
启动日志如果像我一样则运行成功。
3.安装node-exporter
官网下载node-exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
解压:
tar -xf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64 /usr/local/node_exporter
设置开机启动:
vim /usr/lib/systemd/system/node_exporter.service
将下面内容粘贴进去,保存退出:
[Unit]
Description=The Prometheus Node_Exporter
After=network.target
[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9100
RestartSec=15s
[Install]
WantedBy=multi-user.target
启动并设置开机启动:
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
systemctl status node_exporter
4.配置prometheus
这里主要去配置prometheus去拉取node_exporter的数据,相同的数据可以放到同一组下。
vim /usr/local/prometheus/prometheus.yml
按照如上的格式配置,注意缩进。其中job_name可以任意,targets填写node_exporter的地址。修改好后保存退出。
重启prometheus使配置生效:
systemctl restart prometheus
5.配置grafana
grafana配置数据源和可视化模版来展示采集到的prometheus数据,登录后点击Data sources。
添加一个Prometheus的数据源,点击Select 选择:
其它配置保持默认,最后点击Save & test
完了之后,导入一个可视化面板:
https://grafana.com/grafana/dashboards/
然后填入8919,然后点击load,如果是监控windows,使用10467。