运维部署

PHP日志系统实验:从零散记录到集中分析

2024-11-28 | Monolog + Elasticsearch
背景需求 原系统使用简单的fwrite写日志,存在以下问题: - 日志文件分散在多个目录,难以查找 - 没有日志级别区分,重要错误容易淹没在大量信息中 - 日志分析困难,无法进行关键词搜索和统计 - 日志文件不断增长,占用大量磁盘空间 搭建步骤
  1. 引入Monolog库:`composer require monolog/monolog`
  2. 配置Elasticsearch处理器:
use Monolog\Logger;
use Monolog\Handler\ElasticsearchHandler;
use Elasticsearch\ClientBuilder;

// 创建Elasticsearch客户端
$client = ClientBuilder::create()
    ->setHosts(['localhost:9200'])
    ->build();

// 创建日志记录器
$logger = new Logger('zxpn');
$logger->pushHandler(new ElasticsearchHandler($client, [
    'index' => 'zxpn_logs',
    'type' => '_doc',
    'ignore_error' => true
]));

// 记录不同级别的日志
$logger->info('用户登录成功', ['user_id' => 123, 'ip' => $_SERVER['REMOTE_ADDR']]);
$logger->error('数据库连接失败', ['error' => $e->getMessage()]);
  1. 关键日志分类:
- error(系统错误) - warning(警告信息) - info(用户操作) - debug(接口调试) Kibana可视化配置
  1. 访问Kibana控制台:http://localhost:5601
  2. 创建索引模式:`zxpn_logs-*`
  3. 配置时间字段:`@timestamp`
  4. 创建仪表盘,添加以下可视化:
- 错误日志趋势图 - 接口响应时间分布图 - 最常出现的错误类型 - 用户操作热力图 价值 - 问题定位时间从平均2小时缩短至15分钟 - 系统稳定性提升30% - 运维效率提升50% 后续计划 - 实现日志告警机制 - 分析用户行为数据 - 建立性能指标监控体系
分享至:

相关学习推荐

运维部署

免费SSL证书部署实验:从HTTP到HTTPS的完整流程

2025-02-20
查看详情
前端开发

微信开放平台登录集成实验:从0到用户一键登录

2025-04-25
查看详情