log-pilot调用,Logstash输出
log-pilot默认是以aliyun_log_name的格式来调用收集日志的,name是自己定义的,前缀默认写死aliyun,以自定义前缀开通需要先修改log-pilot的配置添加PILOT_LOG_PREFIX参数,增加其他的可用前缀,这时的格式就改变为name了根据调用方式,必须要把/目录挂载到pilot的/host目录这样就可以收集宿主机的日志了。
log-pilot调用
log-pilot配置
log-pilot默认是以aliyun_log_name的格式来调用收集日志的,name的格式来调用收集日志的,name的格式来调用收集日志的,name是自己定义的,前缀默认写死aliyun,以自定义前缀开通需要先修改log-pilot的配置
kubectl edit ds log-pilot -n logging

添加PILOT_LOG_PREFIX参数,增加其他的可用前缀,这时的格式就改变为KaTeX parse error: Expected group after '_' at position 10: value_log_̲name了
根据调用方式,必须要把/目录挂载到pilot的/host目录

这样就可以收集宿主机的日志了。
服务调用pilot
这里以apiserver的pod配置为例,有两个关键部分,一个是环境变量的调用,一个是日志路径的挂载

这个案例中定义了要收集的日志,对应参数是ctyun_logs_audit,调用时根据我们定义的名称添加环境变量。
环境变量调用格式
-name: $value(PILOT_LOG_PREFIX定义的值)_logs_$name(自己定义的名称)
value: "日志收集的路径"
第二部分是日志的挂载,pod必须将要收集的日志路径共享给pilot,虽然pilot把主机/挂载了但容器和主机有层隔离,不共享日志的数据目录是无法进行收集的,这里把容器中的/usr/local/tomcat/logs进行共享。

目录挂载配置格式
spec.containers.env:
volumeMounts:
- name: #自定义名称
mountPath: #要收集日志的目录
spec.volumes:
- name: #与上面自定义名称对应
emptyDir: {} #容器目录共享
pilot配置生效验证
在apiserver pod对应的node上,进入pilot pod内查看配置文件
kubectl -n logging exec -it log-pilot-8h7mh -- sh
cd /etc/filebeat/prospectors.d/
配置成功后会生成配置文件,用于这个日志的收集

其中的标签就是我们定义的名称

这样到pilot的配置就完成了。
配置Logstash输出创建索引
更改Logstash的管道文件
kubectl edit cm logstash-logstash-pipeline -n logging
在output{}中添加个条件,如果index是audit就创建索引audit-*
else if [index] == "audit"{
elasticsearch {
hosts => ["elasticsearch-master.logging:9200"]
index => "audit-%{+YYYY.MM.dd}"
user => "elastic"
password => "密码"
}
}
最后在kibana上创建索引

更多推荐

所有评论(0)