웹사이트 검색

RHEL/CentOS 7/6에서 "Log.io" 도구를 사용하여 실시간으로 서버 로그 모니터링


Log.io는 Linux 서버 로그를 모니터링할 수 있는 Node.jsSocket.io 위에 구축된 작고 간단하지만 효과적인 애플리케이션입니다. 웹 인터페이스 화면 위젯을 통해 실시간으로 파일을 확인할 수 있습니다.

이 튜토리얼에서는 Log.ioLog.io를 사용하여 로컬 로그 파일을 실시간으로 설치하고 모니터링하는 방법을 안내합니다. b> 로그 파일의 로컬 변경 사항을 모니터링하기 위한 수확기 파일입니다.

1단계: Epel 저장소 추가

1. CentOS Epel 저장소는 Node.jsNPM용 바이너리 패키지를 제공합니다. – 노드 패키지 모듈 . 다음 명령을 실행하여 Epel 저장소를 설치하십시오.

RHEL/CentOS 7에서
yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
RHEL/CentOS 6에서
--------------------- On RHEL/CentOS 6.x - 32 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm

--------------------- On RHEL/CentOS 6.x - 64 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2. 시스템에 Epel Repos를 추가한 후 다음 명령을 실행하여 시스템 업그레이드를 수행합니다.

yum update

2단계: Node.js 및 NPM 패키지 설치

3. Node.js는 백엔드 기능을 갖춘 네트워크 애플리케이션을 만들 수 있는 Javascript 서버측 프로그래밍 플랫폼입니다. NPM(노드 패키지 관리자)은 실질적으로 Node.js의 패키지 관리자입니다. 따라서 다음 단계에서는 다음 명령을 실행하여 YUM 패키지 관리자를 통해 시스템에 Node.js 및 NMP 바이너리를 설치하십시오.


curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - 
yum install -y nodejs

3단계: Log.io 애플리케이션 설치 및 구성

4. Log.io 애플리케이션은 설치가 수행되어야 하는 유효한 로컬 시스템 사용자를 지정하여 NPM을 통해 시스템에 설치되어야 합니다. 유효한 시스템 사용자를 사용하여 Log.io를 설치할 수 있지만 개인적으로 루트 사용자 또는 루트 권한이 있는 다른 시스템 사용자를 통해 애플리케이션을 설치하는 것이 좋습니다.

이 접근 방식을 사용하는 이유는 Log.io에 로컬 로그 파일을 읽을 수 있는 액세스 권한이 있어야 하며 권한이 없는 루트 권한이 있는 사용자는 일반적으로 일부 중요한 로그 파일에 액세스하고 읽을 수 없기 때문입니다.

따라서 루트 계정으로 로그인하고 다음 명령을 실행하여 루트 계정을 통해 Log.io 애플리케이션을 설치하십시오(다른 사용자를 사용하는 경우 그에 따라 루트 계정을 시스템 사용자로 바꾸십시오).

npm install -g log.io --user “root”

5. 애플리케이션이 설치된 후 작업 디렉토리를 숨겨진 Log.io 폴더로 변경하고 디렉토리 목록을 작성하여 폴더 내용을 시각화하여 구성합니다. 추가 신청.

pwd  		[Make sure you are on the right path]
cd .log.io/
ls

6. 이제 로컬 로그 파일을 실시간으로 모니터링하도록 Log.io를 구성할 차례입니다. Log.io의 작동 방식을 살펴보겠습니다.

  1. harvester 파일은 구성에 선언된 특정 로컬 로그 파일의 변경 사항을 감시하고 해당 출력을 소켓.io TCP를 통해 보냅니다.
    Log.io 로컬 서버 또는 IP 주소(수확기에 지정된 0.0.0.0 주소는 모든 log.io 수신 서버에 브로드캐스트됨)로 선언된 다른 원격 서버 또는 메시지를 추가로 보내는 프로토콜 – 파일 harvester.conf
  2. Log.io 서버는 모든 네트워크 인터페이스에서 바인딩하고(log_server.conf 파일에 별도로 지정되지 않은 경우) 로컬 또는 원격 수확기 노드의 메시지를 기다린 후 해당 출력을 log.io 웹 서버로 보냅니다(0.0.0.0은 메시지를 기다린다는 의미) 로컬 또는 원격 수확기에서) 파일 log_server.conf
  3. Log.io 웹 서버는 모든 네트워크 인터페이스에 바인딩하고, 포트 28778에서 웹 클라이언트 연결을 수신하고, log.io 서버(web_server.conf 파일)로부터 내부적으로 수신하는 메시지를 처리하고 출력합니다.

