• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

使用Prometheus监控GitLab

linux 小爱 2个月前 (08-30) 2214次浏览 已收录 0个评论 扫描二维码

Prometheus是一项功能强大的时间序列监视服务,为监视GitLab和其他软件产品提供了灵活的平台。GitLab提供Prometheus的开箱即用监视功能,可轻松访问GitLab服务的高质量时间序列监视。

总览

Prometheus的工作方式是定期连接到数据源,并通过各种导出器收集其性能指标。要查看和使用监视数据,您可以 直接连接到Prometheus或使用仪表板工具(例如Grafana)

配置Prometheus

注意: 对于源安装,您必须自己安装和配置。

从GitLab 9.0开始,Prometheus及其出口商默认情况下处于打开状态。Prometheus将以gitlab-prometheus用户身份运行并继续收听 http://localhost:9090。默认情况下,只能从GitLab服务器本身访问Prometheus。除非单独禁用,否则每个出口商将自动设置为Prometheus的监视目标。

要禁用Prometheus及其所有出口商以及将来添加的任何出口商,请执行以下操作:

  1. 编辑 /etc/gitlab/gitlab.rb
  2. 添加或查找并取消注释以下行,并确保将其设置为false
     prometheus_monitoring['enable'] = false
    
  3. 保存文件并重新配置GitLab,以使更改生效。

更改端口和地址Prometheus监听

注意:GitLab Omnibus 8.17中 添加了以下更改。尽管可能,但不建议更改Prometheus侦听的端口,因为这可能会影响GitLab服务器上运行的其他服务或与之冲突。继续需要您自担风险。

为了从GitLab服务器外部访问Prometheus,您将需要在中设置FQDN或IP prometheus['listen_address']。更改Prometheus监听的地址/端口:

  1. 编辑 /etc/gitlab/gitlab.rb
  2. 添加或查找并取消注释以下行:
     prometheus['listen_address'] = 'localhost:9090'
    

    替换localhost:9090为您要Prometheus监听的地址/端口。如果您想允许除之外的其他主机访问Prometheus localhost,请忽略该主机,或者使用0.0.0.0允许公共访问:

     prometheus['listen_address'] = ':9090'
     # or
     prometheus['listen_address'] = '0.0.0.0:9090'
    
  3. 保存文件并重新配置GitLab,以使更改生效

使用外部Prometheus服务器

注意: Prometheus和大多数导出器不支持身份验证。我们不建议将它们暴露在本地网络之外。

需要进行一些配置更改,才能由外部Prometheus服务器监视GitLab。对于具有多个节点的GitLab的高可用性部署,建议使用外部服务器。

要使用外部Prometheus服务器:

  1. 编辑/etc/gitlab/gitlab.rb
  2. 禁用捆绑的Prometheus:
     prometheus['enable'] = false
    
  3. 将每个捆绑服务的导出器设置为侦听网络地址,例如:
      gitlab_monitor['listen_address'] = '0.0.0.0'
      sidekiq['listen_address'] = '0.0.0.0'
      gitlab_monitor['listen_port'] = '9168'
      node_exporter['listen_address'] = '0.0.0.0:9100'
      redis_exporter['listen_address'] = '0.0.0.0:9121'
      postgres_exporter['listen_address'] = '0.0.0.0:9187'
      gitaly['prometheus_listen_addr'] = "0.0.0.0:9236"
      gitlab_workhorse['prometheus_listen_addr'] = "0.0.0.0:9229"
    
  4. 如有必要,请使用官方安装说明安装并设置专用的Prometheus实例。
  5. 将Prometheus服务器IP地址添加到监视IP白名单。例如:
     gitlab_rails['monitoring_whitelist'] = ['127.0.0.0/8', '192.168.0.1']
    
  6. 要抓取nginx指标,您还需要配置nginx以允许Prometheus服务器IP。例如:
     nginx['status']['options'] = {
           "server_tokens" => "off",
           "access_log" => "off",
           "allow" => "192.168.0.1",
           "deny" => "all",
     }
    
  7. 重新配置GitLab以应用更改
  8. 编辑Prometheus服务器的配置文件。
  9. 将每个节点的导出器添加到Prometheus服务器的 抓取目标配置中。例如,使用的示例代码段static_configs
     scrape_configs:
     - job_name: 'gitlab_exporters'
       static_configs:
       - targets: ['1.1.1.1:9168', '1.1.1.1:9236', '1.1.1.1:9236', '1.1.1.1:9100', '1.1.1.1:9121', '1.1.1.1:9187']
    
     - job_name: 'gitlab_metrics'
       metrics_path: /-/metrics
       static_configs:
       - targets: ['1.1.1.1:443']
    
  10. 重新启动Prometheus服务器。

