filebeat 采集k8s 中nginx deployment 日志

这篇具有很好参考价值的文章主要介绍了filebeat 采集k8s 中nginx deployment 日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

在k8s集群中,已经部署了nginx应用,需要使用elk来收集日志。

注意:elk并没有放在k8s集群中,使用单独的服务器进行安装。不推荐elk放在k8s集群中!

其中filebeat,使用DaemonSet方式部署,这样就可以自动收集了。

二、环境说明

操作系统:centos 7.6

k8s版本:1.18.1

ip地址:10.212.82.63

配置:2核4g

主机名:k8s-master

操作系统:centos 7.6

k8s版本:1.18.1

ip地址:10.212.82.65

配置:2核4g

主机名:k8s-node01

日志说明

nginx容器,默认的日志路径为:/var/log/nginx,所以在部署时,我会将此目录映射到宿主机的/opt/log/nginx目录(日志格式需要为json)

部署filebeat时,需要将/opt/log/nginx目录挂载到filebeat容器中,这样才能读取nginx日志。

elk

本文使用elk版本,统一采用7.5.1

由于资源紧张,我这里演示效果,在 k8s-node01 部署elk。在实际生产环境中,请单独部署。

关于elasticsearch和head插件安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/13565468.html

关于logstash安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/13565790.html

关于kibana安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/13570301.html

请确保elk工作正常,kibana能看到 logstash收集到的/var/log/messages日志信息。

nginx

登录到主机k8s-node01,创建日志目录

  1. mkdir -p /opt/log/nginx

登录到主机k8s-master,部署nginx

新建文件 nginx-deployment.yaml,内容如下:                  

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: nginx-1
  5. spec:
  6. selector:
  7. matchLabels:
  8. run: nginx-1
  9. replicas: 1
  10. template:
  11. metadata:
  12. labels:
  13. run: nginx-1
  14. spec:
  15. containers:
  16. - name: nginx-1
  17. image: nginx:stable-alpine
  18. ports:
  19. - containerPort: 80
  20. volumeMounts:
  21. - mountPath: /var/log/nginx
  22. name: nginx-log
  23. restartPolicy: Always
  24. volumes:
  25. - name: nginx-log
  26. hostPath:
  27. path: /opt/log/nginx    

新建文件 nginx-service.yaml,内容如下: 

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: nginx-1
  5. labels:
  6. run: nginx-1
  7. spec:
  8. type: NodePort
  9. ports:
  10. - port: 80
  11. name: nginx-port
  12. targetPort: 80
  13. protocol: TCP
  14. nodePort: 30008
  15. selector:
  16. run: nginx-1

开始正式部署

  1. kubectl apply -f nginx-service.yaml
  2. kubectl apply -f nginx-deployment.yaml

 文章来源地址https://www.toymoban.com/news/detail-645189.html

filebeat

filebeat的镜像,需要在官方的基础上,做一次封装。因为配置文件,需要调整一下。由于资源紧张,这里并没有使用私有仓库harbor或者云产商的私有仓库,直接使用本地存储。

登录到主机k8s-node01,新建目录,并创建dockerfile

  1. mkdir -p /opt/filebeat
  2. cd /opt/filebeat
  3. vi dockerfile

内容如下:

  1. FROM elastic/filebeat:7.5.1
  2. ADD filebeat.yml /usr/share/filebeat/filebeat.yml

 

