活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

CentOS Stream环境下Grafana部署全指南从安装到高级配置构建强大系统监控平台

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-8 20:20:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Grafana是一个开源的度量分析和可视化套件,广泛应用于监控系统中。它支持多种数据源,提供丰富的图表和仪表板选项,是构建强大监控平台的核心组件。在CentOS Stream环境下部署Grafana,可以为企业和开发者提供稳定、可靠的系统监控解决方案。本文将详细介绍从安装到高级配置的全过程,帮助您构建一个功能完善的系统监控平台。

准备工作

在开始安装Grafana之前,我们需要确保系统环境满足基本要求并进行必要的准备工作。

系统要求

• 操作系统:CentOS Stream8⁄9
• CPU:至少2核心
• 内存:建议4GB以上
• 磁盘空间:至少10GB可用空间
• 网络:能够访问互联网以下载软件包

检查系统版本

首先,确认您正在使用CentOS Stream系统:
  1. cat /etc/os-release
复制代码

输出应该类似于:
  1. NAME="CentOS Stream"
  2. VERSION="9"
  3. ID="centos"
  4. ID_LIKE="rhel fedora"
  5. VERSION_ID="9"
  6. PLATFORM_ID="platform:el9"
  7. PRETTY_NAME="CentOS Stream 9"
  8. ANSI_COLOR="0;31"
  9. LOGO="fedora-logo-icon"
  10. CPE_NAME="cpe:/o:centos:centos:9"
  11. HOME_URL="https://centos.org/"
  12. BUG_REPORT_URL="https://bugzilla.redhat.com/"
  13. REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
  14. REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
复制代码

更新系统

确保系统是最新的:
  1. sudo dnf update -y
复制代码

安装必要的软件包

安装一些必要的工具和依赖:
  1. sudo dnf install -y wget curl tar unzip
复制代码

检查防火墙和SELinux

确认防火墙和SELinux的状态:
  1. sudo firewall-cmd --state
  2. sudo getenforce
复制代码

如果防火墙是启用的,我们需要确保后续开放Grafana所需的端口(默认为3000)。如果SELinux是 enforcing 模式,我们可能需要进行一些额外的配置。

安装Grafana

在CentOS Stream上安装Grafana有多种方式,包括使用Yum仓库、二进制文件和Docker容器。我们主要介绍使用Yum仓库的安装方式,这是最简单且推荐的方法。

添加Grafana Yum仓库

创建一个新的Yum仓库文件:
  1. sudo nano /etc/yum.repos.d/grafana.repo
复制代码

在文件中添加以下内容:
  1. [grafana]
  2. name=grafana
  3. baseurl=https://packages.grafana.com/oss/rpm
  4. repo_gpgcheck=1
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=https://packages.grafana.com/gpg.key
  8. sslverify=1
  9. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
复制代码

保存并退出编辑器。

安装Grafana

使用dnf命令安装Grafana:
  1. sudo dnf install -y grafana
复制代码

这将安装Grafana及其所有依赖项。

验证安装

安装完成后,可以验证Grafana是否已正确安装:
  1. grafana-server -v
复制代码

输出应该显示Grafana的版本信息,例如:
  1. Version 9.5.2 (commit: a4c2e8e1d1)
复制代码

基本配置

安装完成后,我们需要进行一些基本配置以确保Grafana能够正常运行。

启动Grafana服务

启动Grafana服务并设置为开机自启:
  1. sudo systemctl start grafana-server
  2. sudo systemctl enable grafana-server
复制代码

检查服务状态:
  1. sudo systemctl status grafana-server
复制代码

如果服务正在运行,您应该看到类似以下的输出:
  1. ● grafana-server.service - Grafana instance
  2.    Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
  3.    Active: active (running) since Tue 2023-06-20 10:15:23 CST; 5s ago
  4.      Docs: http://docs.grafana.org
  5. Main PID: 12345 (grafana-server)
  6.     Tasks: 9 (limit: 1137)
  7.    Memory: 25.4M
  8.    CGroup: /system.slice/grafana-server.service
  9.            └─12345 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=rpm cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning
