在 Debian 12 上使用 Grafana 和 Prometheus 构建监控系统在 Debian 12 上使用 Grafana 和 Prometheus 构建监控系统在 Debian 12 上使用 Grafana 和 Prometheus 构建监控系统在 Debian 12 上使用 Grafana 和 Prometheus 构建监控系统
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Debian 12 上使用 Grafana 和 Prometheus 构建监控系统

在此页面上

  1. 先决条件
  2. 添加 Grafana 存储库
  3. 安装 Grafana
  4. 配置Grafana
  5. 安装 Nginx 作为反向代理
  6. 向 Prometheus 服务器添加身份验证
  7. 将 Prometheus 与 Grafana 仪表板集成

    1. 添加Prometheus数据源
    2. 导入仪表板监控

Grafana是Grafana Labs开发的开源、多平台数据可视化平台。 Grafana 提供交互式数据可视化 Web 应用程序,其中包括图表、图形和警报。使用 Grafana,您可以查询、可视化、设置警报以及探索 TSDB 的指标、日志和跟踪。它是一个强大的工具,可将时间序列数据库 (TSDB) 数据转换为富有洞察力的图表和可视化。

在 Grafana 中,您可以通过“数据源”添加时间序列数据库数据。 Grafana 支持多种数据源,例如 Prometheus、InfluxDB、PostgreSQL、Loki、Jaeger、Graphite、Google Cloud Monitoring、AWS CloudWatch、Azure Monitor 等。

在本指南中,您将在 Debian 12 服务器上安装 Grafana,并使用 Nginx 作为反向代理,然后添加 Prometheus 作为数据源并配置 Grafana Dashboard 进行系统监控。

先决条件

在继续之前,请确保您具备以下条件:

  • 用于安装 Grafana 的 Debian 12 服务器。
  • 安装了 Prometheus 和 Node Exporter 的 Debian 12 服务器 - 如何在 Debian 12 上安装 Prometheus 和 Node Exporter。
  • 具有 sudo 管理员权限的非 root 用户。

添加 Grafana 存储库

在本指南中,您将通过官方 Grafana 存储库安装 Grafana。为此,您必须将 Grafana 存储库添加到 Debian 服务器。

首先,运行以下命令将基本依赖项安装到您的 Debian 计算机。

sudo apt install gnupg2 apt-transport-https software-properties-common wget

现在,通过执行以下命令添加 Grafana GPG 密钥和存储库。

curl -fsSL https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/grafana.gpg
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main' | sudo tee /etc/apt/sources.list.d/grafana.list

最后,更新并刷新您的 Debian 软件包索引以应用更改。

sudo apt update

安装 Grafana

现在您已经添加了 Grafana 存储库,您将通过 APT 安装 Grafana。然后,您将为 Grafana 安装配置管理员用户和密码。

使用以下命令将 Grafana 安装到您的 Debian 系统。输入y继续安装。

sudo apt install grafana

安装完成后,执行以下命令重新加载systemd管理器。

sudo systemctl daemon-reload

然后,使用以下命令启动并启用 grafana-server 服务。

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

grafana-server 运行后,使用以下命令验证它。如果一切顺利,您应该看到 grafana-server 已启用并正在运行。

sudo systemctl status grafana-server

最后,启动 Web 浏览器并使用默认 Grafana 端口 3000 访问服务器 IP 地址,例如 http://192.168.5.20:3000/。

输入默认用户admin和密码admin,然后点击登录。

现在使用新密码更改默认管理员密码。然后点击提交进行确认。

该过程完成后,您应该看到如下所示的 Grafana 仪表板:

配置Grafana

安装 Grafana 后,下一步是通过修改默认配置 /etc/grafana/grafana.ini 来配置 Grafana,并将 http_addr 设置为 localhost、http_port 到 3000 以及本地域名 grafana.howtoforge.local 的域。

使用以下 nano 编辑器命令打开默认 Grafana 配置 /etc/grafana/grafana.ini。

sudo nano /etc/grafana/grafana.ini

使用以下行更改默认配置。在此示例中,您将在 localhost 上运行 Grafana,并使用本地域名 grafana.howtoforge.local。

[server]
# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost
# The http port  to use
http_port = 3000
# The public facing domain name used to access grafana from a browser
domain = grafana.howtoforge.local

完成后,保存并退出文件。

现在运行以下 systemctl 命令来重新启动 grafana-server 并应用更改。这样,您的 Grafana 安装就仅在本地主机上运行。

sudo systemctl restart grafana-server

安装 Nginx 作为反向代理

在本指南中,您将使用 Nginx 作为反向代理来运行 Grafana。现在,完成以下任务来安装和配置 Nginx 作为 Grafana 安装的反向代理。

运行以下命令将 Nginx Web 服务器安装到您的 Debian 计算机。输入y继续安装。

sudo apt install nginx

安装 Nginx 后,运行以下 nano 编辑器命令来创建新的服务器块文件 /etc/nginx/sites-available/grafana.conf。

sudo nano /etc/nginx/sites-available/grafana.conf

插入以下配置,并确保更改 server_name 参数中的域名。

# This is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
server {
    listen      80;
    server_name grafana.howtoforge.local;
    root /usr/share/nginx/html;
    index index.html index.htm;
    access_log /var/log/nginx/grafana-access.log;
    error_log /var/log/nginx/grafana-error.log;
    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:3000/;
    }
    # Proxy Grafana Live WebSocket connections.
    location /api/live {
        rewrite  ^/(.*)  /$1 break;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:3000/;
    }
}

