首先需要安装mtail和prometheus,可以按照以下步骤进行:
1、安装mtail
下载mtail二进制文件并解压:
#可以在这里找到适合自己的版本:https://github.com/google/mtail/releases
wget https://github.com/google/mtail/releases/download/v3.0.0-rc33/mtail_v3.0.0-rc33_linux_amd64.tar.gz
tar -xzvf mtail_v3.0.0-rc33_linux_amd64.tar.gz
将mtail二进制文件移动到/usr/local/bin/目录下:
sudo mv mtail /usr/local/bin/
2、安装prometheus
下载prometheus二进制文件并解压:
wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
tar -xzvf prometheus-2.28.1.linux-amd64.tar.gz
将prometheus二进制文件移动到/usr/local/bin/目录下:
sudo mv prometheus-2.28.1.linux-amd64/prometheus /usr/local/bin/
3、监控php_err.log
创建mtail配置文件php_err.mtail:
# php_err.mtail
# Define the log file to tail
# watch: /var/log/php_err.log
# Define the metrics to extract
counter php_fatal_total
counter php_warning_total
# Extract the metrics
# Fatal errors
/PHP Fatal(?P<error>.*)$/ {
php_fatal_total++
}
# Warning
/PHP Warning(?P<error>.*)$/ {
php_warning_total++
}
启动mtail并将数据推送到prometheus:
mtail -progs php_err.mtail -logs /var/log/php_err.log -port 3903
4、prometheus采集监控结果
在prometheus的配置文件prometheus.yml中添加以下内容:
# prometheus.yml
scrape_configs:
- job_name: 'mtail'
scrape_interval: 5s
static_configs:
- targets: ['localhost:3903']
启动prometheus:
prometheus --config.file=prometheus.yml
5、在grafana中添加prometheus数据源并创建仪表盘展示趋势图。
6、配置邮件报警规则,当fatal_errors_total或require_errors_total超过5次时发送邮件报警。可以使用prometheus自带的alertmanager实现邮件报警功能,具体配置可以参考官方文档。