复制代码

配置防火墙

如果防火墙是启用的,需要开放Grafana的默认端口3000:
  1. sudo firewall-cmd --permanent --add-port=3000/tcp
  2. sudo firewall-cmd --reload
复制代码

访问Grafana Web界面

现在,您可以通过浏览器访问Grafana的Web界面:
  1. http://<your-server-ip>:3000
复制代码

默认的用户名和密码都是admin。首次登录时,系统会要求您更改密码。

Grafana配置文件

Grafana的主要配置文件是/etc/grafana/grafana.ini。您可以根据需要修改此文件来自定义Grafana的行为。以下是一些常用的配置项:
  1. [server]
  2. # 监听的端口
  3. http_port = 3000
  4. # 绑定的地址,0.0.0.0表示所有接口
  5. http_addr = 0.0.0.0
  6. # 域名
  7. domain = your-domain.com
  8. [database]
  9. # 数据库类型,可以是sqlite3、mysql或postgres
  10. type = sqlite3
  11. # 数据库路径(对于SQLite)
  12. path = grafana.db
  13. [security]
  14. # 禁用用户注册,默认为false
  15. disable_registration = true
  16. # 禁用匿名访问
  17. disable_anonymous_access = true
  18. [users]
  19. # 默认主题
  20. default_theme = dark
  21. [log]
  22. # 日志级别,可以是trace、debug、info、warn、error、critical
  23. level = info
  24. # 日志格式,可以是text、console或json
  25. format = text
复制代码

修改配置文件后,需要重启Grafana服务使更改生效:
  1. sudo systemctl restart grafana-server
复制代码

数据源配置

Grafana本身不存储数据,它需要连接到各种数据源来获取和可视化数据。以下是一些常见数据源的配置方法。

添加Prometheus数据源

Prometheus是Grafana最常用的数据源之一。以下是添加Prometheus数据源的步骤:

1. 在Grafana Web界面中,点击左侧菜单中的”Configuration”(齿轮图标),然后选择”Data Sources”。
2. 点击”Add data source”按钮。
3. 从列表中选择”Prometheus”。
4. 在设置页面中,填写以下信息:Name: 为数据源命名,例如”Prometheus”URL: Prometheus服务器的URL,例如http://localhost:9090Access: 选择”Server”(默认选项)
5. Name: 为数据源命名,例如”Prometheus”
6. URL: Prometheus服务器的URL,例如http://localhost:9090
7. Access: 选择”Server”(默认选项)
8. 点击”Save & Test”按钮,如果连接成功,您会看到”Data source is working”的提示。

• Name: 为数据源命名,例如”Prometheus”
• URL: Prometheus服务器的URL,例如http://localhost:9090
• Access: 选择”Server”(默认选项)

添加InfluxDB数据源

InfluxDB是另一个流行的时序数据库,常用于存储监控数据。以下是添加InfluxDB数据源的步骤:

1. 在Grafana Web界面中,点击左侧菜单中的”Configuration”,然后选择”Data Sources”。
2. 点击”Add data source”按钮。
3. 从列表中选择”InfluxDB”。
4. 在设置页面中,填写以下信息:Name: 为数据源命名,例如”InfluxDB”URL: InfluxDB服务器的URL,例如http://localhost:8086Database: 数据库名称User: 用户名Password: 密码HTTP Method: 选择”POST”
5. Name: 为数据源命名,例如”InfluxDB”
6. URL: InfluxDB服务器的URL,例如http://localhost:8086
7. Database: 数据库名称
8. User: 用户名
9. Password: 密码
10. HTTP Method: 选择”POST”
11. 点击”Save & Test”按钮,如果连接成功,您会看到”Data source is working”的提示。

• Name: 为数据源命名,例如”InfluxDB”
• URL: InfluxDB服务器的URL,例如http://localhost:8086
• Database: 数据库名称
• User: 用户名
• Password: 密码
• HTTP Method: 选择”POST”

添加MySQL数据源

虽然MySQL不是专门为时序数据设计的数据库,但有时我们也需要从中查询数据。以下是添加MySQL数据源的步骤:

