Linux部署Prometheus+Grafana监控

前言:

本文介绍如何使用Docker安装Prometheus+Grafana实现对Os和Go应用进程的监控可视化展示。

环境准备

本文安装主要实用工具为docker,所以按照本文操作开启前请提前安装好docker,并配置好docker的镜像加速功能,否则可能出现拉取Grafana镜像失败问题。

准备条件

  1. Node ExporterPrometheus 不具备直接采集OS信息的能力,需要借助采集工具,Linux需要下载Node Exporter 并开放防火墙端口9100。
  2. Prometheus Prometheus 是一款基于时序数据库的开源监控告警系统。主要功能是对采集到的数据进行存储和查询。
  3. Grafana Grafana是一个开源的,拥有丰富dashboard和图表编辑的指标分析平台,和Kibana不同的是Grafana专注于时序类图表分析,而且支持多种数据源,如Graphite、InfluxDB、Elasticsearch、Mysql、K8s、Zabbix等。

安装NodeExporter

1.下载node_exporter安装包

1
2
$ cd /tmp
$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz

2.解压tar压缩包

1
$ tar -xvf node_exporter-1.6.0.linux-amd64.tar.gz

3.解压文件切换路径 /usr/local/bin

1
$ sudo mv node_exporter-1.6.0.linux-amd64/node_exporter /usr/local/bin/

创建自定义Node Exporter服务

1.创建一个node_exporter用户,来运行Node Exporter服务。

1
$ sudo useradd -rs /bin/false node_exporter

2.在 systemd 下创建Node Exporter服务文件。

1
$ sudo vim /etc/systemd/system/node_exporter.service

3.在服务文件中添加以下服务文件内容并保存。

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

4.:重新加载系统守护进程并启动Node Exporter服务。

1
2
$ sudo systemctl daemon-reload
$ sudo systemctl start node_exporter

5.检查Node Exporter状态,确保其处于正常运行状态。

1
$ sudo systemctl status node_exporter

6.开启服务器开机自启动Node Exporter服务。

1
$ sudo systemctl enable node_exporter

7.通过metrics查看采集数据

:link:http://127.0.0.1:9100/metrics 注意这里是你配置的主机IP,我是用本地主机。

安装Prometheus

这里安装Prometheus我们仍然使用docker进行安装

1.拉取镜像并运行容器

1
$ docker run -d --name prometheus-node1  -p 9090:9090  bitnami/prometheus:latest

2.修改Prometheus.yml配置文件

Prometheus.yml文件决定了每次启动监控时需要监控的内容、配置等。

1
2
## 首先我们拷贝容器内部的 prometheus.yml 到物理机中方便修改
$ docker cp prometheus-node1:/opt/bitnami/prometheus/conf/prometheus.yml prometheus.yml

3.修改配置文件

1
$ vim prometheus.yml

prometheus.yml

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
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus-node1'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['localhost:9090']

- job_name: 'Linux'
static_configs:
- targets: ['192.168.56.168:9100']
labels:
instance: Linux

4.保存修改后的配置到容器内

这里注意,我们修改的物理机上面的配置信息,因此我们还需要把配置文件覆盖到容器内部才能生效。

1
2
# 覆盖容器内部配置文件
$ docker cp prometheus.yml prometheus-node1:/opt/bitnami/prometheus/conf/prometheus.yml

5.重启容器

配置文件发生变更后,需要重新启动服务才能使配置生效

1
2
# 重新启动 prometheus
$ docker restart prometheus-node1

6.使用控制台

我们运行的容器暴露的端口在 localhost:9090上。

点击下面链接就可以看到Prometheus运行了。

[Prometheus]: http://localhost:9090 “Prometheus可视化控制台”

image-20230725100652844

安装Grafana

这里Grafana也采用docker进行安装

1.拉取Grafana镜像

1
$ docker pull grafana/grafana

2. 制作容器

1
$ docker run -d --name grafana -p 3000:3000 grafana/grafana

3.查看是否运行

Grafana 登录的初始账号和密码 均为 admin

:link:http://127.0.0.1:3000

4.导入数据源

image-20230725101107318

image-20230725101127031

image-20230725101208776

image-20230725101218576

5.使用模板数据

image-20230725101343804

image-20230725101411980

6.效果展示

1.Linux

image-20230725101622898

2.Golang

image-20230725101710224

模板推荐

Os 监控模板 应用进程监控模板 ,数字对应ID号。

Linux模板

  1. Node Exporter 8919

Golang 监控模板

  1. Go Metrics 10826
  2. Go Process6671

Linux部署Prometheus+Grafana监控
http://yoursite.com/2023/07/25/Linux部署Prometheus-Grafana监控/
作者
Meng-Xin
发布于
2023年7月25日
许可协议