k8s~fluentd從kafka到elk
有時為了日志解耦,通常不把日志打到文件,而是直接打到kafka,而為了分析日志,我們可以通過sidecar的方式,把日志從kafka寫入到es里,而通過kibana對日志進行分析。
我的k8s-fluentd的相關文章
k8s~部署EFK框架
k8s~為服務添加sidecar邊斗
k8s~fluentd的configmap設置es索引前綴
ELK~fluentd多行日志的收集
使用docker的鏡像
lypgcs/fluentd-es-kafka:v1.3.2
fluent.conf配置
可以添加configMap,擴展性更好,下面說一下配置的含義
名稱是fluentd-config,內部文件名是fluent.conf
- brokers 這是kafka的地址
- consumer_group 消費組名稱
- format json 表示kafka里存儲的是json格式
- start_from_beginning true表示從頭消費,false從最新的消息
- topics 表示監控的主題,多個之間用逗號分開
- tag 表示索引名稱
- flush_interval 刷新頻率
- logstash_format index是否使用logstash命名方式(logstash-%Y.%m.%d),默認不啟用
- logstash_prefix:logstash_format啟用的時候,es中索引命名前綴是什么。默認為logstash
- logstash_dateformat %Y.%m.%d #它是日期格式的默認值,就是索引的后綴
- logstash_prefix_separator #它是索引名和日期的分割符,默認是-
- include_tag_key true #把tag當做字段寫入ES,如果需要自定義tag時,可以添加這項
- tag_key @log_name
<source>
@type kafka_group
brokers test11:9092
consumer_group fluentd-k8s
format json
topics KC_AUTHORIZATION_POLICY,KC_AUTHORIZATION_POLICY_CREATE,KC_AUTHORIZATION_POLICY_DELETE,KC_AUTHORIZATION_POLICY_UPDATE,KC_AUTHORIZATION_RESOURCE_CREATE,KC_AUTHORIZATION_RESOURCE_DELETE,KC_CLIENT_LOGIN,KC_CLIENT_ROLE_MAPPING_CREATE,KC_CLIENT_ROLE_MAPPING_DELETE,KC_GROUP_CREATE,KC_GROUP_DELETE,KC_GROUP_MEMBERSHIP_CREATE,KC_LOGIN_ERROR,KC_LOGOUT,KC_REALM_ROLE_CREATE,KC_REALM_ROLE_MAPPING_CREATE,KC_REALM_ROLE_MAPPING_DELETE,KC_USER_ACTION,KC_USER_CREATE,KC_USER_DELETE,KC_USER_INFO_REQUEST,KC_USER_UPDATE,KC_CODE_TO_TOKEN_ERROR,KC_LOGIN
</source>
<match *>
@type elasticsearch
host 192.168.60.10
port 9200
logstash_format true
flush_interval 10s
logstash_prefix fluentd-log
</match>
k8s編排
apiVersion: apps/v1
kind: Deployment
metadata:
name: fluentd-log-deployment
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: fluentd-log
template:
metadata:
labels:
app: fluentd-log
spec:
hostAliases:
- ip: "192.168.10.11"
hostnames: ["test11"]
containers:
- name: fluentd-log-controller
image: lypgcs/fluentd-es-kafka:v1.3.2
volumeMounts:
- name: config-volume
mountPath: /etc/fluent
volumes:
- name: config-volume
configMap:
name: kafka-fluentd
#滾動升級策略
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
基于fluentd風格的按日期為索引的命名

修改索引的名稱,默認是Y.m.D后綴,修改為Y.m后綴
# fluentd.conf
logstash_dateformat %Y.%m
最后在kibana里的格式化后的數據

浙公網安備 33010602011771號