1. 在Grafana Web界面中,点击左侧菜单中的”Configuration”,然后选择”Data Sources”。
2. 点击”Add data source”按钮。
3. 从列表中选择”MySQL”。
4. 在设置页面中,填写以下信息:Name: 为数据源命名,例如”MySQL”Host: MySQL服务器的地址和端口,例如localhost:3306Database: 数据库名称User: 用户名Password: 密码
5. Name: 为数据源命名,例如”MySQL”
6. Host: MySQL服务器的地址和端口,例如localhost:3306
7. Database: 数据库名称
8. User: 用户名
9. Password: 密码
10. 点击”Save & Test”按钮,如果连接成功,您会看到”Data source is working”的提示。

• Name: 为数据源命名,例如”MySQL”
• Host: MySQL服务器的地址和端口,例如localhost:3306
• Database: 数据库名称
• User: 用户名
• Password: 密码

通过配置文件添加数据源

除了通过Web界面添加数据源外,您还可以通过配置文件自动添加数据源。这在自动化部署场景中非常有用。

创建一个数据源配置文件:
  1. sudo nano /etc/grafana/provisioning/datasources/prometheus.yml
复制代码

添加以下内容:
  1. apiVersion: 1
  2. datasources:
  3.   - name: Prometheus
  4.     type: prometheus
  5.     access: proxy
  6.     orgId: 1
  7.     url: http://localhost:9090
  8.     basicAuth: false
  9.     isDefault: true
  10.     version: 1
  11.     editable: true
复制代码

保存文件后,重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

仪表板创建

仪表板是Grafana的核心功能,它允许您以图表、表格和其他可视化形式展示数据。

创建新仪表板

1. 在Grafana Web界面中,点击左侧菜单中的”Dashboards”(四个方块的图标)。
2. 点击”New dashboard”按钮。
3. 您可以选择”Add a new panel”来添加面板,或者”Import dashboard”来导入现有的仪表板。

添加面板

面板是仪表板的基本组成部分,每个面板可以显示一个图表或其他可视化元素。

1. 在仪表板编辑模式下,点击”Add panel”。
2. 在右侧的编辑面板中,选择数据源。
3. 在查询编辑器中,输入查询语句。例如,对于Prometheus数据源,您可以输入:rate(node_cpu_seconds_total{mode="idle"}[5m])
4. 在”Visualization”选项卡中,选择图表类型,如”Time series”。
5. 根据需要调整其他设置,如图例、单位、轴等。
6. 点击右上角的”Apply”按钮保存面板。
  1. rate(node_cpu_seconds_total{mode="idle"}[5m])
复制代码

使用变量

变量允许您动态更改仪表板中的查询,而无需编辑面板。例如,您可以创建一个主机名变量,以便在不同主机之间切换。

1. 在仪表板编辑模式下,点击顶部的”Settings”(齿轮图标)。
2. 选择”Variables”选项卡。
3. 点击”Add variable”按钮。
4. 填写变量信息:Name: 变量名称,例如hostnameType: 变量类型,例如”Query”Label: 显示标签,例如”Host”Data source: 选择数据源Refresh: 选择何时刷新变量值Query: 查询语句,例如对于Prometheus数据源:label_values(node_uname, nodename)
5. Name: 变量名称,例如hostname
6. Type: 变量类型,例如”Query”
7. Label: 显示标签,例如”Host”
8. Data source: 选择数据源
9. Refresh: 选择何时刷新变量值
10. Query: 查询语句,例如对于Prometheus数据源:label_values(node_uname, nodename)
11. 点击”Add”按钮保存变量。

• Name: 变量名称,例如hostname
• Type: 变量类型,例如”Query”
• Label: 显示标签,例如”Host”
• Data source: 选择数据源
• Refresh: 选择何时刷新变量值
• Query: 查询语句,例如对于Prometheus数据源:label_values(node_uname, nodename)
  1. label_values(node_uname, nodename)
复制代码

创建变量后,您可以在面板查询中使用它,例如:
  1. rate(node_cpu_seconds_total{nodename="$hostname", mode="idle"}[5m])
复制代码

