Home Backend Development PHP Tutorial How to use PHP scripts for log monitoring in Linux systems

How to use PHP scripts for log monitoring in Linux systems

Oct 05, 2023 am 11:36 AM
linux system Log monitoring php script

How to use PHP scripts for log monitoring in Linux systems

How to use PHP scripts for log monitoring in Linux systems

With the widespread application of Linux systems, system monitoring and log analysis have become more and more important. . Among them, using PHP scripts for log monitoring is a common way. This article will introduce how to use PHP scripts to implement simple log monitoring and provide specific code examples.

1. Create a PHP script file
First, create a file named "log_monitor.php" on the Linux system. This file will be used to monitor changes in the specified log file.

Use a command line editor (such as vi) to open a blank file, and then enter the following content:

<?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);
}
?>
Copy after login

Code description:

  • Line 3: Specify the The path of the monitored log file. Here we take the monitoring system log file /var/log/syslog as an example. You can modify this path according to actual needs.
  • Line 6: Get the initial size of the log file.
  • Lines 10-31: Enter an infinite loop and monitor the log file within the loop body. First clear the file status cache, then get the current size of the file and compare it with the initial size to determine whether the log file has changed. If a change occurs, the content from the initial size to the current size is read and processed accordingly, such as outputting to the console or writing to a log file. Finally, the initial size is updated to the current size and sleeps for 1 second to avoid frequent reading of the file.

2. Run the PHP script
Save the above code and close the file editor.

Then, use the following command to run the PHP script in the Linux system:

php log_monitor.php
Copy after login

After running, the script will continue to monitor the specified log file and output the latest content when the log file changes. .

It should be noted that before running the script, make sure that the PHP interpreter has been installed correctly and added to the system's environment variables, so that the PHP script can run normally.

3. Expansion and Optimization
The above sample code is just a simple log monitoring script, you can expand and optimize it according to actual needs.

For example, the read log content can be processed more flexibly, such as matching specific keywords or log levels through regular expressions, and then performing corresponding alarm or processing operations.

In addition, you can consider using third-party log analysis tools (such as Elasticsearch, Logstash, Kibana, etc.) to centrally manage and analyze logs to better discover, troubleshoot, and solve system problems.

Summary
By using PHP scripts for log monitoring, we can monitor log file changes in the Linux system in real time and take corresponding measures in a timely manner. This article introduces the basic implementation principles and specific code examples, and provides some ideas for expansion and optimization. I hope it will be helpful to you in log monitoring in Linux systems.

The above is the detailed content of How to use PHP scripts for log monitoring in Linux systems. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Using Task Manager in Linux Using Task Manager in Linux Aug 15, 2024 am 07:30 AM

There are many questions that Linux beginners often ask, "Does Linux have a Task Manager?", "How to open the Task Manager on Linux?" Users from Windows know that the Task Manager is very useful. You can open the Task Manager by pressing Ctrl+Alt+Del in Windows. This task manager shows you all the running processes and the memory they consume, and you can select and kill a process from the task manager program. When you first use Linux, you will also look for something that is equivalent to a task manager in Linux. A Linux expert prefers to use the command line to find processes, memory consumption, etc., but you don't have to

Solve the problem of garbled display of graphs and charts on Zabbix Chinese monitoring server Solve the problem of garbled display of graphs and charts on Zabbix Chinese monitoring server Jul 31, 2024 pm 02:10 PM

Zabbix's support for Chinese is not very good, but sometimes we still choose Chinese for management purposes. In the web interface monitored by Zabbix, the Chinese under the graphic icon will display small squares. This is incorrect and requires downloading fonts. For example, "Microsoft Yahei", "Microsoft Yahei.ttf" is named "msyh.ttf", upload the downloaded font to /zabbix/fonts/fonts and modify the two characters in the /zabbix/include/defines.inc.php file at define('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

7 ways to help you check the registration date of Linux users 7 ways to help you check the registration date of Linux users Aug 24, 2024 am 07:31 AM

