用统一的JFrog数据和弹性伸展您的触角

DevOps团队依赖Artifactory作为基本的工具通用二进制回购管理器但观察它的运作可能具有挑战性。具有多个高可用性节点和统一的Xray作为JFrog DevOps平台在JFrog平台部署中,操作数据分布在每个服务的日志中。

运营团队需要了解有价值的数据洞察,而这只能通过实时数据挖掘和观察平台来获得。在我们之前的博客中,你可能已经看到了对可观察性的初步体验使用Splunk分析平台统一JFrog日志

为了使这种可观察性更广泛地可用,JFrog已经将这种功能扩展到弹性堆栈,Elasticsearch和Kibana的集成

Elasticsearch是一个分布式和可扩展的搜索引擎,可用于搜索全文,结构化文本和分析。它通常用于搜索大量数据,也用于搜索不同类型的文档。

Kibana是Elasticsearch最常用的可视化和仪表板。Kibana允许您通过构建可视化和仪表板的web UI来探索Elasticsearch日志数据。

我们将向您展示如何利用最优秀的开源日志分析技术:Elastic、Fluentd和Kibana,为运营团队提供100%免费的开源日志分析平台,以获得有价值的见解。

使用Fluentd

首先,我们提供了一个JFrog日志分析集成使用开源数据收集器Fluentd,可以安装在JFrog平台部署的每个产品实例中。Fluentd为JFrog平台中的每个产品执行日志输入、字段提取和记录转换,将这些数据的输出规范化为JSON。

使用这种通用格式的所有日志数据,Fluentd将通过Fluentd的可插拔架构将其交付给您的Elasticsearch分析工具。

安装FluentD

每个JPD节点都需要安装Fluentd日志代理。这个代理将负责跟踪各种JPD日志文件,以便将新的日志行解析为字段,应用任何相应的记录转换,然后发送到Fluentd的相关输出插件。

如果要在每个节点上安装Fluentd代理,请根据节点的操作系统类型执行步骤流畅的安装指南

例如,对于操作Red Hat UBI Linux的节点,Fluentd代理td-agent必须安装。对于基于根的包管理器(需要访问根):

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

或者,对于Red Hat UBI上的用户空间安装,到安装Fluentd Ruby和Gem:

$ curl -O | tar -xvf

配置FluentD

这取决于我们是否刚刚完成了基于根或非基于根的安装Uentd配置文件可能需要放置在不同的位置。

默认情况下,对于包管理器根安装td-agent.conf文件位于/etc/td-agent/

$ ls -al /etc/td-agent/td-agent.conf -rw-r——r——1 root root 8017 5月11日18:09 /etc/td-agent/td-agent.conf

对于非基于根目录的安装,我们可以存储td-agent.conf在任何我们有写权限的地方文件。运行td-agent时,可以使用- c标志,将fluentd指向此文件位置。

类派生的配置文件必须替换为配置文件JFrog日志分析Github回购

在此repo中,弹性文件夹包含配置文件模板。使用与节点中运行的JFrog应用程序匹配的模板:

我们将需要更新这个配置文件匹配的指令指定指向Elasticsearch实例的主机和端口:

#END弹性输出@type elasticsearch @id elasticsearch主机elasticsearch端口9200 index_name unified-artifactory include_tag_key true type_name fluentd logstash_format false #END弹性输出

这里的主机是我们的内部K8s集群主机elasticsearch因为在规范中kibana_svc.yaml我们部署的代码片段。如果Elasticsearch和Kibana以不同的方式配置,它也可以设置为外部IP地址。

运行Fluentd

现在我们有了新的配置文件,我们可以在登录到容器后在pod上启动td-agent作为服务:

$ systemctl start td-agent

对于非root安装,我们可以直接对配置文件运行td-agent:

$ td-agent -c td-agent.conf

这将启动Fluentd日志代理,它将跟踪JPD日志并将它们全部发送到Elasticsearch。

您必须为所有运行Artifactory和Xray的Kubernetes pod重复这些步骤。

使用Elasticsearch和Kibana

如果你还没有安装和配置Elasticsearch而且设置Kibana现在就这么做吧。我们还提供了一些有用的指导和YAML文件将Elasticsearch和Kibana部署到Kubernetes

在安装了Fluentd并在每个Artifactory和Xray pod中运行td-agent的Kibana中,可以看到索引在Kibana索引管理页面

Elasticsearch/Kibana的JFrog集成提供了一个NDJSON文件定义索引模式和可视化。该文件可以通过Kibana Saved Objects页面.点击导入按钮导入这个文件。

您应该能够看到导入的索引模式、可视化、仪表板、小部件和保存的搜索。

在索引模式中,您可以看到我们有两个脚本字段unified-artifactory模式。

这是因为我们正在进行转换request_content_length而且response_content_lengthGB。中生成的日志发现部分。

最后,让我们查看指示板它现在包含的信息显示在我们的数据小部件,让您实时观察到JFrog统一平台。

一旦安装,JFrog日志仪表板显示时间轴和计数数据的关键操作指标:

  • 日志卷,可按类型过滤
  • 服务错误
  • HTTP响应代码
  • 访问图像
  • 访问存储库
  • 上传/下载数据传输以GB为单位
  • 最适合上传/下载的10个ip
  • 按用户名审计操作
  • 拒绝操作和登录的IP和用户名
  • 接受按用户名部署

当伟大的事情汇聚在一起

现在,您有了一个强大的工具平台,可以跨所有服务和执行节点监控JFrog平台部署,获得有关其运行的有价值的数据洞察。

想要了解更多关于这个和其他使用JFrog平台的最佳方法吗?注册参加SwampUp 2020虚拟会议,在那里您可以参加关于Artifactory, x射线,分销和管道的在线培训和深入课程。