Grafana 面板服务

Grafana 是一个强大的仪表板构建系统,您可以使用它,可视化来自嵌入式 Prometheus 监控系统的性能指标。

从 12.0 版本开始,默认启用 Grafana,并自动配置 GitLab 的 SSO。 Grafana 将在 https://gitlab.example.com/-/grafana 上提供。

启用用户名和密码登录

note管理员账号的用户名是 admin

使用用户名/密码组合登录 Grafana 被禁用,默认情况下只有 GitLab SSO 可用。但是,要访问管理员账号,您需要使用用户名/密码启用登录。 为此,将以下行添加到 /etc/gitlab/gitlab.rb 文件,并运行重新配置

grafana['disable_login_form'] = false

指定管理员密码

note安装后第一次重新配置之前,必须指定管理员密码。在此之后,admin_password 设置没有任何效果,您必须手动重置密码。此外,要访问管理员账号,您必须启用用户名和密码登录

要指定管理员密码,请将以下行添加到 /etc/gitlab/gitlab.rb 文件,并运行重新配置

grafana['admin_password'] = 'foobar'

如果没有提供管理员密码,Omnibus GitLab 会自动为管理员用户生成一个随机密码作为安全措施。但是,在这种情况下,您必须手动重置密码才能访问管理员用户。

禁用 Grafana

  1. 编辑 /etc/gitlab/gitlab.rb 并添加/编辑以下几行:

    ## Set to true/false to enable/disable respectively
    grafana['enable'] = false
    
  2. 保存文件并重新配置极狐GitLab,使更改生效。

身份验证

如果您想授予用户访问 Grafana 的权限,您有两种选择。

使用 Grafana 的身份验证系统

允许用户在 Grafana 中创建自己的账号:

  1. 编辑 /etc/gitlab/gitlab.rb 并添加以下配置:

    grafana['allow_user_sign_up'] = true
    
  2. 保存文件并重新配置极狐GitLab,使更改生效。

使用 GitLab 作为 OAuth 提供者

note如果您使用的是 12.0 或更高版本,则会自动配置。您可以跳过本节。

要将 GitLab 用作 OAuth 提供程序,以便 GitLab 实例的用户可以访问 Grafana:

  1. 首先,创建应用程序 ID 和密钥。

  2. 根据您的 external_url 设置回调 URL。 例如 https://gitlab.example.com/-/grafana/login/gitlab

  3. 然后,编辑 /etc/gitlab/gitlab.rb 并添加以下几行:

    grafana['gitlab_application_id'] = 'GITLAB_APPLICATION_ID'
    grafana['gitlab_secret'] = 'GITLAB_SECRET'
    

    其中 GITLAB_APPLICATION_IDGITLAB_SECRET 是您在上一步中创建的应用程序 ID 及其 secret。

  4. 或者,您可以选择允许登录的 GitLab 组列表:

    grafana['allowed_groups'] = [my_group, group_one/group_two]
    
  5. 保存文件并重新配置极狐GitLab,使更改生效。

note默认情况下,GitLab 用户创建时具有只读查看者权限。管理员账号必须用于授予额外的访问权限。

重新设置管理员密码

首次启动后,管理员密码存储在 Grafana 数据存储中,您无法通过 gitlab.rb 更改它。

要更新它,您可以使用以下命令:

gitlab-ctl set-grafana-password

有关详细信息,请参阅 Grafana CLI 文档

面板

用于监控 Omnibus GitLab 的仪表板将被预加载并在初始登录时可用。

Grafana 指标

Grafana 可以提供 Prometheus 抓取的指标

默认情况下,指标 API 在捆绑的 Grafana 实例中处于禁用状态。

启用 Grafana 的指标 API

使用基本身份验证启用 Grafana 的指标 API:

  1. 编辑 /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'
    
  2. 保存文件并重新配置极狐GitLab 以使更改生效。

  3. 这些指标将在带有基本身份验证的 https://gitlab.example.com/-/grafana/metrics 上提供。基本身份验证的用户名和密码是在 /etc/gitlab/gitlab.rb 中设置的 metrics_basic_auth_usernamemetrics_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 证书安装为可信