cool-admin(midway版)后端日志聚合:ELK栈部署与配置
cool-admin(midway版)后端日志聚合ELK栈部署与配置【免费下载链接】cool-admin-midway cool-admin(midway版)一个很酷的后台权限管理框架模块化、插件化、CRUD极速开发永久开源免费基于midway.js 3.x、typescript、typeorm、mysql、jwt、vue3、vite、element-ui等构建项目地址: https://gitcode.com/gh_mirrors/co/cool-admin-midwaycool-admin(midway版)是一个基于midway.js 3.x构建的模块化后台权限管理框架提供了完善的日志记录机制。本文将详细介绍如何使用ELK栈Elasticsearch、Logstash、Kibana实现cool-admin后端日志的集中收集、存储和可视化分析帮助开发者快速定位系统问题。为什么需要ELK日志聚合在cool-admin(midway版)的日常开发和运维中日志分散在各个服务节点传统查看方式效率低下。ELK栈能够将分散的日志集中管理提供实时搜索、可视化分析和告警功能让开发者轻松掌握系统运行状态。准备工作环境要求Docker及Docker Compose至少4GB内存ELK栈对资源要求较高cool-admin(midway版)项目通过git clone https://gitcode.com/gh_mirrors/co/cool-admin-midway获取项目日志结构cool-admin(midway版)已内置完善的日志记录功能主要日志类型包括系统运行日志记录服务启动、配置加载等信息业务操作日志记录用户登录、数据变更等操作错误日志记录系统异常和错误信息相关日志实现代码可参考任务日志实体src/modules/task/entity/log.ts日志清理任务src/modules/base/job/log.ts日志服务src/modules/task/service/info.tsELK栈部署步骤1. 创建Docker Compose配置文件在项目根目录创建elk-docker-compose.yml文件内容如下version: 3 services: elasticsearch: image: elasticsearch:7.14.0 environment: - discovery.typesingle-node - ES_JAVA_OPTS-Xms512m -Xmx512m ports: - 9200:9200 volumes: - esdata:/usr/share/elasticsearch/data logstash: image: logstash:7.14.0 volumes: - ./logstash/pipeline:/usr/share/logstash/pipeline ports: - 5044:5044 depends_on: - elasticsearch kibana: image: kibana:7.14.0 ports: - 5601:5601 depends_on: - elasticsearch volumes: esdata:2. 配置Logstash管道创建logstash/pipeline/logstash.conf文件配置日志处理规则input { tcp { port 5044 codec json_lines } } filter { json { source message } date { match [timestamp, ISO8601] } } output { elasticsearch { hosts [elasticsearch:9200] index cool-admin-logs-%{YYYY.MM.dd} } stdout { codec rubydebug } }3. 启动ELK服务执行以下命令启动ELK栈docker-compose -f elk-docker-compose.yml up -dcool-admin日志配置1. 安装日志传输依赖npm install midway-logger-logstash --save2. 配置日志输出修改src/config/config.default.ts文件添加Logstash日志输出配置import { MidwayConfig } from midwayjs/core; export default { // ...其他配置 logger: { transports: { logstash: { type: logstash, options: { host: localhost, port: 5044, mode: tcp, codec: json_lines, }, }, }, }, } as MidwayConfig;3. 使用日志服务cool-admin(midway版)已集成日志服务可直接在控制器和服务中使用import { Inject, Provide } from midwayjs/decorator; import { ILogger } from midwayjs/logger; Provide() export class UserService { Inject() logger: ILogger; async getUserInfo(id: number) { this.logger.info(获取用户信息: ${id}); // ...业务逻辑 } }相关实现可参考任务服务日志src/modules/task/service/local.ts翻译服务日志src/modules/base/service/translate.tsKibana日志可视化1. 访问Kibana控制台打开浏览器访问http://localhost:5601首次登录需要创建索引模式进入Management Index Patterns创建索引模式cool-admin-logs-*选择时间字段timestamp2. 创建日志仪表板进入Discover查看日志数据保存常用搜索条件进入Dashboard创建自定义仪表板添加日志数量趋势图、错误类型饼图等可视化组件常见问题解决日志无法发送到Logstash检查Logstash服务是否正常运行docker-compose -f elk-docker-compose.yml logs logstash确认cool-admin配置中的Logstash主机和端口是否正确检查服务器防火墙是否开放5044端口Elasticsearch启动失败确保系统内存至少4GB检查Elasticsearch日志docker-compose -f elk-docker-compose.yml logs elasticsearch尝试删除数据卷后重新启动docker volume rm elk_esdata总结通过ELK栈与cool-admin(midway版)的集成我们实现了日志的集中管理和可视化分析。这不仅提高了问题排查效率还为系统监控和性能优化提供了数据支持。结合cool-admin已有的日志模块如src/modules/base/middleware/log.ts和src/modules/task/controller/admin/info.ts可以构建一个完整的日志生态系统。建议在生产环境中进一步优化ELK配置如增加Elasticsearch集群、配置日志轮转策略和设置告警规则以确保日志系统的稳定运行。【免费下载链接】cool-admin-midway cool-admin(midway版)一个很酷的后台权限管理框架模块化、插件化、CRUD极速开发永久开源免费基于midway.js 3.x、typescript、typeorm、mysql、jwt、vue3、vite、element-ui等构建项目地址: https://gitcode.com/gh_mirrors/co/cool-admin-midway创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考