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'
}
]
有关可用选项的更多文档,请参阅远程写入和远程读取部分的官方文档。
规则文件
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 实现了一个新的接收器。
-
编辑
/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 } ]
-
重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
Alertmanager 现在将 severity = high
警报路由到 victorops-receiver
。
在 VictorOps 文档中阅读有关 Alertmanager 的 VictorOps 选项的更多信息。