# log-collect-ai-analytics **Repository Path**: phpjc/log-collect-ai-analytics ## Basic Information - **Project Name**: log-collect-ai-analytics - **Description**: 日志收集智能分析系统 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2024-07-15 - **Last Updated**: 2025-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: PHP, Go语言, Kafka, ElasticSearch, etcd ## README # log-collect-ai-analytics #### 介绍 日志收集智能分析系统-LCA - 快速部署:部署丝滑,管理方便,有web后台管理。 - 高效的数据采集:LCA 支持多种数据源,无论是服务器日志、应用日志还是网络设备日志,都能一键配置,快速部署。 - 灵活的数据处理:比起传统的elk更加灵活,而且还集成了日志分析和告警,内置强大的数据处理功能,包括过滤、聚合、关联等,让您轻松应对复杂的数据处理需求,除了按配置好的目录收集日志还提供了api接口实时调用,吞吐率高。 - 直观的数据可视化:通过丰富的图表和仪表板,LCA 让数据分析变得更加简单直观,让您一目了然地了解业务状况。 - 智能告警机制:实时监控关键指标,一旦发现异常立即触发告警,确保问题第一时间得到解决。 - 安全可靠:web管理后台访问控制策略,保障您的数据安全无忧。 #### 软件架构 ![输入图片说明](whiteboard_exported_image%20(1).png) 通过在运维平台上配置日志收集项,或者通过api接口调用推送日志,logagent从etcd中获取要收集的日志信息从业务服务器读取日志信息,发往kafka,logtransfer负责从kafka读取日志,写入到Elasticsearch中,通过Kibana进行日志检索。loganalysis将安装规则分析日志,将告警,报错日志信息推给企业微信。 1. 可实时收集常用的软件的日志,比如nginx,项目系统,当每次添加一个需要收集的日志文件时可以实时进行收集,还可以实时收集指定目录下所有按时间切分的日志例如:/logs/2024-07-01.log,/admin/lum-2024-07-02.log 2. 可以通过api调用主动推送日志到日志分析系统(吞吐率高) 3. 可以对收集的日志进行分析,智能分析,然后按规则告警(nginx状态不是200,php文件报错) 4. 实现如阿里sls一般查询日志 #### 安装教程 `视频教程 https://www.bilibili.com/video/BV1R7pRebEis/?vd_source=34dd01124a8128710503a4608cdb4584` `首先下载 git clone https://gitee.com/phpjc/log-collect-ai-analytics.git` 1. etcd `cd docker/etcd ` `docker-compose up -d` 2. MySQL `cd docker/mysql ` `docker-compose up -d` `账号:root,密码:max2024` `导入logmanager.sql` 3. Redis `cd docker/redis ` `docker-compose up -d` 4. Elasticsearch 创建映射目录 `mkdir -p /data/backups/es 给足够的权限 如果不知道什么权限就 chmod 777 es` `mkdir -p /data/es01/data 给足够的权限 如果不知道什么权限就 chmod 777 data` `mkdir -p /data/es02/data 给足够的权限 如果不知道什么权限就 chmod 777 data` `记得修改 docker-compose.yaml 里面的ES_JAVA_OPTS=-Xms256m -Xmx256m,ELASTICSEARCH_HOSTS=http://172.16.0.70:9200 按照自己实际情况` `cd docker/elasticsearch ` `docker-compose up -d` 5. Kafka `cd docker/kafka ` `docker-compose up -d` #### 启动教程 1. 启动后台管理 【先修改好logManager/conf/app.conf】文件 监听端口可修改 `cd cmd/logManager` `nohup ./logmanager & ` `账号:admin 密码:admin` 2. 启动接口 【先修改好etc/config.ini】监听8086端口固定了 `cd cmd/api` `nohup ./api & ` 3. 启动收集日志【先修改好etc/config.ini】 `cd cmd/logAgent` `nohup ./logagent & ` 4. 启动消费【先修改好etc/config.ini】 `cd cmd/logTransfer` `nohup ./logtransfer &` 5. 启动日志分析【先修改好etc/config.ini】 `cd cmd/analysis` `nohup ./analysis &` #### 使用说明 - 日志收集 通过把需要收集的日志文件或者日志文件通配符配置到etcd,logAgent会实时自动收集好需要收集的日志。 [ {"path":"/data/wwwlogs/preapi_maxengine_cn_access_nginx.log","topic":"ai_nginx"}, {"path":"/data/wwwroot/maxengine/storage/logs/lumen-Y-M-D.log","topic":"ai_api"} ] - Y年 M月 D日 H时 可以随意组合 列如 需要收集的日志目录为 /logs/202408/15/12.log 可以这样标识:/logs/YM/D/H.log - api调用 通过调用 http://msgapi.c4eee.cn/send 这个接口可以实时把日志写入分析系统当中 事例:curl -X POST "http://msgapi.c4eee.cn/send" -H "Content-Type: application/x-www-form-urlencoded" -d "topic=ai_api&data=你的日志内容" - topic 必须是系统已经配置好的cmd/logTransfer/etc/config.ini topic = ai_nginx,ai_api - data 日志内容可以是任意字符串,如果是json字符串 {"msg":"这是一个隐藏的功能"} 可以定义一个msg 字段会被单独解析跟阿里云sls日志一样 1. 登录 演示地址 服务器配置2核8G 轻量应用 大家手下留情拜托🙏🏻 如果所有的程序都部署在一台服务器建议 2核8G 起步 http://manage.c4eee.cn/admin/kibana 账号:admin 密码:admin ![输入图片说明](WeChatc3279c2e33cf2aeed49ce7cae5a1fe2e.jpg) 2. 配置收集 ![输入图片说明](WeChat5ed89030e1c92ffb4b9ad0925502eea9.jpg) 3. 分析查询 ![输入图片说明](WeChat726b465dff44f60ebabc6e9423700f12.jpg) 4. 告警 ![输入图片说明](image.png) #### 备注 本项目免费使用,已经帮助很多人搭建了属于自己公司的日志分析系统,技术支持联系WX:j13925090458