完整的采集神器(两个和Logsene的监控与日志工具对比(组图))
优采云 发布时间: 2022-02-16 12:14完整的采集神器(两个和Logsene的监控与日志工具对比(组图))
Rancher 社区维护的应用商店最近迎来了两个明星项目——SPM 和来自 Sematext 的监控和日志工具 Logsene。如果您已经熟悉 Logstash、Kibana、Prometheus、Grafana 等监控或日志解决方案,那么请仔细阅读这篇文章,它将向您展示 SPM 和 Logsene 为 Rancher 用户带来了哪些功能,以及其他解决方案有哪些不同之处。
联系Sematext Docker AgentSematext Docker Agent是目前Docker原生监控和日志采集Agent程序。它在每个 Docker 主机上运行一个非常小的容器来采集所有集群节点和这些节点上的容器的日志、系统指标和事件。Agent 代理监控 Rancher 管理的所有节点。部署 Sematext Docker Agent 后,所有日志、Docker 事件、各种指标都可以对外访问。
这将变得有价值,为什么?因为这意味着您不再需要花费数小时甚至数天的时间来弄清楚 采集 您需要什么数据或如何绘制它。另外,你不需要花费资源来维护自己的日志监控系统,你的Docker系统指标和事件会输出到SPM,日志会输出到Logsene(SPM是一个应用性能监控服务,支持Integration,当然还包括 Docker,而 Logsene 是一个日志管理服务,一个托管在 Rancher 中的 ELK 应用程序堆栈,可以很好地与 Kibana 和 Grafana 配合使用)
DevOps 工具对比 Docker 日志和指标处理的一些开源工具供我们选择,例如 cAdvisor 和 Logspout。不幸的是,这些工具都不够全面。一种解决方案是集成一系列工具来实现目标,但这样做的后果是使系统朝着“Franken-monitoring”的方向发展(指的是技术的大杂烩,每个组件都没有按承诺发挥作用) ",因此用户将受到影响。由于沉重的技术债务,没有人愿意解决如此复杂的故障。
因此,另一个解决方案是像 Sematext Docker Agent 这样的工具,它只是结合了 cAdvisor 和 Logspout,其功能特别侧重于日志管理,例如格式检查、日志解析、数据改进(Geo-IP 地址地理定位信息)、元数据标签等)和日志路由。
通过 Rancher 目录配置 Sematext Docker 代理 要在 Rancher 平台上设置 Sematext Docker 代理,您只需选择适当的目录模板(在 Rancher 社区目录条目下查找“Sematext”)。让我们快速了解一下 Sematex 提供哪些功能?如何在 Rancher 平台上进行设置?
Docker Compose 和 Kubernetes 自动日志标签
所有日志都标有元数据,其中包括对 Docker/Rancher Compose 项目和 Kubernetes 的支持:
对于 Docker 容器
为 Docker/Rancher 编写
对于 Kubernetes
请注意,Kubernetes 容器的日志与其他 Docker 容器的日志没有太大区别,但是 Kubernetes 用户需要访问已部署 pod 的日志,因此抓取 Kubernetes 特定信息以进行日志搜索非常有用,例如:
提示:要启用 Kubernetes 标签,设置 Kubernetes=1 日志路由对于较大的部署,您可能需要为不同的租户或应用程序索引日志,将它们输出到不同的路径或 Logsene 应用程序处理(这样您也可以区分不同用户的访问权限到不同的日志)。
我们让这变得非常简单:只需将 Docker 标记添加到您的容器,或设置 LOGSENE_TOKEN 环境变量(LOGSENE_TOKEN=您的应用程序令牌),Sematext Docker 代理就会将日志发送到正确的索引条目!这样,您根本不需要中央配置文件来映射容器和索引项目/令牌,因此日志路由变得非常灵活、动态和弹性。
Integrated Log Parser 日志处理基于 Docker API 和一个名为 logagent-js 的库,该库由 Sematext 开源。该分析框架包括用于日志格式检测和分析标准正式 Docker 容器使用的不同日志格式的模式:
提示:如果您想创建自定义模式,请将它们添加到 Rancher 目录模板中名为 LOGAGENT_PATTERNS 的字段中。自动容器日志记录 Geo-IP 增强功能 从 Docker 容器外部获取日志到 采集 运输和分析节省了大量时间,但一些应用程序日志需要其他数据源的额外增强功能。一种常见的情况是增强Web Server的日志信息(或任何收录IP地址信息的日志),并为日志中的IP地址提供其地理位置信息。
Sematext Docker Agent 支持 docker 日志的 Geo-IP 丰富。它使用 Maxmind Geo-IP 轻量级数据库,为您提供定期更新的信息,而无需停止容器或为其挂载收录 Geo-IP 数据库的新卷,或任何其他手动操作。
提示:要启用 Geo-IP 增强功能,请设置环境变量 GEOIP_ENABLED=true。过滤容器日志 在某些情况下,我们只需要采集重要应用程序的日志,而忽略低优先级或嘈杂的服务日志(例如那些经常清理的日志)。这样,我们可以使用白名单或黑名单(容器名称或镜像名称)来处理这些容器,其设置使用正则表达式匹配对应的元数据字段。
如何使用 Sematext Catalog 项目 在 Rancher 的 UI 中,进入社区的 Catalog 项目列表,搜索关键字“sematext”、“monitoring”或“logs”。
点击“查看详情”,在“配置选项”选项中输入SPM和Logsene App的token。从这里您可以注册和创建您的 SPM 和 Logsene 应用程序,然后获取这些访问令牌。如果您的 Rancher 集群在防火墙(代理)后面运行,您需要在 HTTPS_PROXY 或 HTTP_PROXY 环境变量中填写代理 URL。如果您还在此集群中运行 Kubernetes,请选择 KUBERNETES=1。
如果要采集所有日志,容器或镜像名称不要填写任何过滤值,只需点击“启动”即可。
结束语 我们希望这篇对 Rancher 平台中 Sematext Docker Agent 的介绍可以帮助您开始监控和记录 Docker,而不必担心繁琐模式的大杂烩。本项目完整的配置参数可以参考参考。我们相信新的目录模板已经涵盖了最常见的选项。如果您发现缺少一些重要的项目,请将它们提交到 Rancher 社区目录(提交问题或拉取请求)。尝试使用 Rancher 的 Sematext Docker Agent,所有服务将被轻松接管,您将高枕无忧。Rancher 社区目录让日志监控系统在瞬间启动和运行变得非常容易。