运维部署

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

2024-11-28 | Monolog + Elasticsearch
背景需求 原系统使用简单的fwrite写日志,存在以下问题: - 日志文件分散在多个目录,难以查找 - 没有日志级别区分,重要错误容易淹没在大量信息中 - 日志分析困难,无法进行关键词搜索和统计 - 日志文件不断增长,占用大量磁盘空间 搭建步骤
  • 引入Monolog库:`composer require monolog/monolog`
  • 配置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()]);
  • 关键日志分类:
  • - error(系统错误) - warning(警告信息) - info(用户操作) - debug(接口调试) Kibana可视化配置
  • 访问Kibana控制台:http://localhost:5601
  • 创建索引模式:`zxpn_logs-*`
  • 配置时间字段:`@timestamp`
  • 创建仪表盘,添加以下可视化:
  • - 错误日志趋势图 - 接口响应时间分布图 - 最常出现的错误类型 - 用户操作热力图 价值 - 问题定位时间从平均2小时缩短至15分钟 - 系统稳定性提升30% - 运维效率提升50% 后续计划 - 实现日志告警机制 - 分析用户行为数据 - 建立性能指标监控体系
    分享至:

    相关学习推荐

    运维部署

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

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

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

    2025-04-25
    查看详情