Grafana 面板服务
Grafana 是一个强大的仪表板构建系统,您可以使用它,可视化来自嵌入式 Prometheus 监控系统的性能指标。
启用 Grafana
从 15.3 版本开始,Grafana 默认不启用。要启用它:
-
编辑
/etc/gitlab/gitlab.rb
并添加/编辑以下行:## Set to true/false to enable/disable respectively grafana['enable'] = true
- 保存文件并重新配置极狐GitLab 使更改生效。
- 启用后,Grafana 将在
https://gitlab.example.com/-/grafana
上可用,并自动配置 SSO。
启用用户名和密码登录
admin
。使用用户名/密码组合登录 Grafana 被禁用,默认情况下只有 GitLab SSO 可用。但是,要访问管理员账号,您需要使用用户名/密码启用登录。 为此,将以下行添加到 /etc/gitlab/gitlab.rb
文件,并运行重新配置:
grafana['disable_login_form'] = false
指定管理员密码
要指定管理员密码,请将以下行添加到 /etc/gitlab/gitlab.rb
文件,并运行重新配置:
grafana['admin_password'] = 'foobar'
如果没有提供管理员密码,Omnibus GitLab 会自动为 admin
用户生成一个随机密码作为安全措施。但是,在这种情况下,您必须手动重置密码才能访问 admin
用户。
启用 Grafana 警报
Grafana 可以根据您在仪表板中配置的规则,提供创建警报的能力。默认情况下,捆绑的 Grafana 实例中禁用警报。
要启用 Grafana 警报:
-
编辑
/etc/gitlab/gitlab.rb
并添加以下行:grafana['alerting_enabled'] = true
-
保存文件并重新配置极狐GitLab
sudo gitlab-ctl reconfigure
禁用 Grafana
-
编辑
/etc/gitlab/gitlab.rb
并添加/编辑以下几行:## Set to true/false to enable/disable respectively grafana['enable'] = false
-
保存文件并重新配置极狐GitLab,使更改生效。
身份验证
如果您想授予用户访问 Grafana 的权限,您有两种选择。
使用 Grafana 的身份验证系统
允许用户在 Grafana 中创建自己的账号:
-
编辑
/etc/gitlab/gitlab.rb
并添加以下配置:grafana['allow_user_sign_up'] = true
-
保存文件并重新配置极狐GitLab,使更改生效。
使用 GitLab 作为 OAuth 提供者
要将 GitLab 用作 OAuth 提供程序,以便 GitLab 实例的用户可以访问 Grafana:
-
首先,创建应用程序 ID 和密钥。
-
根据您的
external_url
设置回调 URL。 例如https://gitlab.example.com/-/grafana/login/gitlab
。 -
然后,编辑
/etc/gitlab/gitlab.rb
并添加以下几行:grafana['gitlab_application_id'] = 'GITLAB_APPLICATION_ID' grafana['gitlab_secret'] = 'GITLAB_SECRET'
其中
GITLAB_APPLICATION_ID
和GITLAB_SECRET
是您在上一步中创建的应用程序 ID 及其 secret。 -
或者,您可以选择允许登录的 GitLab 组列表:
grafana['allowed_groups'] = [my_group, group_one/group_two]
-
保存文件并重新配置极狐GitLab,使更改生效。
重新设置管理员密码
首次启动后,管理员密码存储在 Grafana 数据存储中,您无法通过 gitlab.rb
更改它。
要更新它,您可以使用以下命令:
gitlab-ctl set-grafana-password
有关详细信息,请参阅 Grafana CLI 文档。
面板
用于监控 Omnibus GitLab 的仪表板将被预加载并在初始登录时可用。
Grafana 指标
Grafana 可以提供 Prometheus 抓取的指标。
默认情况下,指标 API 在捆绑的 Grafana 实例中处于禁用状态。
启用 Grafana 的指标 API
使用基本身份验证启用 Grafana 的指标 API:
-
编辑
/etc/gitlab/gitlab.rb
并添加/编辑以下几行:grafana['metrics_enabled'] = true grafana['metrics_basic_auth_username'] = 'grafana_metrics' grafana['metrics_basic_auth_password'] = 'please_set_a_unique_password'
-
保存文件并重新配置极狐GitLab 以使更改生效。
-
这些指标将在带有基本身份验证的
https://gitlab.example.com/-/grafana/metrics
上提供。基本身份验证的用户名和密码是在/etc/gitlab/gitlab.rb
中设置的metrics_basic_auth_username
和metrics_basic_auth_password
。
Grafana SMTP
启用 SMTP 以允许 Grafana 发送电子邮件:
grafana['smtp']['enabled'] = true
要完全自定义 Grafana 的 SMTP 配置,请使用以下代码片段作为起点:
grafana['smtp'] = {
'enabled' => true,
'host' => 'localhost:25',
'user' => nil,
'password' => nil,
'cert_file' => nil,
'key_file' => nil,
'skip_verify' => false,
'from_address' => 'admin@grafana.localhost',
'from_name' => 'Grafana',
'ehlo_identity' => 'dashboard.example.com',
'startTLS_policy' => nil
}
有关 Grafana 的 SMTP 配置的更多信息,请参阅 Grafana 的文档。
故障排查
X.509: certificate signed by unknown authority
使用自签名 SSL 证书时,您可能会在 UI 中收到以下错误:
login.OAuthLogin(NewTransportWithCode)
Check the Grafana server logs for the detailed error message.
/var/log/gitlab/grafana/current
的 Grafana 日志中报告的错误可能是:
lvl=eror msg=login.OAuthLogin(NewTransportWithCode) logger=context userId=0 orgId=0 uname= error="Post \"https://gitlab.example.com/oauth/token\": x509: certificate signed by unknown authority"
在这种情况下,您必须将自签名 GitLab 证书安装为可信。
包含的重定向 URI 无效
不正确的回调 URL 通常会导致此错误。 如果回调 URL 不正确,您在尝试登录 Grafana 时可能会收到此错误。 要解决这个问题:
- 在顶部栏上,选择 主菜单 > 管理员。
- 在左侧边栏中,选择 应用。
- 选择 GitLab Grafana 应用对应的 编辑。
- 将 回调 URL 的值更改为类似于
https://gitlab.example.com/-/grafana/login/gitlab
,其中https://gitlab.example.com
对应于您的external_url
。
由于未知客户端、未包含客户端身份验证或不支持的身份验证方法,客户端身份验证失败
如果 GitLab Grafana OAuth 应用程序不存在或 /etc/gitlab/gitlab-secrets.json
中的设置不再相互一致,则可能会发生这些错误。
/etc/gitlab/gitlab-secrets.json
文件损坏,以下步骤可能会导致数据丢失。
确保在应用任何更改之前创建备份。要解决这个问题:
- 在顶部栏上,选择 主菜单 > 管理员。
- 在左侧边栏中,选择 应用。
- 通过选择 删除,删除应用 GitLab Grafana(如果存在)。
- 在您的 GitLab 服务器上创建
/etc/gitlab/gitlab-secrets.json
的备份。 -
编辑
/etc/gitlab/gitlab-secrets.json
并删除以grafana
开头的部分。您可以通过以下方式找到相关部分:$ grep grafana -A6 /etc/gitlab/gitlab-secrets.json "grafana": { "secret_key": "...", "gitlab_secret": "...", "gitlab_application_id": "...", "admin_password": "...", "metrics_basic_auth_password": null },
-
重新配置极狐GitLab,重新创建 GitLab Grafana 应用并重新生成
/etc/gitlab/gitlab-secrets.json
中的值:sudo gitlab-ctl reconfigure