Ubuntu PHP日志存储方案

549
2025/3/6 0:31:58
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu系统中,有多种方案可以用于存储和管理PHP日志。以下是一些常见的方案:

使用rsyslog将PHP日志写入系统日志

  • 安装rsyslog

    sudo apt-get update
    sudo apt-get install rsyslog
    
  • 配置rsyslog: 编辑 /etc/rsyslog.conf 文件,添加以下内容以接收PHP日志并将其写入系统日志:

    :msg, contains, "PHP" -/var/log/php_logs.log
    & stop
    
  • 重启rsyslog服务

    sudo systemctl restart rsyslog
    
  • 在PHP中使用syslog写入日志

    openlog("PHP", LOG_PID | LOG_PERROR, LOG_LOCAL0);
    syslog(LOG_INFO, "PHP Error: " . $errinfo);
    closelog();
    

使用Fluentd+Kafka+Elasticsearch进行实时日志分析

  • 安装Fluentd

    sudo apt-get install fluentd
    
  • 安装Kafka

    sudo apt-get install kafka
    
  • 安装Elasticsearch

    sudo apt-get install elasticsearch
    
  • 配置Fluentd: 编辑 /etc/fluent/fluent.conf 文件,配置Fluentd将日志发送到Kafka:

    <match php.**>
      @type kafka2
      brokers localhost:9092
      default_topic php_logs
      compression_codec gzip
    </match>
    
  • 配置Kafka到Elasticsearch: 使用Filebeat或Logstash将Kafka中的日志发送到Elasticsearch。

使用logrotate进行日志轮转

  • 安装logrotate

    sudo apt-get install logrotate
    
  • 配置logrotate: 创建或编辑 /etc/logrotate.d/php 文件,配置日志轮转策略:

    /var/log/php_logs/*.log {
        daily
        rotate 7
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
            /etc/init.d/php-fpm reload > /dev/null
        endscript
    }
    
  • 启用logrotate服务

    sudo systemctl enable logrotate
    sudo systemctl start logrotate
    

使用ELK Stack进行日志收集和分析

  • 安装ELK Stack

    • Logstash
    • Elasticsearch
    • Kibana
  • 配置Logstash: 创建 logstash.conf 文件,配置Logstash从文件读取日志并发送到Elasticsearch:

    input {
        file {
            path => "/var/log/php_logs/*.log"
            start_position => "beginning"
        }
    }
    
    filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
    }
    
    output {
        elasticsearch {
            hosts => ["localhost:9200"]
        }
    }
    
  • 启动Logstash

    sudo systemctl start logstash
    

以上方案可以根据具体需求选择使用,以实现PHP日志的有效存储和管理。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Ubuntu中Python代码怎么调试