ホームページ バックエンド開発 PHPチュートリアル Linux システムでログ監視に PHP スクリプトを使用する方法

Linux システムでログ監視に PHP スクリプトを使用する方法

Oct 05, 2023 am 11:36 AM
Linuxシステム ログ監視 PHPスクリプト

Linux システムでログ監視に PHP スクリプトを使用する方法

Linux システムでログ監視に PHP スクリプトを使用する方法

Linux システムの普及に伴い、システム監視とログ分析の重要性がますます高まっています。その中でも、ログ監視には PHP スクリプトを使用する方法が一般的です。この記事では、PHP スクリプトを使用して簡単なログ監視を実装する方法を紹介し、具体的なコード例を示します。

1. PHP スクリプト ファイルを作成します
まず、Linux システム上に「log_monitor.php」という名前のファイルを作成します。このファイルは、指定されたログ ファイルの変更を監視するために使用されます。

コマンド ライン エディタ (vi など) を使用して空のファイルを開き、次の内容を入力します。

<?php
// 指定要监控的日志文件
$logFile = '/var/log/syslog';

// 获取文件的初始大小
$fileSize = filesize($logFile);

// 持续监控日志文件的变化
while (true) {
  clearstatcache(); // 清除文件状态缓存

  // 获取文件当前的大小
  $currentSize = filesize($logFile);

  // 判断日志文件是否发生变化
  if ($currentSize > $fileSize) {
    // 日志文件发生变化,输出最新的内容
    $handle = fopen($logFile, 'r');
    fseek($handle, $fileSize); // 设置文件指针位置到初始大小之后
    $content = fread($handle, $currentSize - $fileSize); // 读取从初始大小到当前大小之间的内容
    fclose($handle);

    // 处理日志内容,比如输出到控制台或写入日志文件
    echo $content;
  }

  // 更新文件的初始大小为当前大小
  $fileSize = $currentSize;

  // 休眠一段时间,避免过于频繁地读取文件
  sleep(1);
}
?>
ログイン後にコピー

コードの説明:

  • 行 3 : 監視対象のログ ファイルのパスを指定します。ここでは監視システム ログ ファイル /var/log/syslog を例に挙げます。実際のニーズに応じてこのパスを変更できます。
  • 行 6: ログ ファイルの初期サイズを取得します。
  • 行 10 ~ 31: 無限ループに入り、ループ本体内のログ ファイルを監視します。まずファイル ステータス キャッシュをクリアし、次にファイルの現在のサイズを取得し、それを初期サイズと比較して、ログ ファイルが変更されたかどうかを判断します。変更が発生すると、初期サイズから現在のサイズまでの内容が読み取られ、コンソールへの出力やログ ファイルへの書き込みなど、それに応じて処理されます。最後に、初期サイズが現在のサイズに更新され、ファイルの頻繁な読み取りを避けるために 1 秒間スリープします。

2. PHP スクリプトを実行します
上記のコードを保存し、ファイル エディターを閉じます。

次に、次のコマンドを使用して、Linux システムで PHP スクリプトを実行します。

php log_monitor.php
ログイン後にコピー

実行後、スクリプトは指定されたログ ファイルの監視を継続し、ログが更新されたときに最新の内容を出力します。ファイルが変更されます。

スクリプトを実行する前に、PHP スクリプトが正常に実行できるように、PHP インタープリターが正しくインストールされ、システムの環境変数に追加されていることを確認してください。

3. 拡張と最適化
上記のサンプル コードは単なる単純なログ監視スクリプトであり、実際のニーズに応じて拡張および最適化できます。

たとえば、正規表現を使用して特定のキーワードやログ レベルを照合し、対応するアラームや処理操作を実行するなど、読み取りログの内容をより柔軟に処理できます。

さらに、サードパーティのログ分析ツール (Elasticsearch、Logstash、Kibana など) を使用してログを一元管理および分析し、システムの問題の発見、トラブルシューティング、および解決を改善することを検討できます。