新建文件filebeat.yml,内容如下:

  1. # 收集系统日志
  2. filebeat.inputs:
  3. - type: log
  4. enabled: true
  5. paths:
  6. - /opt/log/nginx/access.log
  7. fields:
  8. log_source: nginx-access
  9. - type: log
  10. enabled: true
  11. paths:
  12. - /opt/log/nginx/error.log
  13. fields:
  14. log_source: nginx-error
  15. filebeat.config:
  16. modules:
  17. path: ${path.config}/modules.d/*.yml
  18. reload.enabled: false
  19. processors:
  20. - add_cloud_metadata: ~
  21. - add_docker_metadata: ~
  22. output.elasticsearch:
  23. hosts: '10.212.82.65:9200'
  24. indices:
  25. - index: "filebeat-nginx-%{+yyyy.MM.dd}"

 

说明:

这里是读取2个日志文件,分别是access.log和error.log。然后将内容输出到elasticsearch

请根据实际情况修改!

生成镜像

  1. docker build -t my-filebeat:v1 .

登录主机k8s-master,新建filebeat.yaml,内容如下:

  1. apiVersion: apps/v1
  2. kind: DaemonSet
  3. metadata:
  4. name: filebeat-1
  5. spec:
  6. selector:
  7. matchLabels:
  8. run: filebeat-1
  9. template:
  10. metadata:
  11. labels:
  12. run: filebeat-1
  13. spec:
  14. containers:
  15. - name: filebeat-1
  16. image: my-filebeat:v1
  17. imagePullPolicy: IfNotPresent
  18. volumeMounts:
  19. - mountPath: /opt/log
  20. name: log
  21. restartPolicy: Always
  22. volumes:
  23. - name: log
  24. hostPath:
  25. path: /opt/log

 

 

注意:这里采用DaemonSet方式部署,必须挂载目录/opt/log,否则无法读取。

正式部署

 
 
    • kubectl apply -f filebeat.yaml

 访问elasticsearch head插件,查看filebeat索引是否存在

filebeat 采集k8s 中nginx deployment 日志,kubernetes,nginx,java

 登录kibana,新建索引filebeat

filebeat 采集k8s 中nginx deployment 日志,kubernetes,nginx,java

索引名称为:filebeat-nginx-*

filebeat 采集k8s 中nginx deployment 日志,kubernetes,nginx,java 

 

添加索引之后,返回主页面

点击change,切换索引到filebeat-nginx-*,然后刷新几遍nginx访问页面,效果如下:

filebeat 采集k8s 中nginx deployment 日志,kubernetes,nginx,java

 

到了这里,关于filebeat 采集k8s 中nginx deployment 日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8s部署轻量级日志收集系统EFK(elasticsearch + filebeat + kibana)

    目录 K8s部署EFK(elasticsear + filebeat + kibana)日志收集 一.准备镜像 二.搭建Elasticsearch + kibana 1.在可执行kubectl命令的服务器准备安装的yml文件 2.在elasticsearch-kibana目录下创建配置文件elasticsearch.yml 3.创建kibana配置文件kibana.yml 4.在k8s中创建elasticsearch和kibana的配置文件configmap 5.检查

    2024年02月08日
    浏览(54)
  • K8s(Kubernetes)学习(四):Controller 控制器:Deployment、StatefulSet、Daemonset、Job

    什么是 Controller 以及作用 常见的 Controller 控制器 Controller 如何管理 Pod Deployment 基本操作与应用 通过控制器实现 Pod 升级回滚和弹性伸缩 StatefulSet 基本操作与应用 Daemonset 基本操作与应用 Job 基本操作与应用 Controller 无法解决问题 1 Controller 控制器 官网: http://kubernetes.p2hp.com/

    2024年02月09日
    浏览(44)
  • k8s(Kubernetes)设置 pod,Deployment 域名自定义映射ip,hosts 解析 HostAliases

    直接 编辑修改 Deployment 最后内容如下,如需保存 按 esc 键,最后输入 :wq 保存退出,容器会自动重新生成新的

    2024年02月12日
    浏览(38)
  • k8s与Pod日志采集

    Kubernetes (k8s) 是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。在 k8s 中,Pod 是最小的可部署单元,它可以包含一个或多个容器,并共享存储和网络资源。在这种环境下,日志采集是非常重要的,因为它可以帮助我们理解应用程序的运行状况,快速

    2024年02月08日
    浏览(27)
  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

    如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台 网关gateway服务 ,然后到 鉴权spring-sercurity服务 ,然后到 业务订单服务 ,然后到 支付服务 ,后续还有发货、客户标签等等服务

    2024年02月16日
    浏览(31)
  • Loki+Grafana(外)采集Kubernetes(K8s)集群(基于containerd)

    1、简介 Loki是一个开源、分布式的日志聚合系统,由Grafana Labs推出。Loki的设计目标是为了高效地处理大规模的日志数据,并具有良好的可扩展性。Loki的最大优点是它具有低资源占用和高效的查询速度。这是因为Loki不需要在处理日志数据时进行索引,而是将数据存储在类似于

    2024年02月10日
    浏览(33)
  • Kubernetes 的用法和解析(K8S 日志方案) -- 8

    通过应用和系统日志可以了解Kubernetes集群内所发生的事情,对于调试问题和监视集群活动来说日志非常有用。对于大部分的应用来说,都会具有某种日志机制。因此,大多数容器引擎同样被设计成支持某种日志机制。 对于容器化应用程序来说,最简单和最易接受的日志记录

    2024年02月04日
    浏览(33)
  • 【云原生】【k8s】Kubernetes+EFK构建日志分析安装部署

    目录 EFK安装部署 一、环境准备(所有主机) 1、主机初始化配置 2、配置主机名并绑定hosts,不同主机名称不同 3、主机配置初始化 4、部署docker环境 二、部署kubernetes集群 1、组件介绍 2、配置阿里云yum源 3、安装kubelet kubeadm kubectl 4、配置init-config.yaml init-config.yaml配置 5、安装

    2024年02月12日
    浏览(27)
  • 【Kubernetes 企业项目实战】04、基于 K8s 构建 EFK+logstash+kafka 日志平台(中)

    目录 一、安装存储日志组件 Elasticsearch 1.1 创建名称空间 1.2 安装 elasticsearch 组件 1)创建 headless service 服务 2)通过 statefulset 创建 elasticsearch 集群 二、安装 kibana 可视化 UI 界面 本篇文章所用到的资料文件下载地址: kibana-v7.2.0-kubernetes文档类资源-CSDN下载 https://download.csdn.ne

    2023年04月08日
    浏览(31)
  • k8s中的deployment

            Deployment是k8s中用来管理发布的控制器,在开发的过程中使用非常频繁,本篇文章主要介绍deployment相关的使用和原理。 声明式API 最终一致性 水平触发 资源对象 。。。 定义一组pod的期望数量,controller会维持Pod的数量和期望的一致(其实deployment是通过管理rs的状态来

    2024年02月16日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包