-
Notifications
You must be signed in to change notification settings - Fork 656
efk ki日志方案
haozi4263 edited this page Feb 17, 2023
·
3 revisions
- 训练、推理、平台日志通过部署filebeat采集器容器控制台采集发送到es集群中,并提供kibana和平台api查询接口
- 训练、推理、平台日志通过部署ilogtail采集器采集容器控制台、和容器内部日志发送到kafka集群的不同topic给大数据分析提供原始数据
- 训练、推理、平台日志需要交给大数据分析的需要写入环境变量ilogtail=true才会发送到kafka中
1、存储日志索引元数据
2、用于日志Kibana搜索和提供API给平台查询
3、索引规则:logging-yy.dd.ss
4、存储天数:30天|15天
1、采集pod控制台训练、推理、命名空间日志存储到es中
1、用于web可是化日志搜索
https://ilogtail.gitbook.io/ilogtail-docs/
1、采集pod控制台、pod内部文件日志动态存储到kafak的不同topic中
1、根据不同的topic存储需要分析的业务日志
2、接受prometheus-kafka-adapter存放metrics指标数据
3、topics命名规则:pod-{container.name}
4、存储天数:7天
-
-
采集路径:/var/log/nginx/access.log
-
存储方式:容器内部文件
-
存储json格式
log_format main '{"timestamp": "$time_iso8601", "remote_addr": "$remote_addr",' '"vhost": "$http_host", "upstream_addr": "$upstream_addr", "upstream_status": "$upstream_status",' '"request_time": $request_time, "request_length": $request_length, "status": $status,' '"request": "$request", "request_url": "$request_uri", "url": "$uri", "args": "$args",' '"requestid": "$sent_http_X_Request_ID", "content_type": "$sent_http_content_type",' '"http_cookie": "$http_cookie", "connection_requests": "$connection_requests",' '"request_completion": "$request_completion", "limit_rate": "$limit_rate", "request_method":' '"$request_method", "http_referrer": "$http_referer", "body_bytes_sent": $body_bytes_sent,' '"http_x_forwarded_for": "$http_x_forwarded_for", "http_user_agent": "$http_user_agent",' '"upstream_response_time": "$upstream_response_time"}';
-
-
-
存储方式
- 容器控制台
- 采集规则:
env: - name: ilotail value: "true"
-
-
-
采集方式 1、控制台日志,容器内部文件日志
-
采集规则:
模型训练-->任务流-->修改-->全局环境变量
-
2、容器内部
- 采集路径:/var/log/pipeline 如业务不支持配置此目录,可软链接过去:如 ln -s /home/work/app/app.log /var/log/piplenine/xxx.log
-
-
采集方式: 控制台日志,容器内部文件日志
采集规则: 服务化-->服务上线-->修改--全局环境变量
- 容器内部
- 采集路径:/var/log/service 可软链接过去:如 ln -s /home/work/app/app.log /var/log/service/xxx.log
- 容器内部
-
部署es+filebeat+kibana
echo "############### 部署EFK,默认es是单节点不影响单机和集群部署使用。集群扩容3副本即可 mkdir -pv /data/efk-es{1..3} kubectl create ns logging kubectl apply -f efk/pv/ kubectl apply -f efk/
-
部署kafka+ilogtail
mkdir -pv /data/kafka{1..3}
mkdir -pv /data/zk{1..3}
echo "############## 部署kafka operater cluster##################"
kubectl apply -f kafka/storage-class-zk.yaml -f kafka/storage-class-kafka.yaml
if [ `kubectl get node|grep -v NAME|wc -l` -gt 2 ];then
echo "install cluster kafka"
kubectl apply -f kafka/cluster/pv-zk1.yaml -f kafka/cluster/pv-zk2.yaml -f kafka/cluster/pv-zk3.yaml
kubectl apply -f kafka/cluster/pv-kafka1.yaml -f kafka/cluster/pv-kafka2.yaml -f kafka/cluster/pv-kafka3.yaml
kubectl apply -f kafka/cluster/kafka-operator.yaml
kubectl wait crd/kafkas.kafka.strimzi.io --for condition=established --timeout=90s
kubectl apply -f kafka/cluster/kafka-external-svc.yaml
kubectl apply -f kafka/cluster/kafka-cluster.yaml
else
echo "install single kafka"
kubectl apply -f kafka/single/pv-zk1.yaml
kubectl apply -f kafka/single/pv-kafka1.yaml
kubectl apply -f kafka/single/kafka-operator.yaml
kubectl wait crd/kafkas.kafka.strimzi.io --for condition=established --timeout=90s
kubectl apply -f kafka/single/kafka-external-svc.yaml
kubectl apply -f kafka/single/kafka-cluster.yaml
fi
kubectl apply -f ilogtail/