完整的采集神器(两个和Logsene的监控与日志工具对比(一)(组图))
优采云 发布时间: 2021-11-21 14:21完整的采集神器(两个和Logsene的监控与日志工具对比(一)(组图))
Rancher社区维护的应用商店最近迎来了两个明星项目——SPM和Logsene,一个来自Sematext的监控和日志工具。如果您已经熟悉 Logstash、Kibana、Prometheus、Grafana 等监控或日志解决方案,请仔细阅读本文。它将向您展示 SPM 和 Logsene 为 Rancher 用户带来的功能,以及其他解决方案。有点区别。
联系 Sematext Docker 代理
Sematext Docker Agent 是一个 Docker 原生监控和日志代理程序。它在每个 Docker 主机上运行一个非常小的容器,用于采集 所有集群节点和这些节点上的容器的日志、系统指标和事件。Agent 代理监控 Rancher 管理的所有节点。部署了 Sematext Docker Agent 后,所有的日志、Docker 事件和各种指标都可以被外部访问。
这会变得很有价值,为什么?因为这意味着您不再需要花费数小时甚至数天的时间来弄清楚您需要什么数据或如何绘制它们。此外,您无需花费资源来维护自己的日志监控系统。你的Docker系统指标和事件会输出到SPM,日志会输出到Logsene(SPM是一个支持多平台的应用性能监控服务。集成,其中当然也包括Docker,而Logsene是一个日志管理服务,一个Rancher 托管的 ELK 应用程序堆栈,可与 Kibana 和 Grafana 配合使用)
DevOps 工具比较
有一些Docker日志和指标处理的开源工具供我们选择,比如cAdvisor和Logspout。不幸的是,这些工具都没有足够的综合能力。一种解决方案是集成一系列工具来实现目标,但这样做的后果是将系统带到“弗兰肯监控”的方向(指一个技术大杂烩,每个组件都无法按照承诺的功能正常运行) ”,而用户将因此背负沉重的技术债务,没有人愿意解决如此复杂的故障。因此,另一种解决方案是像 Sematext Docker Agent 这样的工具,它只结合了 cAdvisor 和 Logspout。它的功能特别关注日志管理,如格式检查、日志语法分析、和数据改进(Geo-IP 地址地理位置信息)。、元数据标签等)和日志路由。
通过 Rancher Catalog 配置 Sematext Docker Agent
要在 Rancher 平台上设置 Sematext Docker Agent,您只需要选择合适的目录模板(在 Rancher 的社区目录条目下查找“Sematext”)。让我们快速了解一下 Sematex 提供了哪些功能?在Rancher平台上如何设置?
Docker Compose 和 Kubernetes 自动日志标签
所有日志都标有元数据,其中包括对 Docker/Rancher Compose 项目和 Kubernetes 的支持:
对于 Docker 容器,对于 Docker/Rancher Compose,对于 Kubernetes
请注意,Kubernetes 容器的日志与其他 Docker 容器的日志没有太大区别。但是,Kubernetes 用户需要访问已部署 Pod 的日志。因此,获取特定于 Kubernetes 的信息进行日志搜索变得非常有用,例如:
提示:要启用Kubernetes标签,请设置Kubernetes=1
日志路由
对于较大的部署,你可能需要为不同的租户或应用建立日志索引,输出到不同的路径或Logsene应用进行处理(这样你也可以区分不同用户对不同日志的访问权限)。我们让这变得非常简单:只需向您的容器添加一个 Docker 标签,或者设置 LOGSENE_TOKEN 环境变量(LOGSENE_TOKEN=您的应用程序令牌),这样 Sematext Docker 代理就会将日志发送到正确的索引条目!通过这种方式,您不需要中央配置文件来映射容器和索引条目/令牌,因此日志路由变得非常灵活、动态和弹性。
集成日志解析器
日志处理基于 Docker API 和 Sematext 开源的名为 logagent-js 的库。本分析框架收录对Docker官方容器使用的不同日志格式模式的日志格式检测和分析:
提示:如果您想创建自定义模式,请将它们添加到 Rancher Catalog 模板中名为 LOGAGENT_PATTERNS 的字段中。
自动容器日志 Geo-IP 增强
从Docker容器外部获取到采集发送和分析的日志节省了很多时间,但是有一些应用程序日志需要从其他数据源获取额外的增强信息。一个常见的情况是增强Web Server的日志信息(或任何收录IP地址信息的日志),以在日志中提供IP地址的地理位置信息。
Sematext Docker 代理支持 docker 日志的 Geo-IP 丰富。它使用 Maxmind Geo-IP 轻量级数据库,它可以定期为您提供更新的信息,而无需停止容器或安装收录 Geo-IP 数据库的新卷,或任何其他手动操作。
提示:如果您需要启用 Geo-IP 增强功能,请设置环境变量 GEOIP_ENABLED=true。
过滤容器日志
在某些场景中,我们只需要采集重要应用的日志,而忽略优先级较低或嘈杂的服务日志(例如那些频繁的清理任务)。这样,我们可以使用白名单或黑名单(用于容器名称或图像名称)来处理这些容器,其设置使用正则表达式来匹配相应的元数据字段。
白名单容器
MATCH_BY_NAME 正则表达式将容器名称列入白名单
MATCH_BY_IMAGE 正则表达式将图像名称列入白名单
黑名单容器正则表达式将容器名称列入黑名单并忽略日志中的容器
SKIP_BY_NAME
SKIP_BY_IMAGE 正则表达式将镜像名列入黑名单,忽略日志中的镜像
如何使用 Sematext 目录项
在 Rancher 的 UI 中,输入社区的目录项列表并搜索关键字“sematext”、“monitoring”或“logs”。
点击“查看详情”,在“配置选项”选项中输入SPM和Logsene App的token。您可以注册并创建您的 SPM 和 Logsene 应用程序,然后您就可以获得这些访问令牌(tokens)。如果您的 Rancher 集群运行在防火墙(代理)之后,则需要在 HTTPS_PROXY 或 HTTP_PROXY 环境变量中填写代理 URL。如果您也在此集群中运行 Kubernetes,请选择 KUBERNETES=1。
如果要采集所有日志,请不要填写容器或映像名称的任何过滤值,只需单击“启动”即可。
总结
我们希望这篇对 Rancher 平台中 Sematext Docker Agent 的介绍可以帮助您在不使用繁琐模式的大杂烩的情况下开始对 Docker 进行监控和日志处理。本项目完整的配置参数可以从Github获取以供参考。我们相信新的目录模板可以涵盖最常用的选项。如果您发现缺少一些重要项目,请将它们提交到 Rancher 社区目录(提交问题或拉取请求)。使用 Rancher 试用 Sematext Docker Agent,所有服务将轻松接管,您将高枕无忧。Rancher Community Catalog 允许立即设置和运行日志监控系统,一切都变得如此简单。
译者简介
Rancher中国社区技术专家委员会成员Alan Peng。近20年IT及互联网企业服务经验。曾就职于GlobalSouces、PICCHealth、SmartDriveSystems等公司。他在基础设施规划和运营、虚拟化和云计算产品方面拥有多年的实践经验。现任职于瑞云智和深圳总部,项目交付团队技术负责人。