混合云管平台openkube日志系统介绍

作者:彭明明

 

一:背景

随着openkube系统一步步推进,混合云管理系统已显雏形,容器化部署逐步深入,应用部署依赖关系复杂、日志量庞大、运维和开发人员查看日志分析问题困难,目前搭建一套统一日志系统显的尤为重要。

 

二:目标

1.一站式日志平台

打造统一日志管理平台,统一日志采集、日志分析、日志查询,一站解决运维、开发人员日志查询、分析、问题定位的痛点。

2.跨平台日志采集

支持多平台、多语种、多样式日志定制化采集

3.关键字高效查询

在海量的历史记录中,只需输入关键字,即可轻松驾驭数据探勘工作,快速取得查询结果。

4.丰富灵活仪表盘

提供实时和全面的可视性仪表板,弹性组合仪表板的呈现信息,及时了解关键信息、最新风险与安全趋势。

 

:选型

1.日志采集

 

1.png

 

基于上述比对:filebeat部署简单,可靠性高,资源占用少(10M内存资源),支持kafka数据源输出, 日志采集采用filebeat作为日志采集工具。

 

2.日志缓存

1. 防止因数据清洗不及时导致数据丢失

2. 支持多消费源消费数据

3. 支持数据回放

基于上述特点:日志缓存采用kafka作为数据缓存,kafka具备高吞吐量、低延迟;持久性、可靠性;容错性;高并发等特性。

3.日志分析、存储、展示

针对日志数据清洗、分析、存储、展示,采用目前比较成熟的ELK系统。

1. logstash负责日志数据清洗、分析、筛选、过滤把数据存储ES。

2. ES作为数据库存储清洗后的日志数据,提供kibana数据展示数据源。

3. kibana渲染ES日志数据,支持关键字查询、日志监控看板等。

 

:架构

 

图片2.png

1. k8s容器开启标准输出模式将日志直接输出到stdout、stderr,而 DockerEngine 接管 stdout 和 stderr 文件描述符,将日志接收后按照 DockerEngine 配置的 LogDriver json-file输出日志。

2. filebeat以Daemonset模式部署、收集Pods标准输出的Json格式日志转存至kafka。

3. kafka作为日志元原始数据存储介质,提供给多消费者获取数据。(日志实时查询、离线分析)

4. logstash消费kafka日志,清洗、过滤日志数据,存储日志数据到ES。

5. ES存储经过清洗、过滤的日志数据,提供Kibana日志展示数据源。

6. Kibana提供关键字实时查询日志、业务日志定制监控大盘等功能。

:规范

1.分层规范

方便日志清洗、存储、展示把日志分层处理

(1)按照应用所处架构的层次划分

l 接入层(www)

l 服务层(service)

l 数据层(data)

(2)服务层应用依据开发语言进行二级划分

Java

l go

Python

2.应用部署

(1)为便于日志数据分类清洗、过滤、存储应用服务时要对服务打上标签,标识应用的日志类型,标签key:openkube.deepexi.cloud/logtype

(2)应用标签规则

l 接入层、数据层以服务名称打标:ngnix、mysql

l 服务层依据服务开发语言打标:java、go、python

以java应用程序标签为例:

图片3.png

(3)标签表现:

 

图片4.png

 

3.输出格式openkube日志规范

方便日志数据清洗、过滤、多行合并日志输出有必要统一输出格式

l java日志

l go日志格式

l python日志格式

(1)标准格式

   

图片5.png

(2)字段解析

图片6.png

 

4.存储索引

方便日志查询、问题定位日志存储索引由服务层次+日志标签+日志类型+时间(yyyy-mm-dd)组成

a.接入层ngnix服务存储索引

    www-ngnix-accesslogs-yyyy-mm-dd

b.服务层java语言开发应用存储索引

      service-java-logs-yyyy-mm-dd

c.数据层mysql存储索引

      data-mysql-logs-yyyy-mm-dd

e.默认存储索引(针对没有标签的应用)

     k8s-pods-default-logs-yyyy-mm-dd

f.系统日志存储索引

      k8s-pods-systerm-logs-yyyy-mm-dd

:规划

一期

1. 采集pods日志

2. 合并多行日志数据

3. 清洗日志数据并分类存储

4. 支持关键字快速查询日志功能

5. 提供日志查询平台

二期

1. 支持日志指标看板定制

2. 提供基本日志监控看板

 

了解更多产品详情请登录://www.deepexi.com/