本文基于Redhat Enterprise Linux 9.4操作系统,介绍使用Grafana+Prometheus构建运维可观测平台的方法:

1、安装Grafana:

(1)、创建持久化存储卷

首先,创建一个Docker卷来保存Grafana的数据:

docker volume create grafana-storage

(2)、启动Grafana容器

使用以下命令启动Grafana容器,并将持久化存储卷挂载到容器中:

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -v grafana-storage:/var/lib/grafana \
  grafana/grafana

(3)、配置Grafana

Grafana的默认配置文件位于容器的 /etc/grafana/grafana.ini路径下。为了方便修改配置文件,可以将其挂载到宿主机:

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -v grafana-storage:/var/lib/grafana \
  -v /path/to/your/grafana.ini:/etc/grafana/grafana.ini \
  grafana/grafana

请将 /path/to/your/grafana.ini替换为你宿主机上实际的配置文件路径。

(4)、访问Grafana

启动容器后,可以通过浏览器访问Grafana的默认端口(http://localhost:3000)。默认的登录用户名和密码是 admin/admin。你可以使用NGINX将Grafana反代到80/443的端口。

2、安装Prometheus,并配置为系统服务:

创建数据存储目录:

mkdir /data/prometheus_data && chmod 777 /data/prometheus_data

下载Prometheus

wget https://github.com/prometheus/prometheus/releases/download/v2.41.0/prometheus-2.41.0.linux-amd64.tar.gz

解压文件

tar -zxvf prometheus-2.41.0.linux-amd64.tar.gz

进入解压后的目录

cd /path/to/prometheus-2.41.0.linux-amd64

编辑Prometheus的配置文件 prometheus.yml,添加Node Exporter的目标:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

将Prometheus配置为系统服务:

vim /etc/systemd/system/prometheus.service

在文件中添加以下内容:

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=nobody
ExecStart=/path/to/prometheus --config.file=/path/to/prometheus.yml --storage.tsdb.path=/data/prometheus_data
Restart=always

[Install]
WantedBy=multi-user.target

请确保将 /path/to/prometheus/path/to/prometheus.yml替换为Prometheus可执行文件和配置文件的实际路径。

3、安装Node Exporter,并配置为系统服务:

Node Exporter是Prometheus生态系统中的一个关键组件,用于收集和导出Linux系统的硬件和操作系统指标。

# 下载Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

# 解压文件
tar -zxvf node_exporter-1.8.2.linux-amd64.tar.gz

# 进入解压后的目录
cd node_exporter-1.8.2.linux-amd64

将Node Exporter配置成为系统服务:

vim /etc/systemd/system/node_exporter.service

在文件中添加以下内容:

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=nobody
ExecStart=/path/to/node_exporter --web.listen-address=":9100"
Restart=always

[Install]
WantedBy=multi-user.target

请确保将 /path/to/node_exporter替换为Node Exporter可执行文件的实际路径。

(3) 重新加载配置文件,启动服务并设置为开机自动启动:

sudo systemctl daemon-reload
sudo systemctl enable --now prometheus.service
sudo systemctl enable --now node_exporter.service

4、配置Grafana添加Prometheus作为数据源到Grafana:

找到如图所示的地方,添加一个Data Sources 选择Prometheus后在Connection处添加:http://yourserverip:port

5、创建仪表盘(Dashboard):

点击Import Dashboard,你可以在这里找到很多Grafana Dashboard的模板:Grafana dashboards | Grafana Labs 选择合适的导入即可。

在图中光标所示选择你的数据源即可。