一款比ELK更强大,更好用的日志收集分析告警系统

介绍

日志收集智能分析系统-LCA

  • 快速部署:部署丝滑,管理方便,有web后台管理。
  • 高效的数据采集:LCA 支持多种数据源,无论是服务器日志、应用日志还是网络设备日志,都能一键配置,快速部署。
  • 灵活的数据处理:比起传统的elk更加灵活,而且还集成了日志分析和告警,内置强大的数据处理功能,包括过滤、聚合、关联等,让您轻松应对复杂的数据处理需求,除了按配置好的目录收集日志还提供了api接口实时调用,吞吐率高。
  • 直观的数据可视化:通过丰富的图表和仪表板,LCA 让数据分析变得更加简单直观,让您一目了然地了解业务状况。
  • 智能告警机制:实时监控关键指标,一旦发现异常立即触发告警,确保问题第一时间得到解决。
  • 安全可靠:web管理后台访问控制策略,保障您的数据安全无忧。

LCA日志系统2.0重磅来袭

LCA日志系统官网 下载程序

软件架构

输入图片说明

 通过在运维平台上配置日志收集项,或者通过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一般查询日志
安装教程

视频教程 一款比ELK更强大,更好用的日志收集分析告警系统_哔哩哔哩_bilibili

  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.去官网下载程序

2.修改配置文件

  路径:/opt/lca_sys/manifest/config/config.yaml

server:
  address:     ":8808"
  serverRoot: "resource/public"
  dumpRouterMap: false
  routeOverWrite: true
  openapiPath: "/api.json"
  swaggerPath: "/swagger"
  NameToUriType: 3
  maxHeaderBytes: "20KB"
  clientMaxBodySize: "50MB"
  # Logging配置
  logPath: "resource/log/server"                 # 日志文件存储目录路径,建议使用绝对路径。默认为空,表示关闭
  logStdout: true               # 日志是否输出到终端。默认为true
  errorStack: true               # 当Server捕获到异常时是否记录堆栈信息到日志中。默认为true
  errorLogEnabled: true               # 是否记录异常日志信息到日志中。默认为true
  errorLogPattern: "error-{Ymd}.log"  # 异常错误日志文件格式。默认为"error-{Ymd}.log"
  accessLogEnabled: true              # 是否记录访问日志。默认为false
  accessLogPattern: "access-{Ymd}.log" # 访问日志文件格式。默认为"access-{Ymd}.log"

logger:
  path: "resource/log/run"
  file: "{Y-m-d}.log"
  level: "all"
  stdout: true

# Database.
database:
  logger:
    level:   "all"
    stdout:  true
    Path: "resource/log/sql"

  default:
    link:   "mysql:root:max2024@tcp(172.16.0.70:3306)/lca?charset=utf8mb4&parseTime=true&loc=Local"
    debug:  true
    charset: "utf8mb4" #数据库编码
    dryRun: false #空跑
    maxIdle: 10 #连接池最大闲置的连接数
    maxOpen: 10 #连接池最大打开的连接数
    maxLifetime: "30s" #(单位秒)连接对象可重复使用的时间长度

gfToken:
  cacheKey: "gfToken:"
  timeOut: 10800
  maxRefresh: 5400
  multiLogin: true
  encryptKey: "49c54195e750b04e74a8429b17896586"
  cacheModel: "redis"  #缓存模式 memory OR redis OR dist
  distPath: "./resource/data/distTokenDb" #使用磁盘缓存时配置数据缓存的目录
  excludePaths:
    - "/api/v1/system/login"


# Redis 配置示例
redis:
  # 单实例配置
  default:
    address: 172.16.0.70:6379
    db: 14
    idleTimeout: "60s" #连接最大空闲时间,使用时间字符串例如30s/1m/1d
    maxConnLifetime: "90s" #连接最长存活时间,使用时间字符串例如30s/1m/1d
    waitTimeout: "60s" #等待连接池连接的超时时间,使用时间字符串例如30s/1m/1d
    dialTimeout: "30s" #TCP连接的超时时间,使用时间字符串例如30s/1m/1d
    readTimeout: "30s" #TCP的Read操作超时时间,使用时间字符串例如30s/1m/1d
    writeTimeout: "30s" #TCP的Write操作超时时间,使用时间字符串例如30s/1m/1d
    maxActive: 100
    pass: "max2024"