먼저 편집을 위해 harvester.conf 파일을 엽니다. 이 파일은 기본적으로 Apache 로그 파일만 모니터링하고 nodeName 문을 호스트 이름과 일치하도록 바꾸고 logStreams 모니터링하려는 내부 로그 파일이 포함된 명령문(이 경우 감사, 메시지 및 보안 로그와 같은 여러 로그 파일을 모니터링합니다). 아래 발췌된 파일을 가이드로 사용하세요.

nano harvester.conf

수확기 파일 발췌.

exports.config = {
  nodeName: "pxe-server",
  logStreams: {

audit: [
      "/var/log/audit/audit.log"
    ],

messages: [
      "/var/log/messages"
    ],

secure: [
      "/var/log/secure"
    ]

},
  server: {
    host: '0.0.0.0',
    port: 28777
  }
}

또한 수확기 출력을 원격 Log.io 서버로 보낼 필요가 없다면 server 문의 host 줄을 보내기만 하도록 변경하세요. 루프백 주소(127.0.0.1)로 0.0.0.0 주소를 수정하여 로컬로 출력합니다.

7. 보안상의 이유로 로컬 Log.io 서버에 원격 수확기 출력이 필요하지 않은 경우 log_server.conf 파일을 열고 < b>0.0.0.0 주소와 루프백 주소(127.0.0.1).

nano log_server.conf

8. 자격 증명 로그인, HTTPS 또는 Log.io 웹 서버에 대한 IP 기반 제한과 같은 기타 보안 기능을 웹 서버 측에 적용할 수 있습니다. 이 튜토리얼에서는 보안 수단으로 자격 증명 로그인만 사용하겠습니다.

따라서 web_server.conf 파일을 열고 모든 슬래시와 별표를 삭제하여 전체 auth 문의 주석 처리를 제거하고 userpass 하단 스크린샷에 제안된 대로 지시어를 적절하게 적용합니다.

nano web_server.conf

4단계: 방화벽 규칙 추가 및 Log.io 애플리케이션 시작

9. Log.io 서버에 대한 웹 액세스를 얻으려면 RHEL/CentOS 7 방화벽에 규칙을 추가하세요. 다음 명령을 실행하여 TCP 28778 포트를 엽니다.

firewall-cmd --add-port=28778/tcp --permanent
firewall-cmd --reload

참고: RHEL/CentOS 6.x 사용자는 iptable 방화벽에서 포트 28778을 열 수 있습니다.

5단계: Log.io 애플리케이션 시작 및 웹 인터페이스 시작

10. Log.io 로그 모니터링 응용 프로그램을 시작하려면 현재 작업 디렉토리가 루트의 홈 .log.io인지 확인하고 다음을 사용하십시오. 다음 순서로 명령을 입력하여 응용 프로그램을 시작합니다.

------------ First start server, put it in background and press Enter key ------------
log.io-server & 

------------ Start log harvester in background ------------
log.io-harvester & 

11. 서버가 시작된 후 브라우저를 열고 서버 IP와 URL 주소에 HTTP 프로토콜을 사용하여 28778 포트 번호를 입력하면 로그인 자격 증명을 요구하는 프롬프트가 나타납니다. .

계속 진행하려면 8단계에서 구성한 사용자와 비밀번호를 입력하세요. 그러면 Log.io 애플리케이션이 이제 실시간으로 모니터링되는 로그 파일을 제공하는 브라우저에 표시됩니다.

http://192.168.1.20:28778

웹 인터페이스에서 새 화면을 추가하고 이에 따라 스트림이나 노드를 구성합니다.

12. Log.io 애플리케이션을 중지하려면 다음 명령을 실행하세요.

pkill node

6단계: Log.io 관리 스크립트 생성

13. 세 개의 스위치( start, stopstop)를 사용하여 Log.io 애플리케이션을 관리하는 명령을 사용하려면 상태) /usr/local/bin 실행 가능 디렉터리에 log.io라는 이름의 다음 스크립트를 생성하고 이 스크립트에 실행 권한을 추가합니다.

nano /usr/local/bin/log.io
chmod +x /usr/local/bin/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

14. Log.io 상태를 시작, 중지 또는 보려면 루트 계정(또는 Log.io 앱이 설치된 사용자)으로 로그인하고 다음 명령을 실행하면 애플리케이션을 쉽게 관리할 수 있습니다.

log.io start
log.io status
log.io stop

그게 다야! 내 생각에 Log.io는 로컬 또는 원격 서버 로그 파일을 실시간으로 모니터링하고 시스템 내부에서 무슨 일이 일어나고 있는지에 대한 전망을 얻고 특히 서버 문제를 디버깅할 때 훌륭하고 효과적인 웹 애플리케이션입니다. 콘솔을 사용할 필요 없이 시스템이 응답하지 않거나 충돌하는 경향이 있습니다.