mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-16 20:00:29 +08:00
8b15445328
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
118 lines
5.0 KiB
Markdown
118 lines
5.0 KiB
Markdown
# 星中心日志分析
|
|
|
|
**Generated:** 2026-04-30
|
|
**Type:** Log collection workspace (not a code repo)
|
|
|
|
## OVERVIEW
|
|
|
|
Production log collection for Cloudwalk elevator access-control system (`elevator-app`) — a Java Spring Boot + Spring Cloud (Consul) microservice backed by MySQL (MyBatis + ShardingSphere), Redis, and Kafka. Logs captured from 3 servers on 2026-04-30.
|
|
|
|
## STRUCTURE
|
|
|
|
```
|
|
日志分析/
|
|
├── 10.0.22.207/ # Server 207, collected 17:11
|
|
│ └── 202604301711/
|
|
│ └── logs-207/
|
|
│ ├── elevator-app.log (116K lines, 16MB)
|
|
│ └── elevator-app-probe.log (15K lines, 3MB)
|
|
├── 10.0.22.208/ # Server 208, collected 17:12
|
|
│ └── 202604301712/
|
|
│ └── logs/
|
|
│ ├── elevator-app.log (198K lines, 31MB)
|
|
│ └── elevator-app-probe.log (14K lines, 2.9MB)
|
|
└── 10.0.22.209/ # Server 209, collected 17:13
|
|
└── 202604301713/
|
|
└── logs/
|
|
├── elevator-app.log (215K lines, 31MB)
|
|
└── elevator-app-probe.log (5.6K lines, 1.1MB)
|
|
```
|
|
|
|
**Naming convention**: `{IP}/{YYYYMMDDHHMM}/logs[-N]/` — IP-based server identification with collection timestamp. Server 207 uses `logs-207` subdirectory (non-standard naming, probable manual renaming).
|
|
|
|
## WHERE TO LOOK
|
|
|
|
| Task | Location | Notes |
|
|
|------|----------|-------|
|
|
| Application startup / bootstrap | `elevator-app.log` lines ~1-100 | Spring Boot startup, profile activation, bean registration |
|
|
| Face recognition events | `elevator-app.log` grep `PERSON_RECORD_UPLOAD` | Person entry/exit with face match scores |
|
|
| Door open events | `elevator-app.log` grep `OPENDOOR_RECORD_UPLOAD` | Door access records with face/token type |
|
|
| Database errors | `elevator-app.log` grep `ERROR` | ~4,200 total ERRORs across all servers |
|
|
| PERSON_LABEL_IDS truncation | `elevator-app.log` grep `Data too long for column` | ~2,200 occurrences — primary blocker |
|
|
| Service discovery / health | `elevator-app-probe.log` | Consul registration, config probes, ribbon status |
|
|
| Elevator dispatch failures | `elevator-app.log` grep `派梯记录推送失败` | Elevator record send failures |
|
|
|
|
## TECH STACK (inferred from logs)
|
|
|
|
| Component | Evidence |
|
|
|-----------|----------|
|
|
| Java / Spring Boot | `ElevatorApplication`, `AnnotationConfigEmbeddedWebApplicationContext` |
|
|
| Tomcat Embedded | `TomcatEmbeddedServletContainer: Tomcat started on port 16112` |
|
|
| Spring Cloud Consul | `ConsulServiceRegistry`, `spring.cloud.consul.host` |
|
|
| MySQL + MyBatis | `AcsRecogRecordMapper`, `it_acs_recog_record`, `SqlSessionTemplate` |
|
|
| ShardingSphere | `ShardingJDBC` references in log |
|
|
| Kafka | Kafka consumer/producer log entries |
|
|
| Redis | Dependency references in bean wiring logs |
|
|
| Spring Cloud Feign | `AcsFeignConfiguration`, Feign client beans |
|
|
|
|
## KEY ERROR PATTERNS
|
|
|
|
### PERSON_LABEL_IDS truncation (2,200+ occurrences)
|
|
|
|
```
|
|
MySQL Data truncation: Data too long for column 'PERSON_LABEL_IDS' at row 1
|
|
→ table: it_acs_recog_record
|
|
→ source: AcsRecogRecordDaoImpl.add() → AcsRecogRecordMapper.add
|
|
→ impact: recognition records with many label IDs fail to persist
|
|
→ suggestion: increase column size (VARCHAR → TEXT) or normalize into junction table
|
|
```
|
|
|
|
### Recognition record save failures
|
|
|
|
```
|
|
c.c.elevator.record.impl.AcsRecogRecordDaoImpl:40 - 保存识别记录失败
|
|
→ same root cause (PERSON_LABEL_IDS truncation)
|
|
```
|
|
|
|
### Elevator dispatch failures
|
|
|
|
```
|
|
cn.cloudwalk.elevator.task.ElevatorRecordSendTask:134 - 派梯记录推送失败
|
|
→ ~468 occurrences across all servers
|
|
→ "失败原因是:{}" — error message is empty, root cause masked
|
|
```
|
|
|
|
## EVENT TYPES OBSERVED
|
|
|
|
| Event Type | Handler | Description |
|
|
|------------|---------|-------------|
|
|
| `PERSON_RECORD_UPLOAD` | `PersonRecordEventHandler` | Face capture → recognition → person record |
|
|
| `OPENDOOR_RECORD_UPLOAD` | `OpenDoorRecordEventHandler` | Door access granted/denied record |
|
|
|
|
## SERVER-SPECIFIC NOTES
|
|
|
|
- **10.0.22.207** — appears to have restarted (2 Tomcat startups in log). Profile: `access-control`
|
|
- **10.0.22.208** — device: `1F高区闸机-右出-134-新`, threshold: 60.0
|
|
- **10.0.22.209** — device: `B1F监控中心`, threshold: 0.9 (much more permissive than 208)
|
|
|
|
## COMMANDS
|
|
|
|
```bash
|
|
# Error count per server
|
|
grep -c "ERROR" */20260430*/logs*/elevator-app.log
|
|
|
|
# Top error types across all servers
|
|
grep -h "ERROR" */20260430*/logs*/elevator-app.log | \
|
|
sed 's/\[.*\] \[.*\] ERROR //' | sort | uniq -c | sort -rn | head -20
|
|
|
|
# Extract all PERSON_LABEL_IDS failures
|
|
grep "Data too long for column 'PERSON_LABEL_IDS'" */20260430*/logs*/elevator-app.log
|
|
```
|
|
|
|
## NOTES
|
|
|
|
- All logs are from 2026-04-30, collected in ~1-hour windows per server
|
|
- `.DS_Store` files present in every directory — macOS artifacts, safe to ignore
|
|
- No code, configs, tests, or build scripts exist in this workspace — this is a data directory only
|
|
- Server 207 subdirectory named `logs-207` instead of `logs` (deviation from 208/209 pattern)
|