본문 바로가기

Infra

Slack Webhook with Node.js

winston과 morgan등을 통해 log를 저장할 수 있으나,해당 log들을 바로 확인하기 위해 Slack으로 오류 메시지를 받기로 했다.

slack-node는 웹훅의 url만으로도 메시지를 가볍게 보낼 수 있다.

 

1. Slack APP 생성

https://api.slack.com/

create app 클릭

 

누르고 APP의 이름과

본인의 워크 스페이스를 선택한다.

왼쪽의 Features에서 Incoming WebHooks를 선택하고 Url을 받는다.

 

WebhookURL까지 만들었다면 준비는 끝이다.

옆의 Channel은 보여주고 싶은 Channel에 보여주면 된다.

 

2. slack-node 설치

npm install slack-node --save

슬렉으로 메시지를 보낼 파일을 선택

const Slack = require('slack-node');
const webhookUrl = process.env.SLACK_URL;
const slack = new Slack();
slack.setWebhook(webhookUrl);

slack.webhook({
       channel: "#error",
       text: "메시지메시지"
    },
    (err, response) => {})
    }
}

이렇게 하면 error 채널에 메시지를 보낼 수 있다.

 

 

실제 적용 예시

const stream = {
    write: message => {
    logger.info(message)
    slack.webhook({
        channel: "#에러",
        username: "logging",
        text: message
    },
    (err, response) => {})
    }
}

morgan과 winston을 사용할 떄 이용했으며,

logging할 때 message를 담아 보낸다.

 

 

알림으로 에러만 오면 기분이 좋지 않을 것 같아서, 새로운 회원가입이 완료되었을 때에도 알림이 오도록 설정해두었다.

그 사이에 세 명이나 새로 가입했다!

 

 

참고

Node.js Slack Error Logging slack-node (노드JS 슬랙 에러 로깅)

'Infra' 카테고리의 다른 글

Too many connections  (0) 2023.12.09
centos계열 Linux에 Docker 설치  (0) 2023.11.28