在 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
现在,通过执行以下命令添加 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.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 后,运行以下 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 语法,您应该得到输出“测试成功 – 语法正确”。
最后,运行以下 systemctl 命令来重新启动 Nginx 服务并应用更改。 然后,验证 Nginx 以确保服务正在运行。
sudo systemctl restart nginx
sudo systemctl status 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
之后,生成 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'
完成后保存并关闭文件。
接下来,运行以下命令编辑 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 仪表板进行系统监控。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载