第十八章 九析帶你輕鬆完爆 helm3 efk - fluentd

本系列文章:
nginx


第一章:九析帶你輕鬆完爆 helm3 安裝git

第二章:九析帶你輕鬆完爆 helm3 公共倉庫json

第三章:九析帶你輕鬆完爆 helm3 私有倉庫瀏覽器

第四章:九析帶你輕鬆完爆 helm3 chartelasticsearch

第五章:九析帶你輕鬆完爆 helm3 releaseide

第六章:九析帶你輕鬆完爆 helm3 gitlabgitlab

第七章:九析帶你輕鬆完爆 helm3 nginx-ingressfetch

第八章:九析帶你輕鬆完爆 helm3 gitlab nfsgoogle

第九章:九析帶你輕鬆完爆 helm3 nexusspa

第十章:九析帶你輕鬆完爆 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 也配置成功。

相關文章
相關標籤/搜索