查看性能指标

您可以访问http://localhost:9090Prometheus默认提供的仪表板。

注意: 如果在您的GitLab实例上启用了SSL,则由于使用HSTS,如果使用相同的FQDN,则可能无法在与GitLab相同的浏览器上访问Prometheus 。我们计划 通过GitLab提供访问,但是在此期间,有一些解决方法:使用单独的FQDN,使用服务器IP,使用单独的Prometheus浏览器,重置HSTS或使用NGINX代理

可以在Prometheus控制台中或通过兼容的仪表板工具直接查看Prometheus收集的性能数据。Prometheus界面提供了一种灵活的查询语言来处理收集的数据,您可以在其中可视化其输出。对于功能更全的仪表板,可以使用Grafana并已 对Prometheus进行了官方支持

普罗米修斯样本查询:

  • 可用内存百分比: ((node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) or ((node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes) / node_memory_MemTotal_bytes)) * 100
  • CPU使用率百分比: 1 - avg without (mode,cpu) (rate(node_cpu_seconds_total{mode="idle"}[5m]))
  • 传输的数据: rate(node_network_transmit_bytes_total{device!="lo"}[5m])
  • 收到的数据: rate(node_network_receive_bytes_total{device!="lo"}[5m])

普罗米修斯作为Grafana数据源

Grafana允许您将Prometheus性能指标作为数据源导入,并以图形和仪表板的形式呈现这些指标,这有助于可视化。

要为单个服务器GitLab设置添加Prometheus仪表板,请执行以下操作:

  1. 在Grafana中创建一个新的数据源。
  2. 命名您的数据源,即GitLab。
  3. Prometheus在类型下拉列表中选择。
  4. 将您的Prometheus侦听地址添加为URL,然后将访问权限设置为Browser
  5. 将HTTP方法设置为GET
  6. 保存并测试您的配置以验证其是否有效。

GitLab指标

在GitLab 9.3中引入。

GitLab监视其自身的内部服务指标,并使它们在/-/metrics端点上可用。与其他导出器不同,此终结点需要身份验证,因为它可以在与用户流量相同的URL和端口上使用。

➔了解有关GitLab指标的更多信息。

捆绑软件指标

Omnibus GitLab中捆绑的许多GitLab依赖项都已预先配置为导出Prometheus指标。

节点导出器

节点导出器允许您测量各种机器资源,例如内存,磁盘和CPU利用率。

➔了解有关节点导出器的更多信息。

Redis出口商

Redis导出器允许您测量各种Redis指标。

➔了解有关Redis导出器的更多信息。

Postgres出口商

Postgres导出器允许您测量各种PostgreSQL指标。

➔了解有关Postgres出口商的更多信息。

PgBouncer出口商

PgBouncer导出器允许您测量各种PgBouncer指标。

➔了解有关PgBouncer出口商的更多信息。

GitLab监视器导出器

GitLab监视器导出器允许您测量从Redis和数据库中提取的各种GitLab指标。

➔了解有关GitLab监视器导出器的更多信息。

配置Prometheus监视Kubernetes

在GitLab 9.0中引入。在GitLab 9.4中引入了Pod监控。

如果您的GitLab服务器在Kubernetes中运行,则Prometheus将从群集中的节点和带注释的 Pod收集指标,包括每个容器上的性能数据。如果您的CI / CD环境在同一群集中运行,这将特别有用,因为您可以使用Prometheus项目集成来监视它们。

要禁用对Kubernetes的监视:

  1. 编辑/etc/gitlab/gitlab.rb
  2. 添加或查找并取消注释以下行并将其设置为false
     prometheus['monitor_kubernetes'] = false
    
  3. 保存文件并重新配置GitLab,以使更改生效。

小爱博客 , 版权所有
转载请注明原文链接:使用Prometheus监控GitLab
喜欢 (0)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址