本系列文章:
nginx
第一章:九析帶你輕鬆完爆 helm3 安裝git
第二章:九析帶你輕鬆完爆 helm3 公共倉庫json
第三章:九析帶你輕鬆完爆 helm3 私有倉庫瀏覽器
第四章:九析帶你輕鬆完爆 helm3 chartelasticsearch
第五章:九析帶你輕鬆完爆 helm3 releaseide
第六章:九析帶你輕鬆完爆 helm3 gitlabgitlab
第七章:九析帶你輕鬆完爆 helm3 nginx-ingressfetch
第八章:九析帶你輕鬆完爆 helm3 gitlab nfsgoogle
第九章:九析帶你輕鬆完爆 helm3 nexusspa
第十一章:九析帶你輕鬆完爆 helm3 kubernetes-dashboard
第十三章:九析帶你輕鬆完爆 helm3 prometheus
第十五章:九析帶你輕鬆完爆 grafana 關聯 prometheus
第十六章:九析帶你輕鬆完爆 helm3 efk - elasticsearch
目錄
1 前言
2 下載 fluentd
3 建立 efk 命名空間
4 配置 fluentd
5 安裝 fluentd
6 驗證 fluentd
1 前言
本文采用 helm3 v3.0.0;k8s v1.16.3。helm 倉庫配置以下:
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>
在 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>
編輯 templates/deployment.yaml 文件,添加以下掛載信息:
5 安裝 fluentd
efk 是命名空間;第一個 fluentd 是 helm release 名,第二個是 fluentd 安裝目錄:
helm install -n efk fluentd fluentd
用 helm 進行查看,發現 fluentd 已經安裝成功:
helm list -n efk
6 驗證 fluentd
打開瀏覽器,訪問 https://jiuxi.kibana.org(須要修改 /etc/hosts 文件,添加域名解析記錄,注意 IP 是 nginx-ingress-controller pod 所在宿主機 IP,切記)。
選擇 「management」 -> "Index Patterns":
點擊連接「Create index pattern「:
選擇指定索引文件:
點擊「next step」:
選擇過濾字段名:
建立索引成功以後,再選擇「Discovery」:
選擇指定索引文件:
自此,輕鬆完爆 helm3 安裝 fluentd。整個 efk 也配置成功。