Did you know, how to check the creation date of an account on a Linux system? If you know, what can you do? Did you succeed? If yes, how to do it? Basically Linux systems don't track this information, so what are the alternative ways to get this information? You may ask why am I checking this? Yes, there are situations where you may need to review this information and it will be helpful to you at that time. You can use the following 7 methods to verify. Use /var/log/secure Use aureport tool Use .bash_logout Use chage command Use useradd command Use passwd command Use last command Method 1: Use /var/l

Teach you how to add fonts to Fedora in 5 minutes Teach you how to add fonts to Fedora in 5 minutes Jul 23, 2024 am 09:45 AM

System-wide installation If you install a font system-wide, it will be available to all users. The best way to do this is to use RPM packages from the official software repositories. Before starting, open the "Software" tool in Fedora Workstation, or other tools using the official repository. Select the "Add-ons" category in the selection bar. Then select "Fonts" within the category. You'll see the available fonts similar to the ones in the screenshot below: When you select a font, some details will appear. Depending on several scenarios, you may be able to preview some sample text for the font. Click the "Install" button to add it to your system. Depending on system speed and network bandwidth, this process may take some time to complete

What should I do if the WPS missing fonts under the Linux system causes the file to be garbled? What should I do if the WPS missing fonts under the Linux system causes the file to be garbled? Jul 31, 2024 am 12:41 AM

1. Find the fonts wingdings, wingdings2, wingdings3, Webdings, and MTExtra from the Internet. 2. Enter the main folder, press Ctrl+h (show hidden files), and check if there is a .fonts folder. If not, create one. 3. Copy the downloaded fonts such as wingdings, wingdings2, wingdings3, Webdings, and MTExtra to the .fonts folder in the main folder. Then start wps to see if there is still a "System missing font..." reminder dialog box. If not, just Success! Notes: wingdings, wingdin

Centos 7 installation and configuration NTP network time synchronization server Centos 7 installation and configuration NTP network time synchronization server Aug 05, 2024 pm 10:35 PM

Experimental environment: OS: LinuxCentos7.4x86_641. View the current server time zone & list the time zone and set the time zone (if it is already the correct time zone, please skip it): #timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia/Shanghai2. Understanding of time zone concepts: GMT, UTC, CST, DSTUTC: The entire earth is divided into twenty-four time zones. Each time zone has its own local time. In international radio communication situations, for the sake of unification, a unified time is used, called Universal Coordinated Time (UTC). :UniversalTim

How to connect two Ubuntu hosts to the Internet using one network cable How to connect two Ubuntu hosts to the Internet using one network cable Aug 07, 2024 pm 01:39 PM

How to use one network cable to connect two ubuntu hosts to the Internet 1. Prepare host A: ubuntu16.04 and host B: ubuntu16.042. Host A has two network cards, one is connected to the external network and the other is connected to host B. Use the iwconfig command to view all network cards on the host. As shown above, the network cards on the author's A host (laptop) are: wlp2s0: This is a wireless network card. enp1s0: Wired network card, the network card connected to host B. The rest has nothing to do with us, no need to care. 3. Configure the static IP of A. Edit the file #vim/etc/network/interfaces to configure a static IP address for interface enp1s0, as shown below (where #==========

How to hide your Linux command line history How to hide your Linux command line history Aug 17, 2024 am 07:34 AM

If you are a Linux command line user, sometimes you may not want certain commands to be recorded in your command line history. There could be many reasons, for example, you hold a certain position in a company and you have certain privileges that you don't want others to abuse. Or maybe there are some particularly important commands that you don't want to execute by mistake while browsing the history list. However, is there a way to control which commands go into the history list and which don't? Or in other words, can we enable incognito mode like a browser in a Linux terminal? The answer is yes, and depending on the specific goals you want, there are many ways to achieve it. In this article, we’ll discuss some proven methods. Note: All commands appearing in this article have been tested under Ubuntu. different

See all articles