◆ 一、开源项目简介
滴滴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表。
代码语言:javascript复制# 示例: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类作为启动类运行即可。
来源:
https://www.toutiao.com/article/7110957617547280929/?log_from=7c2a443a82a79_1655864191456
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
来都来了,走啥走,留个言呗~
IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!
- 相关推荐
- 推荐文章
- Spring Cloud Alibaba Nacos 2.2.5.Release 的基本使用和采坑问
- 为什么Dapr是比SpringCloud和Istio更优雅的微服务框架?
- ClickHouse原理解析与应用实战
- 一站式问题定位平台,以agent的方式无侵入接入应用
- 技术专家带你彻底掌握线程池
- 基于GF的后台管理系统,完善的权限用户管理,致力于快速高效开发
- Java 工程师相见恨晚的神兵利器和使用技巧
- MySQL 故障诊断:MySQL 占用 CPU 过高问题定位及优化
- 高可用架构之 Sentinel 的降级原理详解
- .NET 6 从0到1使用Docker部署至Linux环境