第十八章 九析带你轻松完爆 helm3 efk - fluentd

本系列文章:


第一章:九析带你轻松完爆 helm3 安装

第二章:九析带你轻松完爆 helm3 公共仓库

第三章:九析带你轻松完爆 helm3 私有仓库

第四章:九析带你轻松完爆 helm3 chart

第五章:九析带你轻松完爆 helm3 release

第六章:九析带你轻松完爆 helm3 gitlab

第七章:九析带你轻松完爆 helm3 nginx-ingress

第八章:九析带你轻松完爆 helm3 gitlab nfs

第九章:九析带你轻松完爆 helm3 nexus

第十章:九析带你轻松完爆 helm3 heapster

第十一章:九析带你轻松完爆 helm3 kubernetes-dashboard

第十二章:九析带你轻松完爆 helm3 harbor

第十三章:九析带你轻松完爆 helm3 prometheus

第十四章:九析带你轻松完爆 helm3 grafana

第十五章:九析带你轻松完爆 grafana 关联 prometheus

第十六章:九析带你轻松完爆 helm3 efk - elasticsearch

第十七章:九析带你轻松完爆 helm3 efk - kibana

第十八章:九析带你轻松完爆 helm3 efk - fluentd

目录

1 前言

2 下载 fluentd

3 创建 efk 命名空间

4 配置 fluentd

5 安装 fluentd

6 验证 fluentd


1 前言

        本文采用 helm3 v3.0.0;k8s v1.16.3。helm 仓库配置如下:

截图.png1.jpeg

2 下载 fluentd

        helm 搜索 fluentd:

helm search repo fluentd

helm 下载并解压 fluentd:

helm fetch google/fluentd

tar -zxvf fluentd-2.3.2.tgz

3 创建 efk 命名空间

kubectl create ns efk

4 配置 fluentd

        编辑 values.yaml 文件,在 system.conf 之上添加 containers.input.conf 字段信息,如下所示:

containers.input.conf: |-

    <source>

        @id fluentd-containers.log

        @type tail

        path /var/log/containers/*.log

        pos_file /var/log/es-containers.log.pos

        tag raw.kubernetes.*

        read_from_head true

        <parse>

            @type multi_format

            <pattern>

                format json

                time_key time

                time_format %Y-%m-%dT%H:%M:%S.%NZ

            </pattern>

            <pattern>

                format /^(?<time>.+) (?<stream>stdout|stderr) [^ ]* (?<log>.*)$/

                time_format %Y-%m-%dT%H:%M:%S.%N%:z

            </pattern>

        </parse>

    </source>

    <match raw.kubernetes.**>

        @id raw.kubernetes

        @type detect_exceptions

        remove_tag_prefix raw

        message log

        stream stream

        multiline_flush_interval 5

        max_bytes 500000

        max_lines 1000

    </match>

image2.png

        在 output.comf 中修改如下信息:

output.conf: |

    <match **>

        @id elasticsearch

        @type elasticsearch

        @log_level info

        include_tag_key true

        # Replace with the host/port to your Elasticsearch cluster.

        host "elasticsearch-client"

        port "9200"

        logstash_format true

        <buffer>

            @type file

            path /var/log/fluentd-buffers/kubernetes.system.buffer

            flush_mode interval

            retry_type exponential_backoff

            flush_thread_count 2

            flush_interval 5s

            retry_forever

            retry_max_interval 30

            chunk_limit_size "2M"

            queue_limit_length "8"

            overflow_action block

        </buffer>

    </match>

image3.png

        编辑 templates/deployment.yaml 文件,添加如下挂载信息:

image4.png

5 安装 fluentd

        efk 是命名空间;第一个 fluentd 是 helm release 名,第二个是 fluentd 安装目录:

helm install -n efk fluentd fluentd

image5.png

        用 helm 进行查看,发现 fluentd 已经安装成功:

helm list -n efk

image6.png

6 验证 fluentd

        打开浏览器,访问 https://jiuxi.kibana.org(需要修改 /etc/hosts 文件,添加域名解析记录,注意 IP 是 nginx-ingress-controller pod 所在宿主机 IP,切记)。

        选择 “management” -> "Index Patterns":

image7.png

        点击链接“Create index pattern“:

image8.png

        选择指定索引文件:

image9.png

        点击“next step”:

image10.png

        选择过滤字段名:

image11.png

        创建索引成功之后,再选择“Discovery”:

image12.png

        选择指定索引文件:

image66.png


        自此,轻松完爆 helm3 安装 fluentd。整个 efk 也配置成功。

猜你喜欢

转载自blog.51cto.com/14625168/2466137