导入仪表板

Grafana官方和社区提供了许多预构建的仪表板,您可以直接导入使用。

1. 在Grafana Web界面中,点击左侧菜单中的”Dashboards”。
2. 点击”New dashboard”,然后选择”Import dashboard”。
3. 您可以通过以下方式导入仪表板:输入Grafana.com仪表板ID上传JSON文件粘贴JSON文本
4. 输入Grafana.com仪表板ID
5. 上传JSON文件
6. 粘贴JSON文本
7. 选择数据源映射。
8. 点击”Import”按钮。

• 输入Grafana.com仪表板ID
• 上传JSON文件
• 粘贴JSON文本

例如,要导入Node Exporter仪表板,可以输入ID”1860”,然后选择您的Prometheus数据源。

告警配置

Grafana提供了强大的告警功能,允许您在数据达到特定条件时发送通知。

创建告警规则

1. 在仪表板编辑模式下,选择要设置告警的面板。
2. 点击面板标题,然后选择”Edit”。
3. 切换到”Alert”选项卡。
4. 点击”Create alert rule”按钮。
5. 配置告警规则:Rule name: 告警规则名称Evaluate every: 评估频率,例如”1m”For: 持续时间,例如”5m”Conditions: 设置条件,例如”WHEN avg() OF query(A, 5m, now) IS ABOVE 80”
6. Rule name: 告警规则名称
7. Evaluate every: 评估频率,例如”1m”
8. For: 持续时间,例如”5m”
9. Conditions: 设置条件,例如”WHEN avg() OF query(A, 5m, now) IS ABOVE 80”
10. 点击”Save”按钮。

• Rule name: 告警规则名称
• Evaluate every: 评估频率,例如”1m”
• For: 持续时间,例如”5m”
• Conditions: 设置条件,例如”WHEN avg() OF query(A, 5m, now) IS ABOVE 80”

配置通知渠道

通知渠道定义了当告警触发时如何发送通知。

1. 在Grafana Web界面中,点击左侧菜单中的”Alerting”(铃铛图标)。
2. 选择”Notification channels”选项卡。
3. 点击”Add channel”按钮。
4. 填写通知渠道信息:Name: 渠道名称,例如”Email”Type: 渠道类型,例如”Email”根据所选类型填写其他必要信息,例如对于Email渠道:Addresses: 接收告警的邮箱地址Single email: 是否发送单个邮件
5. Name: 渠道名称,例如”Email”
6. Type: 渠道类型,例如”Email”
7. 根据所选类型填写其他必要信息,例如对于Email渠道:Addresses: 接收告警的邮箱地址Single email: 是否发送单个邮件
8. Addresses: 接收告警的邮箱地址
9. Single email: 是否发送单个邮件
10. 点击”Save”按钮。

• Name: 渠道名称,例如”Email”
• Type: 渠道类型,例如”Email”
• 根据所选类型填写其他必要信息,例如对于Email渠道:Addresses: 接收告警的邮箱地址Single email: 是否发送单个邮件
• Addresses: 接收告警的邮箱地址
• Single email: 是否发送单个邮件

• Addresses: 接收告警的邮箱地址
• Single email: 是否发送单个邮件

常用通知渠道配置

配置Email通知:
  1. [smtp]
  2. enabled = true
  3. host = smtp.example.com:587
  4. user = your-email@example.com
  5. password = your-password
  6. ; If the password contains # or ; you have to wrap it in triple quotes. Ex """#password;"""
  7. from_address = your-email@example.com
  8. from_name = Grafana
复制代码

配置Slack通知:

1. 在Slack中创建一个Incoming Webhook。
2. 在Grafana中,创建一个新的通知渠道。
3. 选择”Slack”作为类型。
4. 填写Webhook URL。
5. 选择或创建一个Slack通道。
6. 点击”Save”按钮。

配置Webhook通知:

1. 创建一个新的通知渠道。
2. 选择”Webhook”作为类型。
3. 填写Webhook URL。
4. 可选:设置HTTP方法、自定义头信息和消息体。
5. 点击”Save”按钮。

高级配置

用户管理