概要
PHP スクリプトをログ監視に使用することで、Linux システムのログ ファイルの変更をリアルタイムで監視し、タイムリーに対応する措置を講じることができます。この記事では、基本的な実装原理と具体的なコード例を紹介し、拡張や最適化のアイデアをいくつか紹介しますので、Linux システムでのログ監視の一助になれば幸いです。

以上がLinux システムでログ監視に PHP スクリプトを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linux でのタスク マネージャーの使用 Linux でのタスク マネージャーの使用 Aug 15, 2024 am 07:30 AM

「Linux にはタスク マネージャーはありますか?」、「Linux でタスク マネージャーを開くにはどうすればよいですか?」 Linux 初心者がよく尋ねる質問は数多くあります。Windows のユーザーは、タスク マネージャーが非常に便利であることを知っています。 Windows で Ctrl+Alt+Del を押すと、タスク マネージャーを開くことができます。このタスク マネージャーには、実行中のすべてのプロセスとそれらが消費するメモリが表示され、タスク マネージャー プログラムからプロセスを選択して強制終了できます。初めて Linux を使用するときは、Linux のタスク マネージャーに相当するものを探すこともあります。 Linux の専門家は、プロセスやメモリ消費量などを確認するためにコマンド ラインを使用することを好みますが、そうする必要はありません。

中国語監視サーバーZabbixにおけるグラフ・チャートの表示が文字化けする問題を解決 中国語監視サーバーZabbixにおけるグラフ・チャートの表示が文字化けする問題を解決 Jul 31, 2024 pm 02:10 PM

