ssh 서버에 로그인한 후 Hipchat에 알림
작업 중 힙채트를 사용하는 장면이 나오기 때문에 ssh를 서버에 로그인한 알림 알림 알림 알림, 힙채트를 감시해 봅니다.
node.js 설치
EPel 창고를 사용하여yum에 설치할 수 있습니다.
2014/8 현재
따라서 최신판으로 충분히 활용할 수 있다.
설치는 sudo 권한이나 루트 권한으로 진행됩니다.(sudo 권장)
cmd
$ sudo yum install nodejs npm --enablerepo=epel
확인$ sudo yum list installed | grep nodejs.x86_64
node.yum으로 js 설치 (centos6.5)
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_이른바 APIHipChat 계정 페이지
-> Account settings
-> API access를 통해 확인 가능(생성 가능)
$ 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로 얻을 수 있는 값입니다.방 특유의 물건.
$ 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_이른바 apiuser_id와 함께 방에api가 있습니다.
방 관리자의 권한이 없으면 제작과 열람을 할 수 없습니다.
$ 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.jsvar 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/sshrcsh /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 관련 파일
Reference
이 문제에 관하여(ssh 서버에 로그인한 후 Hipchat에 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iganari/items/7d379685e2ca9f1edf05텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)