n8n 점검 로직
1. Cron 노드
-Every Day/ 8Hour/ 25Minute
ㄴ. 매일 8시 25분에 실행한다.
2. Excute Command2 노드
-Excute Once
-Command
: CHCP 65001 | ping -n 10 abc.abcd.co.kr
ㄴ.한번만 실행. UTF-8인코딩 으로 ping을 10번 수행한다.
ㄴ.Command 의 콘솔 출력 값이 다음 노드에 전달되는 것으로 보인다.
3. IF2 노드
-Condition: String
-Value1:
-Operation: Contains
-Value2: TTL=
-Boolean
-Number
-Combine: ALL
ㄴ. 문자열 'TTL=' 을 포함하면 true, 포함하지 않으면 false
true -> 다음 단계 진행
false->
Send Email12 노드
-Credential for SMTP: SMTP accout
-From Email: n8n@abcd.co.kr
-To Email: abc@abcd.co.kr
-Subject: 실패
-Text:
-HTML:
<b>ping 오류 (서버접속오류)</b>
<br>
===============================================================================================<br>
error : <br>
{{$json["error"]}}
===============================================================================================<br>
stderr : <br>
{{$json["stderr"]}}
===============================================================================================<br>
ㄴ. HTML 내용으로 이메일을 발송한다.
4. Function1 노드
-Javascript Code:
var nAverage = '';
for (item of items) {
var arr = items[0].json.stdout.split('Approximate round trip');
console.log("arr : " + arr.length);
console.log("arr : " + arr[0]);
console.log("arr : " + arr[1]);
if(arr.length == 2){
var arr1 = arr[1].split('ms');
for (arritem of arr1) {
if(nAverage != '') break;
if(arritem.lastIndexOf('Average = ') > -1)
{
console.log("Average =[" + arritem.substr(arritem.lastIndexOf('Average = '), arritem.length) + "]");
nAverage = arritem.substr(arritem.lastIndexOf('Average = ')+10, arritem.length);
items[0].json.Average = nAverage;
break;
}
}
}
}
// You can write logs to the browser console
console.log('Done!=>'+ nAverage);
return items;
ㄴ. Average = 에서 수치를 뽑아내기 위한 파싱 과정
5. IF8 노드
-Condition: Number
-Value1:
-Operation: Smaller
-Value2: 100
-Combine: ALL
true -> 다음 단계 진행
false ->
Send Email11 노드
-HTML:
서버 평균 응답 속도 결과 (평균 응답속도 100 ms 이상이면 비정상 )
<br>
===============================================================================================<br>
error : <br>
{{$json["error"]}}
===============================================================================================<br>
stderr : <br>
{{$json["stderr"]}}
===============================================================================================<br>
ㄴ. HTML 내용으로 이메일을 발송한다.
6.tcping Command 노드
-Excute Once
-Command
: tcping -h abc.abcd.co.kr 443
7.IF 노드
-Condition: String
-Value1:
-Operation: Contains
-Value2: open
-Combine: ALL
true -> 다음 단계 진행
false ->
Send Email2
-HTML:
네트워크 결과 : WAS 다운 상태
<br>
===============================================================================================<br>
error : <br>
{{$json["error"]}}
===============================================================================================<br>
stderr : <br>
{{$json["stderr"]}}
===============================================================================================<br>
ㄴ. HTML 내용으로 이메일을 발송한다.
8.tcping Function
-javaScript Code:
var nAverage = '';
for (item of items) {
var arr = items[0].json.stdout.split('Approximate trip');
console.log("arr : " + arr.length);
console.log("arr : " + arr[0]);
console.log("arr : " + arr[1]);
if(arr.length == 2){
var arr1 = arr[1].split('ms');
console.log("arr1의 길이 " + arr1.length);
console.log("arr1 => " + arr1);
for (arritem of arr1) {
if(nAverage != '') break;
console.log("arritem : " + arritem + ": arritem.indexOf[" + arritem.indexOf('Average = ', 0) + "]");
if(arritem.lastIndexOf('Average = ') > -1)
{
console.log("Average =[" + arritem.substr(arritem.lastIndexOf('Average = ')+10, arritem.length) + "]");
nAverage = arritem.substr(arritem.lastIndexOf('Average = ')+10, arritem.length);
console.log("nAverage 1 =>" + nAverage);
nAverage = nAverage.substr(0, nAverage.lastIndexOf('.'));
//console.log("nAverage 2 =>" + nAverage);
items[0].json.Average = nAverage;
break;
}
}
}
}
// You can write logs to the browser console
console.log('Done!=>'+ nAverage);
return items;
9. IF9 노드
-Condition: Number
-Value1:
-Operation: Smaller
-Value2: 100
-Combine: ALL
true -> 다음 단계 진행
false ->
Send Email3 노드
-HTML:
네트워크 결과 : 평균 응답속도 100ms 이상
<br>
===============================================================================================<br>
error : <br>
{{$json["error"]}}
===============================================================================================<br>
stderr : <br>
{{$json["stderr"]}}
===============================================================================================<br>
ㄴ. HTML 내용으로 이메일을 발송한다.
10. HTTP Request 노드
-Authentication: None
-Request Method: Get
-URL: abc.abcd.co.kr
-Ignore SSL Issues: none
-Response Format: String
-Property Name: data
-JSON/RAW Parameters: none
-Options: no
-Headers: no
-Query Parameters: no
11.IF 1 노드
-Condition: String
-Value1:
-Operation: Contains
-Value2: DB접속성공
-Combine: ALL
true -> 최종 성공 메일 발송
Send Email1 노드
-HTML:
[data]<br>
{{$node["HTTP Request"].json["data"]}}<br>
[stdout]<br>
{{$node["HTTP Request"].json["stdout"]}}<br>
[name]<br>
{{$node["HTTP Request"].json["error"]["name"]}}<br>
[message]<br>
{{$node["HTTP Request"].json["error"]["message"]}}<br>
[stack]<br>
{{$node["HTTP Request"].json["error"]["stack"]}}<br>
[tcping Command]<br>
{{$node["tcping Command"].json["stdout"]}}
ㄴ. HTML 내용으로 이메일을 발송한다.
false -> 최종 실패 메일 발송
Send Email 노드
-HTML:
DB 접속 결과 : 실패
<br>
===============================================================================================<br>
[data]<br>
{{$node["HTTP Request"].json["data"]}}<br>
[stdout]<br>
{{$node["HTTP Request"].json["stdout"]}}<br>
[name]<br>
{{$node["HTTP Request"].json["error"]["name"]}}<br>
ㄴ. HTML 내용으로 이메일을 발송한다.
'개발 > 개발관련' 카테고리의 다른 글
[개발관련] 검색엔진에 대한 간단한 조사 (0) | 2023.05.30 |
---|---|
[개발관련] OOP관점에서 클래스와 객체와 인스턴스 용어 정리 feat 붕어빵 (0) | 2023.05.27 |
[개발관련] Gradle 프로젝트 만들기(gradle init, gradle wrapper) Maven과 Gradle 프로젝트 비교 (0) | 2023.05.20 |
[개발관련] H2 Database 설치 및 실행 (0) | 2023.05.19 |
[개발관련] 이클립스 실행오류 SWTException, 이클립스 재설치 (0) | 2023.05.19 |