在Ubuntu系统中,有多种方案可以用于存储和管理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:
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:
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:
配置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代码怎么调试