Commit 7d61f114c9d48735e7ca4a7c26bccb7d6e2b8c86
1 parent
1f0913bc
查询功能修改;
处理可能出现的bug; 添加接口文档;
Showing
3 changed files
with
469 additions
and
6 deletions
Linux服务器监听运维功能.md
0 → 100644
1 | +# 1. 基础资源占用 | |
2 | + | |
3 | +## 1.1 获取指定module的输出 | |
4 | + | |
5 | +| 调用方式 | 接口地址 | | |
6 | +| ------------ | :-------------------------------------------------------- | | |
7 | +| POST | http://ip:port/occupationOfBasicResources/getInfoByModule | | |
8 | +| Content-Type | application/json;charset=UTF-8 | | |
9 | + | |
10 | +| 请求参数 | | | | | | |
11 | +| ----------- | ------------ | ------ | ---- | ------------------------------------- | | |
12 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
13 | +| module | 功能编码 | string | 是 | | | |
14 | +``` | |
15 | +请求示例 | |
16 | +{ | |
17 | + "module": "disk_partitions" | |
18 | +} | |
19 | +``` | |
20 | + | |
21 | +| 返回结果 | | | | | |
22 | +| -------- | -------- | ------ | -------------------------------------- | | |
23 | +| 参数项 | 名称 | 类型 | 描述 | | |
24 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
25 | +| message | 提示信息 | string | 返回提示信息 | | |
26 | +| data | 返回信息 | string | 200,返回操作成功;其他code对应失败信息 | | |
27 | + | |
28 | +``` | |
29 | +响应示例 | |
30 | +{ | |
31 | + "code": 200, | |
32 | + "message": "操作成功", | |
33 | + "data": []// 对应module返回内容信息 | |
34 | +} | |
35 | +``` | |
36 | + | |
37 | +## 1.2 jar包发布 | |
38 | + | |
39 | +| 调用方式 | 接口地址 | | |
40 | +| ------------ | :------------------------------------------------------ | | |
41 | +| POST | http://ip:port/occupationOfBasicResources/deployJarFile | | |
42 | +| Content-Type | application/json;charset=UTF-8 | | |
43 | + | |
44 | +| 请求参数 | | | | | | |
45 | +| -------- | ------------- | ------ | ---- | -------------------------------------------- | | |
46 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
47 | +| filePath | jar包保存位置 | string | 是 | jar包保存位置 | | |
48 | +| logPath | 日志输出位置 | string | 否 | 默认jar包相同位置名称和jar包文件名相同 | | |
49 | +| user | 用户信息 | string | 否 | 用户信息(权限用, 默认-1, 表示超级管理员权限) | | |
50 | + | |
51 | +``` | |
52 | +请求示例 | |
53 | +{ | |
54 | + "filePath": "/home/liuhaoyu/linuxTest/linuxTest-1.0-SNAPSHOT.jar" | |
55 | +} | |
56 | +``` | |
57 | + | |
58 | +| 返回结果 | | | | | |
59 | +| -------- | -------- | ------ | ------------------------------- | | |
60 | +| 参数项 | 名称 | 类型 | 描述 | | |
61 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
62 | +| message | 提示信息 | string | 返回提示信息 | | |
63 | +| data | 返回信息 | string | 发布包对应的进程id | | |
64 | + | |
65 | +``` | |
66 | +响应示例 | |
67 | +{ | |
68 | + "code": 200, | |
69 | + "message": "操作成功", | |
70 | + "data": { | |
71 | + "taskId" : "12390" | |
72 | + } | |
73 | +} | |
74 | +``` | |
75 | + | |
76 | +## 1.3 获取当前进行中的java服务 | |
77 | + | |
78 | +| 调用方式 | 接口地址 | | |
79 | +| ------------ | :-------------------------------------------------------- | | |
80 | +| POST | http://ip:port/occupationOfBasicResources/getJpsInfo | | |
81 | +| Content-Type | application/json;charset=UTF-8 | | |
82 | + | |
83 | +| 返回结果 | | | | | |
84 | +| -------- | -------- | -------- | ------------------------------- | | |
85 | +| 参数项 | 名称 | 类型 | 描述 | | |
86 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
87 | +| message | 提示信息 | string | 返回提示信息 | | |
88 | +| data | 返回信息 | string | | | |
89 | +| +process | 线程信息 | string[] | 对应的进程信息 | | |
90 | + | |
91 | +``` | |
92 | +响应示例 | |
93 | +{ | |
94 | + "code": 200, | |
95 | + "message": "操作成功", | |
96 | + "data": { | |
97 | + "process": [ | |
98 | + "39921 Jps", | |
99 | + "39864 linuxListener-0.0.1-SNAPSHOT.jar" | |
100 | + ] | |
101 | + } | |
102 | +} | |
103 | +``` | |
104 | + | |
105 | +## 1.4 停止jar包进程 | |
106 | + | |
107 | +| 调用方式 | 接口地址 | | |
108 | +| ------------ | :---------------------------------------------------- | | |
109 | +| POST | http://ip:port/occupationOfBasicResources/killJarTask | | |
110 | +| Content-Type | application/json;charset=UTF-8 | | |
111 | + | |
112 | +| 请求参数 | | | | | | |
113 | +| -------- | -------- | ------ | ---- | ---------------------- | | |
114 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
115 | +| taskId | 进程号 | string | 是 | 需要停止的进程号 | | |
116 | +| user | 用户信息 | string | 是 | 用户信息(做权限控制用) | | |
117 | + | |
118 | +``` | |
119 | +请求示例 | |
120 | +{ | |
121 | + "user": "-1", | |
122 | + "taskId": "37527" | |
123 | +} | |
124 | +``` | |
125 | + | |
126 | +| 返回结果 | | | | | |
127 | +| -------- | -------- | ------ | --------------------------------- | | |
128 | +| 参数项 | 名称 | 类型 | 描述 | | |
129 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
130 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
131 | +| data | 返回信息 | | | | |
132 | + | |
133 | +``` | |
134 | +响应示例 | |
135 | +{ | |
136 | + "code": 200, | |
137 | + "message": "操作成功", | |
138 | + "data": {} | |
139 | +} | |
140 | +``` | |
141 | + | |
142 | + | |
143 | + | |
144 | +# 2. 日志监控 | |
145 | + | |
146 | +## 2.1 设置log文件所在位置信息 | |
147 | + | |
148 | +| 调用方式 | 接口地址 | | |
149 | +| ------------ | :----------------------------------- | | |
150 | +| POST | http://ip:port/logListener/setLogMsg | | |
151 | +| Content-Type | application/json;charset=UTF-8 | | |
152 | + | |
153 | +| 请求参数 | | | | | | |
154 | +| -------- | ---------------- | ------ | ---- | ---------------- | | |
155 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
156 | +| filePath | 日志文件存在位置 | string | 是 | 日志文件存在位置 | | |
157 | + | |
158 | +``` | |
159 | +请求示例 | |
160 | +{ | |
161 | + "filePath": "/home/liuhaoyu/linuxTest.log" | |
162 | +} | |
163 | +``` | |
164 | + | |
165 | +| 返回结果 | | | | | |
166 | +| -------- | ------------- | ------ | --------------------------------- | | |
167 | +| 参数项 | 名称 | 类型 | 描述 | | |
168 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
169 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
170 | +| data | 返回信息 | | | | |
171 | +| +logKey | 监听用日志key | String | 监听用日志key | | |
172 | + | |
173 | +``` | |
174 | +响应示例 | |
175 | +{ | |
176 | + "code": 200, | |
177 | + "message": "操作成功", | |
178 | + "data": { | |
179 | + "logKey": "linuxTest-1.0-SNAPSHOT.log|1575596806840" | |
180 | + } | |
181 | +} | |
182 | +``` | |
183 | + | |
184 | + | |
185 | + | |
186 | +## 2.2 开启日志监控输出 | |
187 | + | |
188 | +| 调用方式 | 接口地址 | | |
189 | +| ------------ | :------------------------------------------ | | |
190 | +| POST | http://ip:port/logListener/startLogListener | | |
191 | +| Content-Type | application/json;charset=UTF-8 | | |
192 | + | |
193 | +| 请求参数 | | | | | | |
194 | +| -------- | ------------- | ------ | ---- | ------------- | | |
195 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
196 | +| logKey | 监听用日志key | string | 是 | 监听用日志key | | |
197 | + | |
198 | +``` | |
199 | +请求示例 | |
200 | +{ | |
201 | + "logKey": "linuxTest-1.0-SNAPSHOT.log|1575596806840" | |
202 | +} | |
203 | +``` | |
204 | + | |
205 | +| 返回结果 | | | | | |
206 | +| -------- | -------- | ------ | --------------------------------- | | |
207 | +| 参数项 | 名称 | 类型 | 描述 | | |
208 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
209 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
210 | +| data | 返回信息 | | | | |
211 | + | |
212 | +``` | |
213 | +响应示例 | |
214 | +{ | |
215 | + "code": 200, | |
216 | + "message": "操作成功", | |
217 | + "data": null | |
218 | +} | |
219 | +``` | |
220 | + | |
221 | + | |
222 | + | |
223 | +## 2.3 获取日志的输出内容 | |
224 | + | |
225 | +| 调用方式 | 接口地址 | | |
226 | +| ------------ | :-------------------------------------- | | |
227 | +| POST | http://ip:port/logListener/getLogOutput | | |
228 | +| Content-Type | application/json;charset=UTF-8 | | |
229 | + | |
230 | +| 请求参数 | | | | | | |
231 | +| -------- | ------------- | ------ | ---- | ------------- | | |
232 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
233 | +| logKey | 监听用日志key | string | 是 | 监听用日志key | | |
234 | + | |
235 | +``` | |
236 | +请求示例 | |
237 | +{ | |
238 | + "logKey": "linuxTest-1.0-SNAPSHOT.log|1575596806840" | |
239 | +} | |
240 | +``` | |
241 | + | |
242 | +| 返回结果 | | | | | |
243 | +| -------- | -------- | ------ | --------------------------------- | | |
244 | +| 参数项 | 名称 | 类型 | 描述 | | |
245 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
246 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
247 | +| data | 返回信息 | String | 时间段内日志的具体输出 | | |
248 | + | |
249 | +``` | |
250 | +响应示例 | |
251 | +{ | |
252 | + "code": 200, | |
253 | + "message": "操作成功", | |
254 | + "data": "0\n****************swapUse*****************\n6810\n*****************memUse*****************\n执行命令[ cat /proc/meminfo]\n0\n****************swapUse*****************\n6808\n*****************memUse*****************\n执行命令[ cat /proc/meminfo]\n0\n****************swapUse*****************\n6806\n*****************memUse*****************\n执行命令[ cat /proc/meminfo]\n0\n****************swapUse*****************\n6804\n*****************memUse*****************\n执行命令[ cat /proc/meminfo]\n0\n****************swapUse*****************\n6799\n*****************memUse*****************\n执行命令[ cat /proc/meminfo]" | |
255 | +} | |
256 | +``` | |
257 | + | |
258 | + | |
259 | + | |
260 | +## 2.4 停止日志监控输出 | |
261 | + | |
262 | +| 调用方式 | 接口地址 | | |
263 | +| ------------ | :----------------------------------------- | | |
264 | +| POST | http://ip:port/logListener/stopLogListener | | |
265 | +| Content-Type | application/json;charset=UTF-8 | | |
266 | + | |
267 | +| 请求参数 | | | | | | |
268 | +| -------- | ------------- | ------ | ---- | ------------- | | |
269 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
270 | +| logKey | 监听用日志key | string | 是 | 监听用日志key | | |
271 | + | |
272 | +``` | |
273 | +请求示例 | |
274 | +{ | |
275 | + "logKey": "linuxTest-1.0-SNAPSHOT.log|1575596806840" | |
276 | +} | |
277 | +``` | |
278 | + | |
279 | +| 返回结果 | | | | | |
280 | +| -------- | -------- | ------ | --------------------------------- | | |
281 | +| 参数项 | 名称 | 类型 | 描述 | | |
282 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
283 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
284 | +| data | 返回信息 | | | | |
285 | + | |
286 | +``` | |
287 | +响应示例 | |
288 | +{ | |
289 | + "code": 200, | |
290 | + "message": "操作成功", | |
291 | + "data": null | |
292 | +} | |
293 | +``` | |
294 | + | |
295 | + | |
296 | +# 3. 监控器调度 | |
297 | + | |
298 | +## 3.1 获取正在生效的监控功能 | |
299 | + | |
300 | +| 调用方式 | 接口地址 | | |
301 | +| ------------ | :----------------------------------------- | | |
302 | +| POST | http://ip:port/background/getWorkingListener | | |
303 | +| Content-Type | application/json;charset=UTF-8 | | |
304 | + | |
305 | + | |
306 | +| 返回结果 | | | | | |
307 | +| -------- | ---------------- | -------- | --------------------------------- | | |
308 | +| 参数项 | 名称 | 类型 | 描述 | | |
309 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
310 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
311 | +| data | 返回信息 | | | | |
312 | +| +result | 生效中的监控功能 | String[] | 生效中的监控功能 | | |
313 | + | |
314 | +``` | |
315 | +响应示例 | |
316 | +{ | |
317 | + "code": 200, | |
318 | + "message": "操作成功", | |
319 | + "data": { | |
320 | + "result": [ | |
321 | + "cpu_utilization", | |
322 | + "memory_info" | |
323 | + ] | |
324 | + } | |
325 | +} | |
326 | +``` | |
327 | + | |
328 | + | |
329 | + | |
330 | +## 3.2 添加新的监控器 | |
331 | + | |
332 | +| 调用方式 | 接口地址 | | |
333 | +| ------------ | :------------------------------------------- | | |
334 | +| POST | http://ip:port/background/addWorkingListener | | |
335 | +| Content-Type | application/json;charset=UTF-8 | | |
336 | + | |
337 | +| 请求参数 | | | | | | |
338 | +| -------- | ------------------ | -------- | ---- | ------------------ | | |
339 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
340 | +| modules | 添加到监听的功能id | string[] | 是 | 添加到监听的功能id | | |
341 | + | |
342 | +``` | |
343 | +请求示例 | |
344 | +{ | |
345 | + "modules": ["cpu_utilization", "memory_info"] | |
346 | +} | |
347 | +``` | |
348 | + | |
349 | + | |
350 | +| 返回结果 | | | | | |
351 | +| -------- | -------- | ------ | --------------------------------- | | |
352 | +| 参数项 | 名称 | 类型 | 描述 | | |
353 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
354 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
355 | +| data | 返回信息 | | | | |
356 | + | |
357 | +``` | |
358 | +响应示例 | |
359 | +{ | |
360 | + "code": 200, | |
361 | + "message": "操作成功", | |
362 | + "data": {} | |
363 | +} | |
364 | +``` | |
365 | + | |
366 | + | |
367 | + | |
368 | +## 3.3 删除存在的监控器 | |
369 | + | |
370 | +| 调用方式 | 接口地址 | | |
371 | +| ------------ | :---------------------------------------------- | | |
372 | +| POST | http://ip:port/background/removeWorkingListener | | |
373 | +| Content-Type | application/json;charset=UTF-8 | | |
374 | + | |
375 | +| 请求参数 | | | | | | |
376 | +| -------- | ---------------- | -------- | ---- | ---------------- | | |
377 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
378 | +| modules | 停止监听的功能id | string[] | 是 | 停止监听的功能id | | |
379 | + | |
380 | +``` | |
381 | +请求示例 | |
382 | +{ | |
383 | + "modules": ["cpu_utilization", "memory_info"] | |
384 | +} | |
385 | +``` | |
386 | + | |
387 | + | |
388 | +| 返回结果 | | | | | |
389 | +| -------- | -------- | ------ | --------------------------------- | | |
390 | +| 参数项 | 名称 | 类型 | 描述 | | |
391 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
392 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
393 | +| data | 返回信息 | | | | |
394 | + | |
395 | +``` | |
396 | +响应示例 | |
397 | +{ | |
398 | + "code": 200, | |
399 | + "message": "操作成功", | |
400 | + "data": {} | |
401 | +} | |
402 | +``` | |
403 | + | |
404 | + | |
405 | + | |
406 | +## 3.4 获取module对应的内容 | |
407 | + | |
408 | +| 调用方式 | 接口地址 | | |
409 | +| ------------ | :---------------------------------------------- | | |
410 | +| POST | http://ip:port/background/removeWorkingListener | | |
411 | +| Content-Type | application/json;charset=UTF-8 | | |
412 | + | |
413 | +| 请求参数 | | | | | | |
414 | +| --------- | -------- | ------ | ---- | ---------- | | |
415 | +| 参数项 | 名称 | 类型 | 必选 | 描述 | | |
416 | +| modules | 功能id | string | 是 | 功能id | | |
417 | +| startTime | 开始时间 | long | 是 | 开始时间戳 | | |
418 | +| endTime | 结束时间 | long | 是 | 结束时间戳 | | |
419 | + | |
420 | +``` | |
421 | +请求示例 | |
422 | +{ | |
423 | + "module": "cpu_utilization", | |
424 | + "startTime": 1575599542344, | |
425 | + "endTime": 1575599545346 | |
426 | +} | |
427 | +``` | |
428 | + | |
429 | + | |
430 | +| 返回结果 | | | | | |
431 | +| --------------- | ------------ | ------ | --------------------------------- | | |
432 | +| 参数项 | 名称 | 类型 | 描述 | | |
433 | +| code | 响应码 | int | 200为操作成功,其他code表示失败 | | |
434 | +| message | 提示信息 | string | 200为操作成功, 其他为对应错误信息 | | |
435 | +| data | 返回信息 | | | | |
436 | +| +id | 主键 | string | 主键 | | |
437 | +| +moduleId | 功能id | string | 功能id | | |
438 | +| +occurrenceTime | 数据获取时间 | long | 数据获取时间 | | |
439 | +| +occupancy | 占用率 | double | 占用率 | | |
440 | + | |
441 | +``` | |
442 | +响应示例 | |
443 | +{ | |
444 | + "code": 200, | |
445 | + "message": "操作成功", | |
446 | + "data": [ | |
447 | + { | |
448 | + "id": "1", | |
449 | + "moduleId": "cpu_utilization", | |
450 | + "occurrenceTime": 1575599542344, | |
451 | + "occupancy": 1.0 | |
452 | + }, | |
453 | + { | |
454 | + "id": "2", | |
455 | + "moduleId": "cpu_utilization", | |
456 | + "occurrenceTime": 1575599545346, | |
457 | + "occupancy": 4.0 | |
458 | + } | |
459 | + ] | |
460 | +} | |
461 | +``` | |
462 | + | ... | ... |
src/main/java/com/objecteye/service/impl/OccupationOfBasicResourcesServiceImpl.java
... | ... | @@ -117,7 +117,7 @@ public class OccupationOfBasicResourcesServiceImpl implements IOccupationOfBasic |
117 | 117 | JSONObject resultObj = new JSONObject(); |
118 | 118 | if (redisTemplate.opsForHash().hasKey(GeneralContent.REDIS_TASK_ID_OWNER, taskId)) { |
119 | 119 | String owner = (String) redisTemplate.opsForHash().get(GeneralContent.REDIS_TASK_ID_OWNER, taskId); |
120 | - if (Objects.equals(owner, user) || superPower) { | |
120 | + if (Objects.equals(user, owner) || superPower) { | |
121 | 121 | String cmd = "kill -9 " + taskId; |
122 | 122 | List<String> outList = new ArrayList<>(); |
123 | 123 | executeLinuxCmd(cmd, outList); | ... | ... |
src/main/resources/com.objecteye.mapper/SyBasicResourceHistoryMapper.xml
... | ... | @@ -16,11 +16,12 @@ |
16 | 16 | from sy_basic_resource_history |
17 | 17 | where id = #{id,jdbcType=VARCHAR} |
18 | 18 | </select> |
19 | - <select id="getModuleInfoQueryByCondition" resultType="com.objecteye.entity.SyBasicResourceHistory"> | |
20 | - select * from sy_basic_resource_history a | |
19 | + <select id="getModuleInfoQueryByCondition" parameterType="java.util.HashMap" | |
20 | + resultType="com.objecteye.entity.SyBasicResourceHistory"> | |
21 | + select id, module_id moduleId, occurrence_time occurrenceTime, occupancy from sy_basic_resource_history a | |
21 | 22 | <where> |
22 | 23 | <if test="module != null and '' != module"> |
23 | - and a.module_id like '%' || #{module} || '%' | |
24 | + and a.module_id like concat('%', #{module,jdbcType=VARCHAR},'%') | |
24 | 25 | </if> |
25 | 26 | <if test="startTime != null"><![CDATA[ |
26 | 27 | and a.occurrence_time >= #{startTime,jdbcType=BIGINT} |
... | ... | @@ -44,8 +45,8 @@ |
44 | 45 | <insert id="insert" parameterType="com.objecteye.entity.SyBasicResourceHistory"> |
45 | 46 | insert into sy_basic_resource_history (id, module_id, occurrence_time, |
46 | 47 | occupancy) |
47 | - values (#{id,jdbcType=VARCHAR}, #{moduleId,jdbcType=VARCHAR}, #{occurrenceTime,jdbcType=BIGINT}, | |
48 | - #{occupancy,jdbcType=DOUBLE}) | |
48 | + values (#{id,jdbcType=VARCHAR}, #{moduleId,jdbcType=VARCHAR}, #{occurrenceTime,jdbcType=BIGINT}, | |
49 | + #{occupancy,jdbcType=DOUBLE}) | |
49 | 50 | </insert> |
50 | 51 | <insert id="insertSelective" parameterType="com.objecteye.entity.SyBasicResourceHistory"> |
51 | 52 | insert into sy_basic_resource_history | ... | ... |