Prometheus 设置

远程读/写

Prometheus 支持读取和写入远程服务。

要配置远程读取或写入服务,您可以在 gitlab.rb 中包含以下内容。

prometheus['remote_write'] = [
  {
    url: 'https://some-remote-write-service.example.com',
    basic_auth: {
      password: 'remote write secret password'
    }
  }
]
prometheus['remote_read'] = [
  {
    url: 'https://some-remote-write-service.example.com'
  }
]

有关可用选项的更多文档,请参阅远程写入远程读取部分的官方文档。

规则文件

Prometheus 允许记录警报规则。

Omnibus 包括一些存储在 /var/opt/gitlab/prometheus/rules/ 中的默认规则文件

要覆盖默认规则,您可以更改gitlab.rb. 中的默认列表。

无规则:

prometheus['rules_files'] = []

自定义列表:

prometheus['rules_files'] = ['/path/to/rules/*.rules', '/path/to/single/file.rules']

外部标记

设置外部标记

prometheus['external_labels'] = {
    'region' => 'us-west-2',
    'source' => 'omnibus',
}

默认情况下没有设置外部标记。

node_exporter

node_exporter 提供系统级指标。

默认情况下启用其他指标收集器。例如,mountstats 用于收集有关 NFS 挂载的指标。

要禁用 mountstats 收集器,请使用以下设置调整 gitlab.rb 并运行 gitlab-ctl reconfigure

node_exporter['flags'] = {
  'collector.mountstats' => false,
}

有关可用收集器的更多信息,请参阅 上游文档

Grafana 面板

Grafana 是一款功能强大的仪表板软件,用于呈现 Prometheus 指标数据。 Omnibus GitLab 11.9 及更高版本包括一个嵌入式副本。

有关更多信息,请参阅 嵌入式 Grafana 文档

Alertmanager 选项

您可以为 Alertmanager 设置全局选项

例如,下面的 gitlab.rb 配置,覆盖了 Alertmanager 用来向 SMTP 服务器标识自己的主机名:

alertmanager['global'] = {
  'smtp_hello' => 'example.org'
}

更多的接收器和路由

在这个例子中,我们为 VictorOps 实现了一个新的接收器。

  1. 编辑 /etc/gitlab/gitlab.rb 添加一个新的接收器,并定义一个路由

    alertmanager['receivers'] = [
      {
        'name' => 'victorOps-receiver',
        'victorops_configs' => [
          {
            'routing_key'         => 'Sample_route',
            'api_key'             => '558e7ebc-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
            'entity_display_name' => '{{ .CommonAnnotations.summary }}',
            'message_type'        => '{{ .CommonLabels.severity }}',
            'state_message'       => 'Alert: {{ .CommonLabels.alertname }}. Summary:{{ .CommonAnnotations.summary }}. RawData: {{ .CommonLabels }}',
            'http_config'         => {
              proxy_url: 'http://internet.proxy.com:3128'
            }
          } #, { Next receiver }
        ]
      }
    ]
    
    alertmanager['routes'] = [
      {
        'receiver'        => 'victorOps-receiver',
        'group_wait'      => '30s',
        'group_interval'  => '5m',
        'repeat_interval' => '3h',
        'matchers'        => [ 'severity = high' ]
      } #, { Next route }
    ]
    
  2. 重新配置极狐GitLab:

    sudo gitlab-ctl reconfigure
    

Alertmanager 现在将 severity = high 警报路由到 victorops-receiver

VictorOps 文档中阅读有关 Alertmanager 的 VictorOps 选项的更多信息。