# zero-observer
**Repository Path**: lucky_cube/zero-observer
## Basic Information
- **Project Name**: zero-observer
- **Description**: 一个开箱即用的一站式 Java 应用日志观测工具,无需各种复杂繁琐的配置,使用门槛低。
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2025-07-07
- **Last Updated**: 2025-07-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 介绍
Java 应用开发时,服务器上的日志往往是以日志文件的形式存在。在日常维护时,通常需要将日志信息实现可视化查询。
ELK、EFK 等是优秀的日志可视化查询解决方案。不过对于部分开发者来说,日志的采集配置与日志可视化配置是一个比较繁琐的过程。
为此我们希望通过一些低门槛的方式,实现日志的自动采集与日志可视化查询。
zero-observer 依托于 [zero-log](https://gitee.com/kuafucv/zero-log) 的自动化日志采集插件,实现接收 Java 应用上报的日志数据,并提供开箱即用的日志可视化检索功能,极大降低了 Java 应用日志可视化检索的门槛。
# 软件架构

# 快速接入
## 安装教程
> zero-observer 数据存储使用的是 mysql 与 elasticsearch,mysql 存储的是系统数据,elasticsearch 存储的是日志数据。
> 所以需要自行安装 mysql 与 elasticsearch。
### Mysql 初始化脚本
创建数据库:zero_observer,执行下面建表语句。
```mysql
CREATE TABLE `app_log_growth_trend` (
`id` bigint(20) NOT NULL,
`create_time` datetime NOT NULL,
`app` varchar(255) NOT NULL,
`env` varchar(50) NOT NULL,
`level` varchar(10) NOT NULL,
`statistic_time` datetime NOT NULL,
`log_count` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `app_log_total_growth_trend` (
`id` bigint(20) NOT NULL,
`create_time` datetime NOT NULL,
`statistic_time` datetime NOT NULL,
`log_count` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### Docker 部署
```shell
# 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/kuafucv/zero-observer:0.0.1
# 启动容器
docker run -itd -p 8080:8080 --name zero-observer \
-e ES_IP=127.0.0.1 \
-e ES_PORT=9200 \
-e ES_USERNAME=es \
-e ES_PASSWORD=es \
-e MYSQL_IP=127.0.0.1 \
-e MYSQL_PORT=3306 \
-e MYSQL_USERNAME=root \
-e MYSQL_PASSWORD=123456 \
registry.cn-hangzhou.aliyuncs.com/kuafucv/zero-observer:0.0.1
```
> 参数解析:
> - ES_IP:elasticsearch 的 ip
> - ES_PORT:elasticsearch restapi 的端口
> - ES_USERNAME:elasticsearch 用户名,无则不填即可
> - ES_PASSWORD:elasticsearch 密码,无则不填即可
> - MYSQL_IP:mysql 的ip
> - MYSQL_PORT:mysql 端口
> - MYSQL_USERNAME 用户名
> - MYSQL_PASSWORD 密码
### Jar 包部署
下载 zero-observer.jar,start 启动器,application.yml 配置文件,修改 application.yml 中 es 与 mysql 的配置。
```shell
chmod -R 777 start
./start java -jar zero-observer.jar
```
> 默认 server.port=9999
### 日志上报接口
>/log/report
该接口是无缝对接 zero-log 发送的日志数据的接口,Java 应用在接入 zero-log 时,添加的 appender 需要将该地址配置进去。
## Java 应用日志接入
Java 应用引入 [zero-log](https://gitee.com/kuafucv/zero-log) 即可。
### 1. 引入 maven 依赖
```xml
io.github.kuafucv
zero-log
0.0.5
```
### 2. 配置 logback-spring.xml
```xml
${FILE_LOG_PATTERN}
${FILE_LOG_CHARSET}
http://ip:port/log/report
true
${app_name}
${env}
3
1000
1000
8
1024
```
### 3. 日志观测
启动 Java 服务,等待日志自动上报至 zero-observer即可。
## 系统功能
### 仪表盘

### 应用日志

### 应用控制台日志

### 应用日志查询

### 应用日志详情

## 联系我们

## 赞助支持

