꼬반 Blog

[Slack] Slack-Bot 으로 웹 서비스 모니터링 하기

회사에서는 다양한 방식으로 모니터링을 하고 있다. 일단 기본적으로 Nagios로 전반적인 서비스와 하드웨어 등을 모니터링 하고 있고 외부 모니터링 도구로 whatap.io 로 서버와 중요 url 5개(무료 제한) 를 모니터링 하고 있다. 각 서버 로그는 telegraf - influxdb - grafana / filebeat - elastic - kibana 로 이중화 하여 수집 및 모니터링을 하고 있다. 그럼에도 불구하고 안정적인 서비스를 위한 모니터링에는 끝이 없다. 그래서 이번에 Slack-Bot 을 활용하여 웹 서비스를 간편하게 체크할 수 있도록 해보았다. 먼저 개발은 다음과 같은 환경으로 진행하였다. 1. 웹 서비스 40개의 status code 와 응답시간을 체크 -> Golang 으로 개발 ..

Read More

[Node.js] 다수의 웹 서비스 상태 체크하기

안녕하세요. 꼬반 입니다. 지난번에 한번 회사에서 관리하는 웹 서비스들의 상태를 확인하기 위해 Url Check V1 을 포스팅 한적이 있는데.. 이번에 V2로 변경하면서 새로 작성합니다. 사실 지난번 V1은 이틀동안 날림으로 작업하면서 여러 문제점들이 있는 상태여서 이번에도 이틀의 시간이 소요되긴 했지만 나름 개선해서 아래와 같이 변경되었습니다. 이번 버전에서는 비동기로 동작하는 부분을 잘 이해하지 못하고 코드를 날림으로 작성해서 사실 클라이언트에서 테이블에 제대로 바인딩도 안되던 문제가 있었습니다. 이번엔 DB에 점검 URL을 읽어와서 상태를 확인하고 응답시간을 체크해서 DB에 업데이트 후 해당 내용을 클라이언트에 전송해서 정상적으로 바인딩 되게 코드를 수정했습니다. (지금도 날림인건 마찬가지..) ..

Read More

[Slack] Slack-Bot 으로 웹 서비스 모니터링 하기

회사에서는 다양한 방식으로 모니터링을 하고 있다. 


일단 기본적으로 Nagios로 전반적인 서비스와 하드웨어 등을 모니터링 하고 있고


외부 모니터링 도구로 whatap.io 로 서버와 중요 url 5개(무료 제한) 를 모니터링 하고 있다.


각 서버 로그는 telegraf - influxdb - grafana / filebeat - elastic - kibana 로 이중화 하여


수집 및 모니터링을 하고 있다.


그럼에도 불구하고 안정적인 서비스를 위한 모니터링에는 끝이 없다.


그래서 이번에 Slack-Bot 을 활용하여 웹 서비스를 간편하게 체크할 수 있도록 해보았다.


먼저 개발은 다음과 같은 환경으로 진행하였다.


1. 웹 서비스 40개의 status code 와 응답시간을 체크 -> Golang 으로 개발


2. Node.js 로 Slack-Bot 개발 및 세팅


3. Slack 에서 정해진 키워드를 받으면 Bot 에서 1번에서 개발한 프로그램을 실행하여 결과를 

   메신져로 전송


아래는 결과물이다.



먼저 1번 항목의 경우 Golang 으로 작성한 이유는 Golang을 써보고 싶었고...


Golang에서 지원하는 고루틴이 매우 좋은 성능을 나타내기 때문이다. 


모바일 Slack App 에서도 동일하게 동작함을 확인하였고, 이로써 모니터링 도구가 하나더 추가되었다.


(모..모니터링 지옥이라능!)


수, 목, 금 3일동안 프로토타입은 나왔으니 앞으로 좀 가다듬으서 더 쓸만한 Bot을 만들어봐야겠다.


추신1. 이상 항목 1은 현재 내부에서만 접근가능하게 되어 있어서 나오는 항목으로 실제론 이상이 있지 않습니다?


추신 2. 아래 몇몇 서비스가 3초 이상으로 시간이 많이 걸리는데 올해 정리할 예정..

          (X키를 눌러 조의를 표하십시오.)


추신 3. 개발과 Bot 을 윈도우 환경에서 돌렸는데 생각보다 꽤 환경이 쾌적해서 놀랐..

          (Visual Studio Code - Golang - Node.js / VSC 에 각 Plugin 들을 설치하고 사용하니

           해당 프로그램 하나 켜놓고 다 작업하고 터미널도 바로 열리고 아주 맘에 들었습니다~)

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[Node.js] 다수의 웹 서비스 상태 체크하기

안녕하세요. 꼬반 입니다.


지난번에 한번 회사에서 관리하는 웹 서비스들의 상태를 확인하기 위해 Url Check V1 을 포스팅 한적이 있는데..


이번에 V2로 변경하면서 새로 작성합니다.


사실 지난번 V1은 이틀동안 날림으로 작업하면서 여러 문제점들이 있는 상태여서 이번에도 이틀의 시간이


소요되긴 했지만 나름 개선해서 아래와 같이 변경되었습니다.



이번 버전에서는 비동기로 동작하는 부분을 잘 이해하지 못하고 코드를 날림으로 작성해서 사실 클라이언트에서


테이블에 제대로 바인딩도 안되던 문제가 있었습니다.


이번엔 DB에 점검 URL을 읽어와서 상태를 확인하고 응답시간을 체크해서 DB에 업데이트 후 


해당 내용을 클라이언트에 전송해서 정상적으로 바인딩 되게 코드를 수정했습니다. (지금도 날림인건 마찬가지..)


그리고 상단엔 한번에 알 수 있도록 넣었습니다.


다만 이번엔 모든 URL을 다 확인후 DB를 불러오기때문에 로딩시간이 좀 걸립니다...


음.. 그 부분은 어쩔수 없네요. 


이력 관리는 하지 않습니다. 지금 요구사항은 어디서든 한번에 서비스 상태를 확인하기 위한 거라.


추후 히스토리가 추가될 수는 있을수도... 

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post