Grafana提供了内置的用户管理系统,允许您创建、编辑和删除用户。

1. 在Grafana Web界面中,点击左侧菜单中的”Configuration”(齿轮图标)。
2. 选择”Users”选项卡。
3. 点击”Add user”按钮。
4. 填写用户信息:Name: 用户名Email: 邮箱地址Login: 登录名Password: 密码
5. Name: 用户名
6. Email: 邮箱地址
7. Login: 登录名
8. Password: 密码
9. 选择用户角色:Viewer: 只能查看仪表板Editor: 可以查看和编辑仪表板Admin: 具有完全管理权限
10. Viewer: 只能查看仪表板
11. Editor: 可以查看和编辑仪表板
12. Admin: 具有完全管理权限
13. 点击”Save”按钮。

• Name: 用户名
• Email: 邮箱地址
• Login: 登录名
• Password: 密码

• Viewer: 只能查看仪表板
• Editor: 可以查看和编辑仪表板
• Admin: 具有完全管理权限

Grafana支持三种基本角色:

• Viewer: 只能查看仪表板,不能进行任何修改。
• Editor: 可以创建、编辑和查看仪表板,但不能管理用户或数据源。
• Admin: 具有完全管理权限,包括用户管理、数据源配置和系统设置。

您还可以创建团队,将用户分配到团队,并为团队分配权限。

插件管理

Grafana支持各种插件,包括面板插件、数据源插件和应用插件。

使用命令行安装插件:
  1. # 安装面板插件
  2. sudo grafana-cli plugins install grafana-clock-panel
  3. # 安装数据源插件
  4. sudo grafana-cli plugins install grafana-simple-json-datasource
  5. # 安装应用插件
  6. sudo grafana-cli plugins install grafana-piechart-panel
复制代码

安装完成后,重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

在Grafana Web界面中管理插件:

1. 点击左侧菜单中的”Configuration”(齿轮图标)。
2. 选择”Plugins”选项卡。
3. 在这里您可以查看已安装的插件,启用或禁用它们,以及安装新的插件。

LDAP集成

如果您使用LDAP进行用户认证,可以将Grafana与LDAP服务器集成。

编辑Grafana配置文件:
  1. sudo nano /etc/grafana/grafana.ini
复制代码

添加或修改以下LDAP配置:
  1. [auth.ldap]
  2. enabled = true
  3. config_file = /etc/grafana/ldap.toml
  4. allow_sign_up = true
  5. [auth.basic]
  6. enabled = false
复制代码

创建LDAP配置文件:
  1. sudo nano /etc/grafana/ldap.toml
复制代码

添加以下内容:
  1. [[servers]]
  2. host = "ldap.example.com"
  3. port = 389
  4. use_ssl = false
  5. start_tls = false
  6. ssl_skip_verify = false
  7. bind_dn = "cn=admin,dc=example,dc=com"
  8. bind_password = "password"
  9. search_filter = "(cn=%s)"
  10. search_base_dns = ["ou=users,dc=example,dc=com"]
  11. [servers.attributes]
  12. name = "givenName"
  13. surname = "sn"
  14. username = "cn"
  15. member_of = "memberOf"
  16. email =  "email"
  17. [[servers.group_mappings]]
  18. group_dn = "cn=admins,ou=groups,dc=example,dc=com"
  19. org_role = "Admin"
  20. [[servers.group_mappings]]
  21. group_dn = "cn=editors,ou=groups,dc=example,dc=com"
  22. org_role = "Editor"
  23. [[servers.group_mappings]]
  24. group_dn = "*"
  25. org_role = "Viewer"
复制代码

保存文件后,重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

OAuth集成

Grafana支持多种OAuth提供程序,包括GitHub、Google、Microsoft等。

1. 在GitHub上创建一个新的OAuth应用:Homepage URL:http://<your-grafana-url>Authorization callback URL:http://<your-grafana-url>/login/github
2. Homepage URL:http://<your-grafana-url>
3. Authorization callback URL:http://<your-grafana-url>/login/github
4. 获取Client ID和Client Secret。
5. 编辑Grafana配置文件:

• Homepage URL:http://<your-grafana-url>
• Authorization callback URL:http://<your-grafana-url>/login/github
  1. sudo nano /etc/grafana/grafana.ini
复制代码

添加或修改以下配置:
  1. [auth.github]
  2. enabled = true
  3. allow_sign_up = true
  4. client_id = "your-github-client-id"
  5. client_secret = "your-github-client-secret"
  6. scopes = user:email,read:org
  7. auth_url = https://github.com/login/oauth/authorize
  8. token_url = https://github.com/login/oauth/access_token
  9. api_url = https://api.github.com/user
  10. allowed_domains =
  11. team_ids =
  12. allowed_organizations =
复制代码

保存文件后,重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

性能优化

为了确保Grafana在高负载下仍能保持良好的性能,我们可以进行一些优化。

数据库优化

默认情况下,Grafana使用SQLite数据库。对于生产环境,建议使用MySQL或PostgreSQL。

1. 安装MySQL服务器:
  1. sudo dnf install -y mysql-server
  2. sudo systemctl start mysqld
  3. sudo systemctl enable mysqld
复制代码

1. 创建Grafana数据库和用户:
  1. CREATE DATABASE grafana CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. CREATE USER 'grafana'@'localhost' IDENTIFIED BY 'password';
  3. GRANT ALL PRIVILEGES ON grafana.* TO 'grafana'@'localhost';
  4. FLUSH PRIVILEGES;
复制代码

1. 编辑Grafana配置文件:
  1. sudo nano /etc/grafana/grafana.ini
复制代码

修改数据库配置:
  1. [database]
  2. type = mysql
  3. host = 127.0.0.1:3306
  4. name = grafana
  5. user = grafana
  6. password = password
复制代码

1. 重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

缓存配置

Grafana支持使用Redis或Memcached作为缓存后端,可以提高性能。

1. 安装Redis:
  1. sudo dnf install -y redis
  2. sudo systemctl start redis
  3. sudo systemctl enable redis
复制代码

1. 编辑Grafana配置文件:
  1. sudo nano /etc/grafana/grafana.ini
复制代码

添加或修改以下配置:
  1. [remote_cache]
  2. type = redis
  3. connstr = "addr=127.0.0.1:6379,pool_size=100,db=0"
复制代码

1. 重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

资源限制

调整Grafana的资源限制,以确保它不会消耗过多的系统资源。

编辑Grafana systemd服务文件:
  1. sudo systemctl edit grafana-server
复制代码

添加以下内容:
  1. [Service]
  2. LimitNOFILE=100000
  3. MemoryMax=2G
  4. CPUQuota=80%
复制代码

保存文件后,重新加载systemd配置并重启Grafana服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl restart grafana-server
复制代码

查询优化

优化Grafana中的查询可以显著提高仪表板的加载速度。

1. 减少时间范围:尽量使用必要的时间范围,避免查询过多的数据。
2. 使用适当的聚合:在可能的情况下,使用聚合函数减少数据点数量。
3. 避免高基数查询:高基数查询(如查询所有主机的数据)可能会导致性能问题。
4. 使用变量:使用变量可以减少查询的复杂性。
5. 缓存查询结果:对于不经常变化的数据,可以启用查询缓存。

安全加固

保护Grafana实例的安全是非常重要的,特别是当它暴露在公共网络中时。

SSL/TLS配置

使用SSL/TLS加密Grafana的Web界面和API连接。

1. 安装Certbot:
  1. sudo dnf install -y certbot python3-certbot-nginx
复制代码

1. 获取证书:
  1. sudo certbot certonly --standalone -d your-domain.com
复制代码

1. 编辑Grafana配置文件:
  1. sudo nano /etc/grafana/grafana.ini
复制代码

添加或修改以下配置:
  1. [server]
  2. # 启用HTTPS
  3. protocol = https
  4. # 证书文件路径
  5. cert_file = /etc/letsencrypt/live/your-domain.com/fullchain.pem
  6. # 私钥文件路径
  7. cert_key = /etc/letsencrypt/live/your-domain.com/privkey.pem
复制代码

1. 重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

