ウェブサイト検索

RHEL/CentOS 7/6 上の「Log.io」ツールを使用してサーバーのログをリアルタイムで監視する


Log.io は、Node.jsSocket.io 上に構築された小さくてシンプルですが効果的なアプリケーションで、Linux サーバーのログを監視できます。 Web インターフェイス画面ウィジェットを通じてファイルをリアルタイムで管理します。

このチュートリアルでは、RHEL/CentOS 7/6.x にインストールされた Log.io を使用して Log.io ハーベスター ファイルを使用して、ログ ファイルに対するローカルの変更を監視します。

ステップ 1: Epel リポジトリを追加する

1. CentOS の Epel リポジトリは、Node.js および NPM のバイナリ パッケージを提供します – ノード パッケージ モジュール 。次のコマンドを発行して、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 Package Manager) は、実質的に 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 のインストールには任意の有効なシステム ユーザーを使用できますが、個人的にはroot ユーザーまたは root 権限を持つ他のシステム ユーザーを通じてアプリケーションをインストールすることをお勧めします。

このアプローチを使用する理由は、Log.io にはローカルのログ ファイルを読み取るためのアクセス権が必要であり、権限のない root 権限を持つユーザーは通常、一部の重要なログ ファイルにアクセスして読み取ることができないためです。

そのため、root アカウントでログインし、次のコマンドを発行して root アカウント経由で Log.io アプリケーションをインストールします (他のユーザーを使用している場合は、root アカウントをシステム ユーザーに置き換えてください)。

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. ハーベスター ファイルは、設定で宣言された指定されたローカル ログ ファイルの変更を監視し、socket.io TCP 経由で出力を送信します。
    Log.io ローカル サーバー、または IP アドレス (すべての log.io リスニング サーバーへのハーベスタ ブロードキャストで指定された 0.0.0.0 アドレス) で宣言された他のリモート サーバーにメッセージを送信するプロトコル – ファイル harvester.conf
  2. Log.io サーバーは (log_server.conf ファイルで指定されていない場合) すべてのネットワーク インターフェイスにバインドし、ローカルまたはリモートのハーベスター ノードからのメッセージを待機し、その出力を log.io Web サーバーに送信します (0.0.0.0 はメッセージを待機することを意味します)ローカルまたはリモートのハーベスタから) ファイル log_server.conf
  3. Log.io Web サーバーはすべてのネットワーク インターフェイスにバインドし、ポート 28778 で Web クライアントの接続をリッスンし、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 行を送信のみに変更します。 0.0.0.0 アドレスをループバック アドレス (127.0.0.1) で変更することで、ローカルに出力されます。

7. セキュリティ上の理由から、リモート ハーベスターのローカル Log.io サーバーへの出力を期待していない場合は、log_server.conf ファイルを開いて < を置き換えます。 b>0.0.0.0 アドレスとループバック アドレス (127.0.0.1)。

nano log_server.conf

8. 資格情報ログイン、HTTPS、または Log.io Web サーバーへの IP に基づく制限などの他のセキュリティ機能は、Web サーバー側で適用できます。このチュートリアルでは、セキュリティ対策として資格情報によるログインのみを使用します。

したがって、web_server.conf ファイルを開き、すべてのスラッシュとアスタリスクを削除して auth ステートメント全体のコメントを解除し、userpass 下部のスクリーンショットに示されているように、ディレクティブを適宜変更します。

nano web_server.conf

ステップ 4: ファイアウォール ルールを追加し、Log.io アプリケーションを開始する

9. Log.io サーバーへの Web アクセスを取得するには、RHEL/CentOS 7 ファイアウォールにルールを追加します。次のコマンドを発行して、TCP 28778 ポートを開きます。

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

: RHEL/CentOS 6.x ユーザーは、iptable ファイアウォールでポート 28778 を開くことができます。

ステップ 5: Log.io アプリケーションを起動し、Web インターフェイスに入る

10. Log.io ログ監視アプリケーションを開始するには、現在の作業ディレクトリが root のホーム .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. サーバーが起動したらブラウザを開き、URL アドレスで HTTP プロトコルを使用してサーバーの IP に続いて 28778 ポート番号を入力すると、ログイン資格情報を要求するプロンプトが表示されます。 。

ステップ 8 で設定したユーザーとパスワードを入力して次に進むと、Log.io アプリケーションがブラウザ上に表示され、監視されているログ ファイルがリアルタイムで表示されます。

http://192.168.1.20:28778

Web インターフェイスでは、新しい画面を追加し、それに応じてストリームまたはノードを整理します。

12. Log.io アプリケーションを停止するには、次のコマンドを実行します。

pkill node

ステップ 6: Log.io 管理スクリプトを作成する

13. 3 つのスイッチ (開始停止、およびステータス) /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 のステータスを開始、停止、表示するには、root アカウント (または Log.io アプリがインストールされているユーザー) でログインし、次のコマンドを実行するだけでアプリケーションを簡単に管理できます。

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

それだけです!私の意見では、Log.io は、ローカルまたはリモート サーバーのログ ファイルをリアルタイムで監視し、システム内部で何が起こっているかを把握し、特にサーバーの問題をデバッグするための優れた効果的な Web アプリケーションです。コンソールを使用しなくても、システムが応答しなくなったり、クラッシュしたりする傾向があります。