使用统一的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日志分析集成使用可以安装在JFrog平台部署的每个产品实例中的开源数据收集器Fluentd。Fluentd为JFrog平台中的每个产品执行日志输入、字段提取和记录转换,将这些数据的输出规范化为JSON。
有了这种通用格式的所有日志数据,Fluentd将通过Fluentd的可插拔架构将其交付给您的Elasticsearch分析工具。
安装FluentD
每个JPD节点都需要安装Fluentd日志代理。这个代理将负责跟踪各种JPD日志文件,以便将新的日志行解析为字段,应用任何相应的记录转换,然后发送到Fluentd的相关输出插件。
要在每个节点上安装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标记指向此文件位置。
类派生的配置文件必须替换该配置文件JFrog日志分析Github回购.
在此repo中,弹性文件夹包含配置文件模板。使用与节点中运行的JFrog应用程序相匹配的模板:
我们将需要用匹配的指令指定指向Elasticsearch实例的主机和端口:
# 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
对于非根安装,我们可以直接对配置文件运行td-agent:
$ 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页面.单击Import按钮导入此文件。

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

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

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

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

一旦安装,JFrog日志仪表板显示时间轴和计数数据的关键操作指标:
- 日志卷,可以根据类型进行过滤
- 服务错误
- HTTP响应代码
- 访问图像
- 访问存储库
- 上传/下载的数据传输以GB为单位
- 上传/下载的前10个ip
- 按用户名审计操作
- 通过IP和用户名拒绝操作和登录
- accept按用户名部署
当伟大的事情汇聚在一起
现在,您有了一个健壮的工具平台,可以跨所有服务和执行节点监视JFrog平台部署,获得有关其操作的有价值的数据洞察。
想了解更多关于这个和其他使用JFrog平台的最佳方法吗?注册虚拟SwampUp 2020会议在那里,您可以参加关于Artifactory、Xray、Distribution和pipeline的在线培训和深入课程。