Zabbix の中国語サポートはあまり良くありませんが、それでも管理目的で中国語を選択することがあります。これは、グラフィック アイコンの下に小さな四角形が表示されます。これは間違っており、フォントをダウンロードする必要があります。たとえば、「Microsoft Yahei」、「Microsoft Yahei.ttf」は「msyh.ttf」という名前になり、ダウンロードしたフォントを /zabbix/fonts/fonts にアップロードし、/zabbix/include/defines.inc.php 内の 2 つの文字を変更します。ファイルの定義('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

Linux ユーザーの登録日を確認する 7 つの方法 Linux ユーザーの登録日を確認する 7 つの方法 Aug 24, 2024 am 07:31 AM

Linux システムでアカウントの作成日を確認する方法をご存知ですか?知っていたら何ができるでしょうか?成功しましたか? 「はい」の場合、どうすればよいですか?基本的に Linux システムはこの情報を追跡しません。では、この情報を取得する別の方法は何でしょうか?なぜこれをチェックするのか疑問に思われるかもしれません。はい、この情報を確認する必要がある状況があり、そのときに役立ちます。以下の7つの方法で確認できます。 /var/log/secure を使用する aureport ツールを使用する .bash_logout を使用する chage コマンドを使用する useradd コマンドを使用する passwd コマンドを使用する last コマンドを使用する 方法 1: /var/l を使用する

5 分で Fedora にフォントを追加する方法を教えます 5 分で Fedora にフォントを追加する方法を教えます Jul 23, 2024 am 09:45 AM

システム全体のインストール フォントをシステム全体にインストールすると、すべてのユーザーがそのフォントを使用できるようになります。これを行う最善の方法は、公式ソフトウェア リポジトリから RPM パッケージを使用することです。開始する前に、Fedora Workstation の「ソフトウェア」ツール、または公式リポジトリを使用する他のツールを開きます。選択バーで「アドオン」カテゴリを選択します。次に、カテゴリ内の「フォント」を選択します。以下のスクリーンショットにあるような、使用可能なフォントが表示されます。 フォントを選択すると、いくつかの詳細が表示されます。いくつかのシナリオに応じて、フォントのサンプル テキストをプレビューできる場合があります。 「インストール」ボタンをクリックしてシステムに追加します。システム速度とネットワーク帯域幅によっては、このプロセスが完了するまでに時間がかかる場合があります。

Linux システムで WPS にフォントがないためにファイルが文字化けする場合はどうすればよいですか? Linux システムで WPS にフォントがないためにファイルが文字化けする場合はどうすればよいですか? Jul 31, 2024 am 12:41 AM

1. インターネットからフォント wingdings、wingdings2、wingdings3、Webdings、および MTExtra を見つけます。 2. メイン フォルダーに入り、Ctrl+H (隠しファイルを表示) を押し、.fonts フォルダーがあるかどうかを確認します。 3. wingdings、wingdings2、wingdings3、Webdings、MTExtra などのダウンロードしたフォントをメイン フォルダーの .fonts フォルダーにコピーし、wps を起動して、「システムにフォントがありません...」というリマインダー ダイアログがまだあるかどうかを確認します。そうでない場合は、「成功」をクリックしてください。

Centos 7 のインストールと構成 NTP ネットワーク時刻同期サーバー Centos 7 のインストールと構成 NTP ネットワーク時刻同期サーバー Aug 05, 2024 pm 10:35 PM

実験環境: OS: LinuxCentos7.4x86_641。現在のサーバーのタイムゾーンを表示し、タイムゾーンをリストし、タイムゾーンを設定します (すでに正しいタイムゾーンである場合はスキップしてください): #timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia /上海2. タイムゾーンの概念の理解: GMT、UTC、CST、DSTUTC: 国際無線通信の状況では、統一するために、地球全体が 24 のタイムゾーンに分かれています。協定世界時 (UTC) :UniversalTim と呼ばれる統一時刻が使用されます。

1本のネットワークケーブルを使用して2つのUbuntuホストをインターネットに接続する方法 1本のネットワークケーブルを使用して2つのUbuntuホストをインターネットに接続する方法 Aug 07, 2024 pm 01:39 PM

1 本のネットワーク ケーブルを使用して 2 つの ubuntu ホストをインターネットに接続する方法 1. ホスト A: ubuntu16.04 とホスト B: ubuntu16.042 を準備します。ホスト A には 2 つのネットワーク カードがあり、1 つは外部ネットワークに接続され、もう 1 つは外部ネットワークに接続されます。ホストBに。 iwconfig コマンドを使用して、ホスト上のすべてのネットワーク カードを表示します。上に示したように、作成者の A ホスト (ラップトップ) 上のネットワーク カードは次のとおりです。 wlp2s0: これはワイヤレス ネットワーク カードです。 enp1s0: 有線ネットワーク カード、ホスト B に接続されているネットワーク カード。残りの部分は私たちには関係ないので、気にする必要はありません。 3. A の静的 IP を構成します。ファイル #vim/etc/network/interfaces を編集して、以下に示すようにインターフェイス enp1s0 の静的 IP アドレスを構成します (#==========

Linux コマンドライン履歴を非表示にする方法 Linux コマンドライン履歴を非表示にする方法 Aug 17, 2024 am 07:34 AM

Linux コマンド ライン ユーザーの場合、特定のコマンドをコマンド ライン履歴に記録したくない場合があります。理由はさまざまです。たとえば、あなたは会社で特定の地位にあり、他の人に悪用されたくない特定の特権を持っています。または、履歴リストの参照中に誤って実行したくない、特に重要なコマンドがいくつかある場合もあります。しかし、どのコマンドを履歴リストに入れ、どのコマンドを入れないかを制御する方法はあるのでしょうか?言い換えれば、Linux ターミナルでブラウザのようなシークレット モードを有効にすることはできますか?答えは「はい」です。希望する具体的な目標に応じて、それを達成する方法はたくさんあります。この記事では、実証済みのいくつかの方法について説明します。注: この記事に記載されているすべてのコマンドは、Ubuntu でテストされています。違う

See all articles