IT이야기2015. 12. 3. 12:30

IRC와 요즘 대세인 slack을 연동할 수 있다. slack에서 메시지를 쓰면 IRC에서 볼 수 있고, 반대도 마찬가지로 주고 받을 수 있다. 아주 간단하다. slack-irc( https://github.com/ekmartin/slack-irc )을 설치하면 끝난다.





node.js로 만들어져있으므로, node.js부터 설치힌다.


# curl -sL https://rpm.nodesource.com/setup | bash -

# yum install -y nodejs


$ npm install -g slack-irc


JSON형식의 config파일을 만든다. 확장자는 반드시 .json으로 한다.


[ config.json ]

{

  "server": "aoa.hanirc.org",

  "nickname": "coffeenix-slack",

  "token": "????-??????????-...생략...",

  "channelMapping": {

    "#irc": "#cnx"

  }

}


server는 IRC서버명, nickname은 IRC에서 사용할 닉네임이다. token은 https://api.slack.com/web 에서 확인할 수 있다. 만약 token이 외부에 유출되었다면 'Re-issue token'버튼을 클릭하여 새로 만든다. channelMapping에서 "#irc"는 slack의 채널명이고, "#cnx"는 IRC 방이름이다. slack 채널명은 일반 채널이면 '#채널명' 형태로, 비공개 채널(Private channel)이면 '채널명'으로 설정하면 된다.



Slack API 호출에 사용할 Token[ Slack API 호출에 사용할 Token ( https://api.slack.com/web ) ]



실행해보자. IRC에는 coffeenix-slack이라는 유저가 접속될 것이다.


$ slack-irc --config config.json



Slack과 IRC 연동[ Slack과 IRC 연동 ]


이상없다면, 스크립트를 만들어 백그라운드로 돌린다.


#!/bin/bash


nohup /usr/bin/slack-irc --config config.json &



Posted by 좋은진호
시스템이야기2015. 12. 2. 18:29


logstash


logstash를 통해 수집된 데이터를 elasticsearch에 쌓고 있다. 수집된 데이터를 elasticsearch에 넣지 않고 로그파일로 저장할 필요가 생겼다. lnav 같은 쉘용 로그분석툴을 사용하기 위해서.


output {

    file {

         path => "/data/log/%{+YYYY_MM_dd}.log"

         message_format => "%{message}"

    }

}


위와 같이 설정했을 때 2015_10_13.log 파일명으로 로그를 쌓는다. 그런데 한가지 문제가 있다. logstash 시간은 UTC기준이라서, 우리나라 시간 AM 9시 이전은 2015_10_12.log 파일명에 쌓고, 9시 이후는 2015_10_13.log 파일명에 쌓는다.


다음과 같이 설명하면 서버의 timezone 기준(KST)으로 날짜 파일명에 로그를 쌓을 수 있다.

filter {

    ruby {

        code => "event['date_index'] = event.timestamp.time.localtime.strftime('%Y_%m_%d')"

    }

}


output {

    file {

        path => "/data/log/%{date_index}.log"

        message_format => "%{message}"

    }

}



Posted by 좋은진호