@devskeo/ward-agent 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -0
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# @devskeo/ward-agent
|
|
2
|
+
|
|
3
|
+
[Ward](https://github.com/addios4u/ward) 서버 모니터링 시스템의 에이전트 패키지입니다.
|
|
4
|
+
|
|
5
|
+
모니터링 대상 서버에 설치하면 CPU, 메모리, 디스크, 네트워크 등 시스템 메트릭을 수집하고, 애플리케이션 로그를 Ward 서버로 실시간 전송합니다.
|
|
6
|
+
|
|
7
|
+
<a href="https://www.buymeacoffee.com/addios4u" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="36"></a>
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
## 아키텍처
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
[ward-agent] ──메트릭/로그──▶ [Ward 서버] ◀──WebSocket──▶ [웹 대시보드]
|
|
15
|
+
(이 패키지) (중앙 서버) (브라우저)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
에이전트는 각 모니터링 대상 서버에 설치하고, Ward 서버는 별도 서버에서 Docker로 운영합니다.
|
|
19
|
+
|
|
20
|
+
## 설치
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g @devskeo/ward-agent
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 빠른 시작
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Ward 서버에 연결하고 에이전트 시작
|
|
30
|
+
ward start http://your-ward-server:4000
|
|
31
|
+
|
|
32
|
+
# 상태 확인
|
|
33
|
+
ward status
|
|
34
|
+
|
|
35
|
+
# 중지
|
|
36
|
+
ward stop
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
에이전트를 시작하면 Ward 대시보드 서버 목록에 자동으로 등록됩니다.
|
|
40
|
+
|
|
41
|
+
## 명령어
|
|
42
|
+
|
|
43
|
+
### `ward start <서버URL>`
|
|
44
|
+
|
|
45
|
+
에이전트를 백그라운드 데몬으로 시작합니다.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ward start http://192.168.1.100:4000
|
|
49
|
+
|
|
50
|
+
# 서버 그룹명 지정
|
|
51
|
+
ward start http://192.168.1.100:4000 --name production
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
| 옵션 | 설명 |
|
|
55
|
+
|------|------|
|
|
56
|
+
| `--name <그룹명>` | 서버 그룹명 (대시보드에서 서버를 그룹으로 묶어 표시) |
|
|
57
|
+
|
|
58
|
+
Linux 환경에서는 시작 시 systemd 서비스로 자동 등록되어 서버 재부팅 후에도 자동 실행됩니다.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### `ward stop`
|
|
63
|
+
|
|
64
|
+
실행 중인 에이전트를 중지합니다.
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
ward stop
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### `ward status`
|
|
73
|
+
|
|
74
|
+
에이전트 실행 상태를 확인합니다.
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ward status
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
에이전트 상태: 실행 중
|
|
82
|
+
PID: 12345
|
|
83
|
+
서버: http://192.168.1.100:4000
|
|
84
|
+
메트릭 수집 주기: 30초
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### `ward config show`
|
|
90
|
+
|
|
91
|
+
현재 에이전트 설정을 출력합니다.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
ward config show
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### `ward service add <이름>`
|
|
100
|
+
|
|
101
|
+
로그를 수집할 서비스를 등록합니다.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 프로세스 실행 및 stdout/stderr 수집
|
|
105
|
+
ward service add my-api --exec "node /app/index.js"
|
|
106
|
+
|
|
107
|
+
# 로그 파일 감시
|
|
108
|
+
ward service add nginx --log /var/log/nginx/access.log
|
|
109
|
+
|
|
110
|
+
# 여러 로그 파일 감시
|
|
111
|
+
ward service add nginx --log /var/log/nginx/access.log --log /var/log/nginx/error.log
|
|
112
|
+
|
|
113
|
+
# systemd 유닛 로그 수집
|
|
114
|
+
ward service add nginx --journal nginx.service
|
|
115
|
+
|
|
116
|
+
# Docker 컨테이너 로그 수집
|
|
117
|
+
ward service add my-container --docker my-container-name
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
| 옵션 | 설명 |
|
|
121
|
+
|------|------|
|
|
122
|
+
| `--exec <명령어>` | 명령어를 실행하고 stdout/stderr 수집 (자동 재시작) |
|
|
123
|
+
| `--log <경로>` | 로그 파일 tail 감시 |
|
|
124
|
+
| `--journal <유닛>` | systemd journalctl 로그 수집 |
|
|
125
|
+
| `--docker <컨테이너>` | Docker 컨테이너 로그 수집 |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
### `ward service remove <이름>`
|
|
130
|
+
|
|
131
|
+
등록된 서비스를 제거합니다.
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
ward service remove my-api
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### `ward service list`
|
|
140
|
+
|
|
141
|
+
등록된 서비스 목록을 출력합니다.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ward service list
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
등록된 서비스 목록:
|
|
149
|
+
────────────────────────────────────────────────────────────
|
|
150
|
+
my-api [exec] node /app/index.js
|
|
151
|
+
nginx [file] /var/log/nginx/access.log
|
|
152
|
+
────────────────────────────────────────────────────────────
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 로그 수집 방식
|
|
156
|
+
|
|
157
|
+
| 방식 | 옵션 | 설명 |
|
|
158
|
+
|------|------|------|
|
|
159
|
+
| `exec` | `--exec` | 명령어 실행 후 stdout/stderr 수집. 프로세스 종료 시 자동 재시작 |
|
|
160
|
+
| `file` | `--log` | 로그 파일 tail. 로테이션 자동 감지 |
|
|
161
|
+
| `journal` | `--journal` | systemd journalctl 스트리밍 |
|
|
162
|
+
| `docker` | `--docker` | Docker 컨테이너 로그 스트리밍 |
|
|
163
|
+
|
|
164
|
+
## Ward 서버 설치
|
|
165
|
+
|
|
166
|
+
Ward 서버는 Docker Compose로 간단하게 설치할 수 있습니다.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
git clone https://github.com/addios4u/ward.git
|
|
170
|
+
cd ward
|
|
171
|
+
cp .env.sample .env
|
|
172
|
+
# .env 파일에서 비밀번호와 설정을 변경하세요
|
|
173
|
+
pnpm docker:start
|
|
174
|
+
pnpm start
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
→ [Ward GitHub](https://github.com/addios4u/ward) | [상세 설치 가이드](https://github.com/addios4u/ward#빠른-시작)
|
|
178
|
+
|
|
179
|
+
## 라이선스
|
|
180
|
+
|
|
181
|
+
[MIT](https://github.com/addios4u/ward/blob/main/LICENSE)
|