system:
  notCheckAuthAdminIds: [1,2,31]  #无需验证后台权限的用户id
  dataDir: "./resource/data"
  cache:
    model: "redis"  #缓存模式 memory OR redis OR dist
    distPath: "./resource/data/distCacheDb" #使用磁盘缓存时配置数据缓存的目录
    prefix: "gFastV3Cache:" #缓存前缀

#casbin配置
casbin:
  modelFile: "./resource/casbin/rbac_model.conf"
  policyFile: "./resource/casbin/rbac_policy.csv"


# CLI.
gfcli:
  gen:
    dao:
      - link:            "mysql:root:max2024@tcp(172.16.0.70:3306)/lca"
        tables:          "es_log_topic"
        removePrefix:    "gf_"
        descriptionTag:  true
        noModelComment:  true
        path: "./internal/app/system"

# ETCD
etcd:
  endpoints:
    - "172.16.0.70:2379"
  dialTimeout: "10s"

# Elasticsearch 配置
elasticsearch:
  endpoints: "http://172.16.0.70:9200"
  timeout: "10s"

#授权码
auth:
  order_no: "2025072099555055"

按照自己的情况修改好,database的配置,redis配置,etcd配置,elasticsearch配置,授权码

3.导入数据库

路径:/opt/lca_sys/resource/data/lca.sql

4.授权码

获取授权码

就是订单编号

5.到目录下启动程序

nohup ./lca &

可以先直接 ./lca 看是否有报错

6.配置Nginx

server {
    listen 80;
   
    server_name testlca.c4eee.cn;


    access_log /www/wwwlogs/lca_access_nginx.log;
    error_log /www/wwwlogs/lca_access_error_nginx.log;

   # 静态资源根目录(指向 dist 文件夹)
    root /opt/lca_sys/dist;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html; # 支持 Vue Router 的 history 模式
    }

    # 处理静态资源(JS/CSS/图片等)
    location /assets/ {
        alias /opt/lca_sys/dist/assets/;
        expires 1y;
        add_header Cache-Control "public";
    }
  
   location /api {
      proxy_pass http://127.0.0.1:8808; #后端接口地址
      proxy_set_header Host $proxy_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Authorization $http_authorization;

    }

    # 禁止访问 .git 等敏感文件
    location ~ /\.(?!well-known) {
       deny all;
    }


}

   使用说明

添加好需要收集的日志主机路径后便可部署自动收集日志了

[{"path": "/www/wwwlogs/lca_access_nginx.log", "topic": "nginx"}, {"path": "/opt/lca_sys/resource/log/server/access-{Y}{M}{D}.log", "topic": "lca_project"}, {"path": "/opt/lca_sys/resource/log/run/{Y}-{M}-{D}.log", "topic": "lca_project_01"}]

日志路径可以是固定的也可以填写占位符系统会自动替换,可轻松收集任意形式的日志路径。

{Y} 替换大年 例如:2025

{y} 替换小年 例如:25

{M} 替换月 例如:01

{m} 替换月 例如:1

{D} 替换日 例如:01

{d} 替换日 例如:1

{H} 替换成小时

日志自动收集到日志库了

当然我们也提供 api 接口给程序主动调用,我们调用方式非常简单。

api调用 通过调用http://192.168.10.118:8086/send这个接口可以实时把日志写入分析系统当中 事例:curl -X POST "http://自己的地址/send" -H "Content-Type: application/x-www-form-urlencoded" -d "topic=ai_api&data=你的日志内容"

轻轻松松开发人员就可以对接api 投递日志了,吞吐率非常高。

配置告警

正则匹配报警规则

按照要求配置好告警规则通知方式

企业微信webhook通知

邮箱通知

权限管理

操作日志

日志库库可设置保留天数,过期的数据会自动清除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值