검색하다 발견한 재미난 모니터링 툴하나 소개해드립니다.
실시간으로 웹에서 시스탬내 로그파일을 출력해주며 Server, Server & Client 형태로도 로그분석이 가능합니다.
비주얼도 나름 있어보이며 실시간 출력대상 로그들도 웹 or 시스탬설정상에서 선택가능합니다.
참고 URL
http://logio.org/
https://github.com/NarrativeScience/Log.io
테스트 환경
[root@CHONNOM ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@CHONNOM ~]# uname -r
2.6.32-504.12.2.el6.x86_64
INSTALL
:: YUM 저장소 추가
# yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install npm nodejs
:: Node.js 와 NPM(Node Package Manager) 패키지 설치
# yum install npm nodejs
# npm install -g log.io –user “root”
# cd .log.io/
# ls
[root@CHONNOM .log.io]# ls
harvester.conf log_server.conf web_server.conf
3개의 conf 파일이 생성되며 각각의 파일은 아래와 같습니다.
harvester.conf : 로컬로그 파일 설정
log_server.conf : 원격로그 파일 설정
web_server.conf : 로그파일 웹설정
:: 확인할 로그파일 설정 (harvester.conf)
–> 여기서는 1대의 서버에서 웹서버, 로그수집서버, 로그분석 대상서버…
[root@CHONNOM .log.io]# vim harvester.conf
exports.config = {
nodeName: “application_server”,
logStreams: {
audit: [
“/var/log/audit/audit.log”
],
messages: [
“/var/log/messages”
],
secure: [
“/var/log/secure”
]
},
server: {
host: ‘0.0.0.0’,
port: 28777
}
}
[root@CHONNOM .log.io]# vim log_server.conf
exports.config = {
host: ‘127.0.0.1’,
port: 28777
}
[root@CHONNOM .log.io]# vim web_server.conf
exports.config = {
host: ‘0.0.0.0’,
port: 28778,
// 주석지우고 아래 빨간색으로 된부분에 아파치 인증을 걸어둘 유저/패스워드 지정
// Enable HTTP Basic Authentication
auth: {
user: “xxxxxxxxxxxxxxx”,
pass: “xxxxxxxxxxxxxxx”
},
/*
// Enable HTTPS/SSL
ssl: {
key: ‘/path/to/privatekey.pem’,
cert: ‘/path/to/certificate.pem’
},
*/
/*
// Restrict access to websocket (socket.io)
// Uses socket.io ‘origins’ syntax
restrictSocket: ‘*:*’,
*/
/*
// Restrict access to http server (express)
restrictHTTP: [
“192.168.29.39”,
“10.0.*”
]
*/
}
:: 방화벽 오픈
[root@CHONNOM .log.io]# iptables -A RH-Firewall-1-INPUT -p tcp –dport 28778 -j ACCEPT
:: 시작/중지 스크립트 생성
[root@CHONNOM .log.io] # cat > /etc/init.d/log.io
#!/bin/bash
start() {
echo “Starting log.io process…”
/usr/bin/log.io-server &
/usr/bin/log.io-harvester &
}
stop() {
echo “Stopping io-log process…”
pkill node
}
status() {
echo “Status io-log process…”
netstat -tlp | grep node
}
case “$1” in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo “Usage: start|stop|status”
;;
esac
[root@CHONNOM] chmod +x /etc/inti.d/log.io
[root@CHONNOM] /etc/init.d/log.io start