使用Prometheus和Grafana进行统一的JFrog平台监控

运行2022世界杯32强赛程表时间 在您的企业中使用Kubernetes可以意味着每天为开发人员和客户提供数百万个工件。但以最佳表现运作需要能够回答一些关键问题。比如最需要的工件是什么?最流行的回购是什么?谁是你最忠实的用户?为了安全起见,哪些用户在做坏事,哪些ip在做坏事?
为了帮助您了解这些问题的答案,JFrog提供的一组集成可以提供日志分析,用于监视JFrog平台的活动,并提供有助于改进开发策略的重要反馈。
在k8上做手术,你可能已经在用普罗米修斯它是自2018年从云原生计算基金会(CNCF)出现以来事实上的Kubernetes监控解决方案。与可视化工具一起使用Grafana,它们可以为应用程序和K8s集群本身的性能分析提供一个中央仪表板。
为了加强你对普罗米修斯的监控,我们提供了一个用于Prometheus和Grafana的JFrog日志分析解决方案。这种集成可以收集JFrog平台日志数据并检查操作指标,从而通过您已经使用的监控工具获得重要的见解。
如果您不选择Prometheus监视工具,我们还提供了使用它的解决方案Splunk,弹性,DataDog。
安装FluentD
我们的监控和日志记录计划的关键是FluentD,一个开源日志收集器。使用FluentD,我们能够为所有的JFrog服务提供一个通用的日志记录和监控层。FluentD可以快速安装在许多平台上。看到平台的安装指南。
对于JFrog服务器,我们使用RedHat安装说明来安装FluentDtd-agent:
$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh
另外,我们需要安装Prometheus FluentD插件它将我们的日志事件公开为普罗米修斯的HTTP度量接口。我们马上就会讲到。
配置FluentD
FluentD配置了一个文本配置文件,其中包含输入源、过滤器和输出链。Prometheus FluentD插件提供了为Prometheus配置度量的语法。在我们的示例中,我们将Artifactory和Xray日志事件转换为Prometheus的度量。我们已经设置了示例Artifactory和Xray FluentD配置在这里。
选择合适的fluent.conf。*文件和启动td-agent。
- rt - Artifactory版本7服务器
- fluent.conf。rt6 -人工版本6服务器
- Xray - x射线服务器
$ td-agent -c fluentd.config.rt
td-agent然后在端口24321上公开HTTP度量接口/指标。您可以访问该URL并看到如下内容。

然后普罗米修斯将定期“抓取”这个接口,并将这些指标添加到基于时间的数据存储中。
普罗米修斯
对于我们的环境,我们使用Prometheus Kubernetes操作符。如果您还没有安装Prometheus,关于如何使用操作符安装Prometheus的说明如下在这里。使用Prometheus Kubernetes Operator,我们可以配置servicemonitor,它允许Prometheus自动检测我们服务的新指标接口。否则,可以使用YAML配置文件普罗米修斯的文档。下面的ServiceMonitor资源配置可以使用Kubernetes检测任何新的度量接口选择器。
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: ServiceMonitor -artifactory-ha-primary labels: metrics: jfrog spec: selector: matchLabels: app: artifactory-ha-primary endpoint: - port: metrics间隔:15秒
这个选择器将用标签匹配我们的度量接口服务应用:artifactory-ha类似于下面的指标接口服务。这个服务暴露了我们用上面的FluentD Prometheus插件设置的HTTP度量接口。
apiVersion: v1 kind:服务元数据:labels: app: artifactory-ha-member name: artifactory-member-ha-metrics spec: ports: - name: metrics port: 24231 protocol: TCP选择器:角色:unified-artifactory-ha-member
我们可以在Prometheus Target列表中进一步验证度量接口服务的自动检测。

这使得Prometheus配置快速而简单,特别是对于可能有数百台服务器的大型系统。
Grafana
Prometheus现在收集我们的指标,我们现在可以用Grafana (Prometheus的可视化层)将它们可视化。使用Prometheus的PromQL查询语言,我们可以为仪表板设置查询。例如,下面的PromQL提供了通过repos进行的顶级数据传输。
Topk (10, sum by (repo) (increase(jfrog_rt_data_download{repo!=""}[$__range])) > 0)
并能给我们下面的bar gauge widget。

我们的FluentD配置提供了几个人工和x射线监测指标您可以查询和创建自己的仪表板小部件。一个很好的起点是使用我们的仪表板示例。这个示例仪表板提供了以下图形小部件。
- 上传数据传输
- 下载数据传输
- Top下载ip
- Top上传ip
- 按请求排列的顶级工件
- 按请求排列的顶级回购
- 按数据排列的顶级回购
- 审计用户
- 人工用户访问
- 5XX状态码
- Artifactory错误
- x射线5XX状态码
- x光错误
- 拒绝登录尝试
- IP拒绝行为
- 用户拒绝的操作
将此仪表板导入Grafana以查看使用中的所有指标。
看和学
欲了解更多详细信息,请查看JFrog日志分析普罗米修斯和Grafana GitHub。
如果你是一个数据驱动的组织,并且使用JFrog平台,你可能会错过一个令人难以置信的数据来源,了解你的客户和开发人员如何使用你的二进制文件。码头工人的图片,执掌图表,去模块Maven等。今天就开始监控吧。你可能会对你学到的东西感到惊讶!
