ssh 서버에 로그인한 후 Hipchat에 알림

8825 단어 sshd도입hipchat
날과 씨
작업 중 힙채트를 사용하는 장면이 나오기 때문에 ssh를 서버에 로그인한 알림 알림 알림 알림, 힙채트를 감시해 봅니다.
  • GiitHub에서 공개. ->ssh_watch
  • 블로그에 가득 찬 곳을 정리했다. ->예리하게 제작 중
  • 환경 구조
    node.js 설치
    EPel 창고를 사용하여yum에 설치할 수 있습니다.
    2014/8 현재
  • epel repo -> v0.10.29
  • 공식 최신판 ->v0.10.30
    따라서 최신판으로 충분히 활용할 수 있다.
    설치는 sudo 권한이나 루트 권한으로 진행됩니다.(sudo 권장)
    cmd
    $ sudo yum install nodejs npm --enablerepo=epel
    
    확인
    $ sudo yum list installed | grep nodejs.x86_64
    
  • 참조 URL
    node.yum으로 js 설치 (centos6.5)
  • 이렇게 하면 npm 명령을 사용할 수 있다.
    npm를 사용하여 힙합hatter 설치
    npm:nodejs용 패키지 관리 도구(Ruby 같은 Gem)
    $ sudo mkdir /etc/nodejs/
    $ cd mkdir /etc/nodejs/
    $ sudo npm init
    $ sudo npm install hipchatter --save
    
    Hipchatter의 개요는 다음과 같습니다.
    https://github.com/charltoons/hipchatter
    실행할 JSON 파일 만들기
    만들어야 할 json 파일의 형식은 상술한 README이다.md에 쓰여 있기 때문에 실제를 참고하여 쓰십시오
    1. 자신의 힙채트 계정에서 열람할 수 있는 방값을 찾습니다.
    /etc/nodejs/01_gets_rooms.js
    var Hipchatter = require('hipchatter');
    var hipchatter = new Hipchatter('user_API');
    
    // this will list all of your rooms
        hipchatter.rooms(function(err, rooms){
            if(!err) console.log(rooms)
        });
    
    user_이른바 API
    HipChat 계정 페이지
    -> Account settings
    -> API access를 통해 확인 가능(생성 가능)
  • 테스트 수행
  • cmd
    $ node 01_gets_rooms.js
    
    2. 특정 방의 역사 기록 얻기
    /etc/nodejs/02_history_log.js
    var Hipchatter = require('hipchatter');
    var hipchatter = new Hipchatter('user_API');
    
        hipchatter.history('room_id', function(err, history){
            // print the last message
            var length = history.items.length;
            history.items.forEach(function(item){
              console.log(item)
            });
        });
    
    room_아이디
    방금 방의 상세한 정보를 얻었을 때 id로 얻을 수 있는 값입니다.방 특유의 물건.
  • 테스트 수행
  • cmd
    $ node 02_history_log.js
    
    3. 특정 방에 메시지 보내기
    /etc/nodejs/03_send_msg.js
    var Hipchatter = require('hipchatter');
    var hipchatter = new Hipchatter('rooms_api');
    
        hipchatter.notify('room_id',
        {
            message: 'Hello iganari !!',
            color  : 'green', 
            token  : 'rooms_api',
            notify : true
        }, function(err){
            if (err == null) console.log('Successfully notified the room.');
        });
    
    rooms_이른바 api
    user_id와 함께 방에api가 있습니다.
    방 관리자의 권한이 없으면 제작과 열람을 할 수 없습니다.
  • 테스트 수행
  • cmd
    $ node 03_send_msg.js
    
    SSH 로그인 시 위 파일로 설정
    sshrc 설정
    우선 다음과 같은 내용을 설정합니다.
    사용자가 ssh를 통해 로그인한 경우/etc/ssh/ssh/sshrc가 읽히는 구조입니다.
    node /etc/nodejs/03_send_msg.js
    
    그런 다음 한 번 로그아웃하고 HipChat이 시작된 상태에서 다시 로그인합니다.
    지정된 방에 다음 문장이 나오면 성공한다.

    실제 모니터링을 위한 추가 설정
    개인 공간 만들기
    room_모니터링 서버
    Tokens_Label -> watcher
    Token(= room message API)
    상술한 내용을 만들다.관리자 권한을 원합니다.
    또 왔다
    room_상기 명령 등으로 id를 미리 확인하세요.
    환경 구조
    cmd
    $ sudo mkdir /etc/nodejs/ssh_watch
    
    파일 구성
    iganari/ssh_watch
    ├── 01_gets_rooms.js
    ├── 02_history_log.js
    ├── 03_send_msg.js
    ├── README.md
    ├── installation.sh
    ├── run
    │   ├── get_hostname.sh
    │   ├── modify_hostname.sh
    │   └── send_msg-ssh_login.js
    └── ssh
        └── sshrc
    
    스크립트 내용
    /etc/nodejs/ssh_watch/get_hostname.sh
    #!/bin/bash
    
    HOSTNAME=`hostname`
    
    sed -i "s/hostname/$HOSTNAME/g" /etc/nodejs/ssh_watch/send_msg-ssh_login.js
    
    /etc/nodejs/ssh_watch/modify_hostname.sh
    #!/bin/bash
    
    HOSTNAME=`hostname`
    
    sed -i "s/$HOSTNAME/hostname/g" /etc/nodejs/ssh_watch/send_msg-ssh_login.js
    
    /etc/nodejs/ssh_watch/send_msg-ssh_login.js
    var Hipchatter = require('hipchatter');
    var hipchatter = new Hipchatter('rooms_api');
    
        hipchatter.notify('room_id',
        {
            message: "hostnameに"+process.argv[3]+''+process.argv[2]+'としてログインしてきたよ!',
            color: 'green',
            token: 'rooms_api',
            notify: true
        }, function(err){
            if (err == null) console.log('Successfully notified the room.');
        });
    
    
    /etc/ssh/sshrc
    sh /etc/nodejs/ssh_watch/get_hostname.sh
    node /etc/nodejs/send_msg-ssh_login.js $USER $SSH_CLIENT
    sh /etc/nodejs/ssh_watch/modify_hostname.sh
    
    상기 sshd의 환경 변수는 다음과 같다.
    변수 이름
    컨텐트
    예제
    $SSH_CLIENT
    접속 소스 IP 주소
    192.168.101.xxx
    $SSH_TTY
    접속 소스 IP 주소
    /dev/pts/1
    $USER
    접속 소스 IP 주소
    root, dev
    권한 변경
    sed 명령은 대상의 파일을 직접 편집하는 것이 아니라 임시 파일을 만들어서 이름을 바꾸고 삭제합니다.
    따라서 그 디렉터리는 쓰기 권한이 있어야 합니다.
    cmd
    $ sudo chmod 777 /etc/nodejs/ssh_watch
    
    sshd 설정
    다음 기호 링크 만들기
    cmd
    ln -s /etc/nodejs/ssh_watch/ssh/sshrc /etc/ssh/sshrc 
    
    실행 결과
    상기 설정이 끝난 후 서버에 ssh 로그인을 하면 다음과 같이 HipChat에 알립니다

    이렇게 하면 완성된다.
    nodejs만 장착하면 쉽게 설치할 수 있습니다!
    참조 링크
    ssh로 Linux 시스템에 로그인한 후 슬랙으로 알림
    HipChataAPI의 node입니다.js 래치 HipChatter
    부록 A.OpenSSH 관련 파일

    좋은 웹페이지 즐겨찾기