AccessLog| 一款开源的日志分析系统

该文章已生成可运行项目,
前言
ClkLog作为分析系列产品中的前端数据分析系统,通过采集前端应用数据进行用户行为分析。其社区版从23年9月发布至今已有近一年,商业版也上线快半年,感谢大家一直以来的关注和支持,ClkLog会继续做好产品升级与服务,让更多的小伙伴能够顺利且满意地使用ClkLog。在迭代ClkLog的同时,我们研发的后端数据(Web日志) 分析系统- “AccessLog”今天也正式与大家见面,一起随我来了解下吧。

AccessLog的定位

AccessLog是一款轻量级Web日志分析的开源软件,技术栈选型与ClkLog相同,采用Java语言开发,后端通过OLAP类型数据库ClickHouse/ByConity确保数据的全面性和实时性。

AccessLog包含了多种基础统计,例如访问量、IP数、流出流量、状态码分析等,可以帮助运维快速监测日志情况,同时还提供了性能分析,通过对页面访问次数与相应耗时的统计分析,可以进行性能问题的诊断与定位,进而优化性能、改善用户体验。

因为AccessLog与ClkLog采用了相同的技术栈,所以如果您已经在使用ClkLog那么集成AccessLog就会更加快捷了。欢迎大家来体验反馈。

产品核心

AccessLog的核心是日志采集、处理、可视化分析。

采集与清洗系统日志,主要通过采集工具(推荐:vector或filebeat)对服务器(如nginx、iis)日志进行采集。

处理系统日志,经过相关服务对采集数据进行处理。

分析系统日志,通过在可视化的日志查询分析界面对服务器日志进行查询分析。

产品亮点

  • 全开源产品、私有化部署更便捷
  • 多模式部署、随业务变化更兼容
  • 多维度分析、数字化运维更高效

技术栈

  • 开发语言:Java
  • 后端:Redis 、Kafka 、Flink
  • 前端:vue、vue-element-admin、element-ui 、echarts
  • 数据库:Clickhouse/ByConity

系统架构

  • 标准模式

  • 快速模式

项目组成

  • 处理服务 【accesslog-processing-sample】: 直接将数据写入clickhouse。
  • 处理服务 【accesslog-processing】: 依托flink,消费kafka数据并存入clickhouse。
  • 统计接口 【accesslog-api】: 提供多维度数据统计接口。
  • 统计展示 【accesslog-ui】:基于 vue-element-admin 实现的统计分析数据界面展示。

功能界面展示

开始使用

欢迎您加入AccessLog社区交流群

扫码添加小秘书备注AccessLog

本文章已经生成可运行项目
### 部署开源日志分析系统 AccessLog 的指南 AccessLog 是一种基于 Nginx 和 ELK(Elasticsearch, Logstash, Kibana)的日志分析系统,主要用于收集、存储、分析和可视化 Web 服务器的访问日志。以下是部署该系统的详细步骤。 #### 1. 安装 ELK Stack ELK Stack 是 AccessLog 系统的核心组件,负责日志的存储、处理和可视化。 - **Elasticsearch**: 负责存储和检索日志数据[^1]。 - **Logstash**: 用于收集、处理和转发日志[^1]。 - **Kibana**: 提供日志数据的可视化界面。 安装 Elasticsearch: ```bash sudo apt update sudo apt install elasticsearch sudo systemctl start elasticsearch sudo systemctl enable elasticsearch ``` 安装 Logstash: ```bash sudo apt install logstash sudo systemctl start logstash sudo systemctl enable logstash ``` 安装 Kibana: ```bash sudo apt install kibana sudo systemctl start kibana sudo systemctl enable kibana ``` #### 2. 配置 Logstash 收集日志 创建一个新的 Logstash 配置文件 `nginx-logstash.conf`,并添加以下内容以解析 Nginx 日志[^2]: ```bash sudo nano /etc/logstash/conf.d/nginx-logstash.conf ``` 配置内容如下: ```plaintext input { beats { port => 5044 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { hosts => ["localhost:9200"] index => "nginx-access-%{+YYYY.MM.dd}" } } ``` 启动 Logstash: ```bash sudo systemctl start logstash sudo systemctl enable logstash ``` #### 3. 配置 Nginx 输出 JSON 格式的日志 为了更好地与 Logstash 集成,需要将 Nginx 的访问日志格式化为 JSON 格式[^3]。 编辑 Nginx 配置文件: ```bash sudo nano /etc/nginx/nginx.conf ``` 在 `http` 块中定义 JSON 格式的日志输出: ```plaintext log_format access_json '{"@timestamp":"$time_iso8601",' '"host":"$server_name",' '"clientip":"$remote_addr",' '"size":$body_bytes_sent,' '"responsetime":$request_time,' '"upstreamtime":"$upstream_response_time",' '"status":"$status",' '"method":"$request_method",' '"url":"$uri",' '"httpversion":"$server_protocol",' '"useragent":"$http_user_agent",' '"referer":"$http_referer"}'; ``` 指定 `access_log` 输出为我们自定义的 JSON 格式: ```plaintext access_log /var/log/nginx/access_json.log access_json; ``` 重启 Nginx 服务以应用更改: ```bash sudo systemctl restart nginx ``` #### 4. 配置 Filebeat 将日志发送到 Logstash Filebeat 是一个轻量级的日志传输工具,负责将 Nginx 日志发送到 Logstash[^2]。 安装 Filebeat: ```bash sudo apt install filebeat ``` 编辑 Filebeat 配置文件: ```bash sudo nano /etc/filebeat/filebeat.yml ``` 配置内容如下: ```yaml filebeat.inputs: - type: log paths: - /var/log/nginx/access_json.log output.logstash: hosts: ["localhost:5044"] ``` 启动 Filebeat: ```bash sudo systemctl start filebeat sudo systemctl enable filebeat ``` #### 5. 配置 Kibana 可视化日志数据 打开浏览器访问 Kibana,默认地址为 `http://<your-server-ip>:5601`。登录后,按照以下步骤配置: - 在 **Management** > **Index Patterns** 中创建一个新的索引模式,例如 `nginx-access-*`。 - 选择时间字段 `@timestamp`。 - 进入 **Discover** 页面查看日志数据。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值