一飞开源
阅读603

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

滴滴LogiAM来源于滴滴多年来大量的运维实践经验。经历过多方考验,对于大规模Agent日志采集治理管控及巡检诊断已经沉淀出一套完善的解决方案。在云原生时代背景下,LogiAM以“应用/服务”为采集粒度,满足了从业务层面创建采集任务的需求。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

四、功能概述

用户体验地图

  • 主机/容器管理:用于维护主机、容器信息至系统(含:容器-主机关系)
  • 服务管理:用于维护服务信息至系统(含:服务-主机、服务-容器关系)
  • 日志接收端管理:用于维护Agent上报的数据流、指标流、错误日志流需要写入的下游接收端信息(目前接收端类型仅支持kafka)
  • Agent管理:用于维护Agent信息(含:Agent指标流、错误日志流对应下游的接收端信息、Agent限流信息等) ,Agent被部署、启动后,会自动向管理平台进行注册,注册成功后,即可进行对应管理,注意:Agent注册前,请在平台维护好Agent宿主机信息
  • 日志采集任务管理:用于面向服务配置采集任务,配置好的采集任务通过服务找到部署该服务的主机/容器集,针对采集这些主机、容器的Agent集,进行日志采集任务下发
  • Agent指标查看:用于查看Agent运行时全景指标
  • 日志采集任务指标查看:用于查看日志采集任务在各Agent上运行时全景指标
  • Agent健康度巡检:基于Agent运行时指标对Agent是否运行健康进行检查
  • 日志采集任务健康度巡检:基于日志采集任务在各Agent运行时指标对日志采集任务是否运行健康进行检查

核心优势

  • 稳定可靠的采集引擎:基于滴滴内部多年来沉淀的经验,在多年、数千个应用、数十万台机器,各核心业务场景的锤炼打磨下,在采集业务层面足够稳定成熟
  • 便捷的日志采集配置能力:通用场景下尽量少的配置,配置所见即所得
  • 高效的问题诊断、定位能力:具有卓越的指标诊断体系,将Agent、日志采集任务运行时状态全景数字化呈现,实时监控Agent及采集任务健康度,提供故障诊断功能并开具相应诊断报告,可高效快捷的实现问题定位
  • 强大的运维能力:基于滴滴多年各核心业务、海量Agent与采集任务的运维经验,对于超大规模Agent与采集任务的治理管控及巡检诊断已经沉淀出一套完善的解决方案。实时查看运维任务,便于运维人员把控运维任务进度及状态

五、技术选型

滴滴Logi-Agent架构图

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

Agent Manager 本地开发环境搭建

1 环境准备

1.1 环境依赖

  • Java 8+
  • Maven 3.5+
  • Node 14.15.1 (前端环境)
  • Mysql 5.7+ (数据存储)
  • kafka 2.3+
  • IDEA

1.2 数据库初始化

执行Agent-Manager源码包中的create_mysql_table.sql这个sql文件,初始化mysql表。

# 示例:
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql

2 本地启动

先进入system-metrcis项目主目录,执行mvn clean install -DskipTests命令。

因为本地直接使用IDEA启动agent-manager项目,并不会将前端资源文件生成,因此在第一次启动之前,需要在agent-manager项目主目录执行一下mvn clean install -DskipTests命令,将前端的静态资源文件打包出来。

mvn install执行完成以后,修改application.yml配置文件,然后点击启动即可。

本地启动成功之后,访问http://localhost:8080。

具体的IDEA启动及配置见图:

IDEA 打包

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

修改 Agent-Manager 配置文件

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

启动 Agent-Manager

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

Agent-Manager 浏览器访问

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

3 Agent-Manager 简要介绍

3.1 整体架构

[开源]运维经验沉淀,面向云原生的一站式日志采集配置及运维平台

3.2 模块介绍

模块

说明

详细说明

agent-manager-console

前端模块

Agent-Manager前端相关的代码

agent-manager-common

公共模块

存放公共内容,包括POJO类、常量/枚举类、工具类等

agent-manager-core

核心模块

Agent-Manager的核心模块,存放最基本及最重要的功能,比如采集任务的增删改查等

agent-manager-persistence

DAO 模块

主要是操作MySQL、ElasticSearch的相关类

agent-manager-extends

扩展模块

非核心模块,可根据实际需要进行扩展

agent-manager-thirdpart

扩展模块-默认第三方扩展模块

如元数据(主机、容器、Pod、服务)的获取,默认基于标准k8s,也可以对接自己公司内部的容器管理平台

agent-manager-remote

远程访问模块

用于与其他系统进行交互,例如kafka-manager、对象存储等

agent-manager-task

定时任务模块

基于MySQL通过抢占方式实现的一个定时任务的负载均衡以及定时任务的执行模块,用于执行既有定时任务,比如日志采集任务、Agent的健康度巡检

agent-manager-rest

web 模块

接受外部 Rest Http 请求及进行相关控制

Log-Agent 本地开发环境搭建

1 环境准备

1.1 环境依赖

  • Java 8+
  • Maven 3.5+
  • kafka 2.3+
  • IDEA

注意:在搭建Log-Agent本地开发环境前,请先对Agent-Manager工程进行Maven打包、安装。

2 本地启动

修改settings.properties配置文件,将log-agent-node项目中的

com.didichuxing.datachannel.agent.node.Agent类作为启动类运行即可,如下图:

本地启动成功之后,访问http://localhost:8080。

六、源码地址

源码下载

源码已同步于GitCoffee,账户打通公测中,一飞开源账号授权登录如有问题,可独立注册GitCoffee新账号。问题反馈,请关注微信公众号:一飞开源。【一飞开源,正在致力于打造活力开源社区,共建开源新生态!】

关注下面的标签,发现更多相似文章

一飞开源
发布了 篇专栏 · 获取点赞 · 获取阅读

评论

查看更多
相关推荐
关于作者
一飞开源
获得点赞 100
文章被阅读 1000
相关文章