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

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

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

在 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

安装基本 deps

现在,通过执行以下命令添加 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

安装grafana

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

sudo systemctl daemon-reload

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

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

开始启用grafana

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.hwdomain.io。

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

sudo nano /etc/grafana/grafana.ini

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

[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.hwdomain.io

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

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

sudo systemctl restart grafana-server

安装 Nginx 作为反向代理

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

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

sudo apt install nginx

安装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.hwdomain.io;

    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 语法,您应该得到输出“测试成功 – 语法正确”。

设置nginx反向代理

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

sudo systemctl restart nginx
sudo systemctl status nginx

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

检查 Nginx

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

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

192.168.5.15    grafana.hwdomain.io

完成后保存并关闭文件。

现在返回 Web 浏览器并访问 Grafana 服务器的本地域名,例如 http://grafana.hwdomain.io/。 如果配置成功,您将被重定向到 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

安装 apache2-utils

之后,生成 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=` 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'

完成后保存并关闭文件。

添加 basic_auth

接下来,运行以下命令编辑 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 仪表板进行系统监控。

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载

资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载

上一篇 2024年 5月 31日
下一篇 2024年 5月 31日

相关推荐