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上创建索引

在这里插入图片描述

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