访问控制

限制对Grafana的访问可以提高安全性。
  1. # 只允许特定IP访问Grafana
  2. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3000" accept'
  3. sudo firewall-cmd --permanent --remove-port=3000/tcp
  4. sudo firewall-cmd --reload
复制代码

使用Nginx作为反向代理可以提供额外的安全层和负载均衡功能。

1. 安装Nginx:
  1. sudo dnf install -y nginx
  2. sudo systemctl start nginx
  3. sudo systemctl enable nginx
复制代码

1. 创建Nginx配置文件:
  1. sudo nano /etc/nginx/conf.d/grafana.conf
复制代码

添加以下内容:
  1. server {
  2.     listen 80;
  3.     server_name your-domain.com;
  4.     location / {
  5.         proxy_pass http://localhost:3000;
  6.         proxy_set_header Host $host;
  7.         proxy_set_header X-Real-IP $remote_addr;
  8.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.         proxy_set_header X-Forwarded-Proto $scheme;
  10.     }
  11. }
复制代码

1. 重启Nginx服务:
  1. sudo systemctl restart nginx
复制代码

审计日志

启用审计日志可以跟踪Grafana中的所有操作。

编辑Grafana配置文件:
  1. sudo nano /etc/grafana/grafana.ini
复制代码

添加或修改以下配置:
  1. [log]
  2. # 启用审计日志
  3. enabled = true
  4. # 审计日志文件路径
  5. audit_logs_path = /var/log/grafana/audit.log
复制代码

创建日志目录并设置权限:
  1. sudo mkdir -p /var/log/grafana
  2. sudo chown grafana:grafana /var/log/grafana
复制代码

重启Grafana服务:
  1. sudo systemctl restart grafana-server
复制代码

常见问题与解决方案

Grafana无法启动

如果Grafana无法启动,首先检查日志文件:
  1. sudo journalctl -u grafana-server -n 100
复制代码

常见原因包括:

1. 端口冲突:确保端口3000没有被其他服务占用。
2. 权限问题:确保Grafana对数据目录和日志目录有适当的权限。
3. 配置错误:检查配置文件中是否有语法错误。

数据源连接失败

如果无法连接到数据源,请检查以下内容:

1. 网络连接:确保Grafana服务器可以访问数据源服务器。
2. 防火墙设置:确保防火墙允许Grafana与数据源之间的通信。
3. 认证信息:检查用户名和密码是否正确。
4. 数据源状态:确保数据源服务正在运行。

仪表板加载缓慢

如果仪表板加载缓慢,可以尝试以下优化:

1. 减少查询时间范围:缩短查询的时间范围。
2. 优化查询:简化查询语句,使用适当的聚合。
3. 增加缓存:配置Redis或Memcached缓存。
4. 升级硬件:增加CPU、内存或使用更快的存储。

告警不工作

如果告警不工作,请检查以下内容:

1. 告警规则:确保告警规则已正确配置并启用。
2. 通知渠道:检查通知渠道是否已正确配置。
3. Grafana版本:某些告警功能可能需要特定版本的Grafana。
4. 日志:检查Grafana日志中是否有与告警相关的错误信息。

总结

本文详细介绍了在CentOS Stream环境下部署和配置Grafana的全过程,从基本安装到高级配置。通过这些步骤,您可以构建一个强大、可靠的系统监控平台。

关键要点包括:

1. 使用Yum仓库安装Grafana是最简单和推荐的方法。
2. 配置适当的数据源是Grafana工作的基础,Prometheus是最常用的数据源之一。
3. 创建和自定义仪表板可以帮助您可视化数据并获取洞察。
4. 配置告警规则和通知渠道可以确保您及时了解系统问题。
5. 高级配置如LDAP集成、OAuth集成和插件管理可以扩展Grafana的功能。
6. 性能优化和安全加固对于生产环境至关重要。

通过遵循本指南,您应该能够在CentOS Stream上成功部署和配置Grafana,并构建一个满足您需求的强大系统监控平台。随着您对Grafana的深入了解,您可以进一步探索其高级功能,以充分利用这个强大的监控工具。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则