日志对于帮助您了解 Kubernetes 集群内部发生的事情至关重要。尽管大多数应用程序都有某种开箱即用的原生日志记录机制,但在分布式和容器化环境(如 Kubernetes)中,用户最好使用集中式日志记录解决方案。这是因为他们需要从多个应用程序中收集不同日志格式的日志,并将它们发送到某个日志后端,以供后续存储、处理和分析。
Kubernetes 日志架构和日志选项
Kubernetes 中的 Docker 容器将日志写入stdout和stderr流。 Docker 将这些流重定向到 Kubernetes 中配置的日志记录驱动程序,以写入 JSON 格式的文件。 Kubernetes 然后通过 kubectl logs 命令向用户公开日志文件。
但是,如果从节点中永久删除 pod,则所有相应的容器及其日志也会被删除。当节点离线时也会发生同样的情况。在这种情况下,用户将无法再访问应用程序日志。为避免这种情况,容器日志应具有独立于 Pod 和节点的独立交付、存储和生命周期。 Kubernetes 不提供日志数据的原生存储解决方案。
Kubernetes 架构促进了多种管理应用程序日志的方法。需要考虑的几种常见方法是:
- 使用在应用程序的 pod 中运行的日志边车容器。
- 使用在每个节点上运行的节点级日志记录代理。
- 将日志直接从应用程序内推送到某个后端。
Sumologic 集合
使用在每个节点上运行的节点级日志记录代理来协助此操作。 Sumologic 已经创建了一个 helm chart,我们可以将其安装在 Kubernetes 集群上,并且代理会将日志推送到 sumologic 收集器。
要记住的一点:Nat 网关的公共 IP 应添加到 sumologic 允许列表
helm upgrade --install my-release sumologic/sumologic \
--namespace=sumologic --set sumologic.accessId=xxxxxxxxx \
--set sumologic.accessKey=xxxxxxxxxxxxxxxxx \
--set sumologic.clusterName="kube-sb" \
--set kube-prometheus-stack.prometheusOperator.enabled=false \
--set kube-prometheus-stack.prometheus-node-exporter.service.port=9200 \
--set kube-prometheus-stack.prometheus-node-exporter.service.targetPort=9200 \
--set falco.enabled=true
参考引用
https://github.com/SumoLogic/sumologic-kubernetes-collection
https://github.com/SumoLogic/sumologic-kubernetes-collection/blob/main/deploy/docs/SideBySidePrometheus.md
https://help.sumologic.com/07Sumo-Logic-Apps/10Containers_and_Orchestration/Kubernetes/Install_the_Kubernetes_App%2C_Alerts%2C_and_view_the_Dashboards
https://help.sumologic.com/05Search/Search-Query-Language
您也可以联系文章作者本人进行修改,若内容侵权或非法,可以联系我们进行处理。
任何个人或组织,转载、发布本站文章到任何网站、书籍等各类媒体平台,必须在文末署名文章出处并链接到本站相应文章的URL地址。
本站文章如转载自其他网站,会在文末署名原文出处及原文URL的跳转链接,如有遗漏,烦请告知修正。
如若本站文章侵犯了原著者的合法权益,亦可联系我们进行处理。
暂无评论内容