Kubernetes 利用开源组件Log-pilot收集容器日志

目录

参考

https://help.aliyun.com/document_detail/86552.html?spm=a2c4g.11186623.6.819.db321cb0CDGl4W

版本

Kubernetes版本: 1.16.9-aliyun.1
Elasticsearch版本: 6.8.12
Kibana: 6.8.12
Log-pilot: 0.9.6-filebeat

前提条件

已经拥有一个 kubernetes 集群, 并且创建命名空间 elk

相关技术

  • Elasticsearch
  • Kibana
  • Log-pilot

部署 elasticsearch

kubectl apply -f http://qiniuyun.eddilee.cn/elasticsearch.yaml

部署 log-pilot

日志采集工具

kubectl apply -f http://qiniuyun.eddilee.cn/log-pilot.yaml

TIPS

Log-pilot 修改filebeat.tpl文件,日志多行日志输出修改.

1、进入pod
2、修改文件
vi /pilot/filebeat.tpl
...
- {{ .HostDir }}/{{ .File }}     # 追加下面的
  multiline.pattern: '^\s*(\d{4}|\d{2})\-(\d{2}|[a-zA-Z]{3})\-(\d{2}|\d{4})'
  multiline.negate: true
  multiline.match: after
  multiline.max_lines: 10000          
  multiline.timeout: 15s
  scan_frequency: 10s    # 追加上面的
...
  
之后可以自己构建docker镜像,本章没有构建这部分,读者手动吧!

部署 kibana

UI页面操作

kubectl apply -f http://qiniuyun.eddilee.cn/kibana.yaml

使用Dockfile构建测试镜像

FROM registry.cn-shenzhen.aliyuncs.com/open-image/centos7_jdk8_maven:v1.0
MAINTAINER eddie.lee
VOLUME /tmp
ADD ./target/eddie.jar /api.jar
#EXPOSE 8080
ENTRYPOINT ["sh" , "/exec.sh", "restart"]

TIPS 若用 nohup java jar api.jat >> /var/log/api.log 2>&1 & 在Dockerfile标准输出不成功

建立测试Pod

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: java-eddie-prod
spec:
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  selector:
    matchLabels:
      app: java-eddie-prod
  replicas: 3
  template:
    metadata:
      labels:
        app: java-eddie-prod
    spec:
      containers:
        - name: java-eddie-prod
          image: ${ORIGIN_REPO}/${REPO}:${IMAGE_TAG}
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: 1024Mi
            limits:
              memory: 2048Mi
          env:
            - name: aliyun_logs_catalina
              value: "stdout"
            - name: aliyun_logs_prod-eddie-roll
              value: "/var/log/*.log"
          volumeMounts:
            - mountPath: /var/log/
              name: java-eddie-prod
      volumes:
        - name: java-eddie-prod
          emptyDir: {}

elasticsearch 自动创建索引

  • aliyun_logs_catalina=stdout表示要收集容器的 stdout 日志
  • aliyun_logs_prod-eddie-roll="/var/log/.log"表示要收集容器内"/var/log/"目录下所有名字匹配.log的文件日志

调式

进入ES容器查看

[root@eddie logs]# kubectl exec -it  elasticsearch-1 bash -n elk
[root@elasticsearch-1 elasticsearch]# curl 'localhost:9200/_cat/indices?v' 
health status index                                 uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   prod-eddie-roll-2020.09.03             _xRmIw0kSyqPQZ0KKP2YNA   5   1      16404            0     13.1mb          6.5mb
green  open   .kibana_task_manager                  5H0qXxNDTvmaq3ulakyP8w   1   1          2            0     19.3kb         12.5kb
green  open   .kibana_1                             iDBJgUgYRzyGJhUr31goyw   1   1         11            2     73.1kb         36.5kb

登录 Kibana

  • kibana.eddilee.cn

1、查看索引是否与ES容器建立的一致
图片.png

2、创建 index pattern
图片.png

3、点击左边按钮“Discover” 即刻查看日志

结束

感谢观看,文章始于原创,转载请备注作者 eddie.lee 与博客连接。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eddie_k2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值