Home  >  Article  >  Operation and Maintenance  >  Nginx access log analysis configuration, real-time monitoring of website access

Nginx access log analysis configuration, real-time monitoring of website access

WBOY
WBOYOriginal
2023-07-04 12:18:062048browse

Nginx access log analysis configuration, real-time monitoring of website access status

In the process of operating and maintaining the website, it is very important to understand the website access status. Nginx is a high-performance web server. Its access log records every access to the website. By analyzing and monitoring the access log, we can understand user access behavior, website performance and other information to help us better optimize and Manage the website.

1. Nginx access log

The Nginx access log file is determined by the access_log directive. By default, the Nginx access log file location is "/var/log/nginx/access. log". We can change the location and format of the access log by modifying the Nginx configuration file.

The default Nginx access log format is:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

For the log format configuration, we can customize it as needed to include more information. For example, we can add response time information by modifying the log_format command to:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
'$request_time';

2. Real-time monitoring of website access

In order to monitor website access in real time, we can use some of the Linux system Commands for simple filtering and statistics. Below, take the real-time statistics of the total number of website visits as an example to provide an example of a bash script.

#!/bin/bash

logfile="/var/log/nginx/access.log"

while true; do
    current_time=$(date +"%Y-%m-%d %H:%M:%S")
    total_access=$(tail -n 1000 $logfile | wc -l)

    echo "[$current_time] Total access: $total_access"

    sleep 10
done

In the above bash script, we use the tail command to read the latest 1000 lines of access logs, and count the number of lines through the wc command to get the total number of visits to the website. Each time the script is executed, it will sleep for 10 seconds and then execute again to update access statistics in real time. You can save the script as an access_monitor.sh file, grant execution permissions using the chmod x command, and then run the script by executing ./access_monitor.sh.

3. Advanced log analysis and monitoring tools

In addition to using simple commands for real-time monitoring, we can also use some advanced log analysis and monitoring tools to gain a deeper understanding of website visits. condition and performance.

  1. Awstats: Awstats is an open source website statistics tool that can extract useful information from Nginx access logs and generate statistical reports, including visits, visitor sources, traffic analysis, etc. and displayed in chart form.
  2. Elastic Stack: Elastic Stack is a powerful set of log analysis and monitoring tools, including Elasticsearch, Logstash and Kibana. We can use Logstash to import Nginx access logs into Elasticsearch, and then use Kibana for data visualization and analysis.

These tools can not only provide richer data analysis, but also perform more in-depth log search and filtering, helping us better monitor website access and performance.

Summary:

By analyzing and monitoring Nginx access logs, we can obtain key access information to help us better understand the access and performance of the website. Whether it is a simple command line tool or a more advanced log analysis and monitoring tool, it can provide us with valuable data analysis and decision support. I hope this article can help you better configure and use Nginx access logs and monitor website access in real time.

The above is the detailed content of Nginx access log analysis configuration, real-time monitoring of website access. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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