完成后保存并关闭文件。

接下来,运行以下命令激活服务器块文件/etc/nginx/sites-available/grafana.conf。然后,验证您的 Nginx 语法以确保语法正确。

sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t

如果您有正确的 Nginx 语法,您应该得到输出“测试成功 - 语法正常”。

最后,运行以下 systemctl 命令来重新启动 Nginx 服务并应用更改。然后,验证 Nginx 以确保服务正在运行。

sudo systemctl restart nginx
sudo systemctl status nginx

在以下输出中,您应该看到 Nginx 服务正在运行。

如果您是 Linux 或 MacOS 用户,要访问 Grafana 服务器,可以修改本地计算机上的 /etc/hosts 文件。对于 Windows 用户,请编辑文件 C:\Windows\System32\drivers\etc\hosts 作为管理。

将以下配置输入到文件中。

192.168.5.15    grafana.howtoforge.local

完成后保存并关闭文件。

现在返回 Web 浏览器并访问 Grafana 服务器的本地域名,例如 http://grafana.howtoforge.local/。如果配置成功,您将被重定向到 Grafana 登录页面。

使用您的管理员用户和密码登录,然后点击登录进行确认。

现在您应该获得 Grafana 管理仪表板。

向 Prometheus 服务器添加身份验证

在将 Prometheus 添加到 Grafana 之前,您将为 Prometheus 设置基本身份验证。您将使用 apache2-utils 生成基本身份验证密码,然后为 Prometheus 服务器启用 basic_auth。

在此示例中,Prometheus 和 Node Exporter 安装在 IP 地址为 192.168.5.15 和主机名 prometheus 的不同服务器上。

登录Prometheus服务器,通过下面的apt命令安装apache2-utils包。

sudo apt install apache2-utils -y

之后,生成 Prometheus 基本身份验证的新密码。输入您的密码并将生成的密码复制到您的笔记中。

htpasswd -nB promadmin

现在,使用以下 nano 编辑器命令创建新的 Prometheus 配置 /etc/prometheus/web.yml。

sudo nano /etc/prometheus/web.yml

添加以下配置以使用 basic_auth 模块保护 Prometheus 管理仪表板。

# basic_auth
basic_auth_users:
  promadmin: $2y$05$UlvHd4An.oQRt2UdUXzr9eZ6ShRLe3xYbMhw8ePfvGeLuu0khO4Bu

完成后保存并关闭文件。

接下来,使用以下 nano 编辑器命令打开默认的 Prometheus 配置 /etc/prometheus/prometheus.yml。

sudo nano /etc/prometheus/prometheus.yml

在 Prometheus 作业中添加下面的 basic_auth 配置。请务必使用您的数据更改详细用户名和密码。

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    # Add settings for certificate and authentication
    scheme: http
    basic_auth:
      username: 'promadmin'
      password: 'password'

完成后保存并关闭文件。

接下来,运行以下命令编辑 prometheus 服务文件。

sudo systemctl edit --full prometheus

使用以下内容更改默认的 ExecStart 选项。

ExecStart=/usr/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --web.config.file=/etc/prometheus/web.yml

完成后保存并关闭文件。

现在,运行以下 systemctl 命令来重新加载 systemd 管理器并应用更改。然后,重新启动prometheus服务。

sudo systemctl daemon-reload
sudo systemctl restart prometheus

使用以下命令验证 prometheus 服务。

sudo systemctl status prometheus

在 ExecStart 部分中,命令已更改如下。

最后,打开 Web 浏览器并访问端口 9090 的 Prometheus IP 地址(即:http://192.168.10.15:9090/)。系统将提示您进行 Prometheus basic_auth,输入您的管理员用户和密码,然后单击登录。

如果配置成功,您应该看到如下所示的 Prometheus 仪表板。

将 Prometheus 与 Grafana 仪表板集成

在Prometheus上配置Basic身份验证后,您可以将Prometheus作为数据源添加到Grafana仪表板中。您必须完成两个步骤:添加 Prometheus 作为数据源,然后导入或创建 Grafana 仪表板以进行系统监控。

添加Prometheus数据源

返回 Grafana 仪表板,单击连接菜单,然后选择数据源。

单击添加数据源继续。

选择时间序列数据库Prometheus。

将新数据源和Prometheus主机的名称输入http://192.168.5.15:9090/。在身份验证部分中,选择基本身份验证并输入 Prometheus 的用户名和密码。

向下滚动并点击保存并测试进行确认。输出“成功查询 Prometheus API。”确认 Prometheus 已添加到 Grafana。

导入仪表板监控

点击右上角的+菜单,然后选择导入仪表板。

在 https://grafana.com/grafana/dashboards/ 找到您想要的仪表板。然后,复制并粘贴仪表板 ID,然后单击加载进行确认。在本例中,我们将使用仪表板 ID 15172。

输入仪表板名称并选择Prometheus数据源。然后点击导入进行确认。

下面是使用 Prometheus 改进 Grafana Dashboard 来监控系统的示例。

现在您已经在 Debian 12 服务器上成功安装了 Grafana,并使用 Nginx 作为反向代理,添加了 Prometheus 作为 Grafana 的数据源,并导入了 Grafana 仪表板进行系统监控。

©2015-2025 艾丽卡 support@alaica.com