小九博客

  • 首页
  • 编程开发
  • 信息安全
  • 工具资源
  • 随笔
  • 在线工具
    • 在线图片水印
    • Json解析
    • JavaRuntimeExec
    • 加解密/编码工具集
  • 关于
小九博客
Hack The World!
  1. 首页
  2. 编程开发
  3. 正文

Yii2 Audit插件的使用【日志记录插件】

2018年01月02日

Yii2 Audit 插件的使用

Yii2-Audit插件是一个功能齐全的,用于记录和显示web 、 cli请求、数据库更改、php /js错误和相关数据的插件。

并且该插件是以module的形式安装于Yii中,使用起来极为方便。

项目地址:https://github.com/bedezign/yii2-audit

文档地址:https://bedezign.github.io/yii2-audit/

功能清单[点击可跳转到对应介绍]

  • 【Entries】记录Web、Cli请求 (核心功能)
  • 【Trails】记录数据库变更
  • 【Javascripts】记录JavaScript错误记录
  • 【Errors】记录Yii2错误记录
  • 记录cURL请求
  • 记录SOAP请求
  • 记录请求中发送的邮件
  • 数据可视化统计

1.安装

  • 1.1 本插件依赖于PHP mail parse扩展,如若使用请安装php_mailparse 并修改php.ini 启用该扩展

  • 1.2 使用Composer安装源文件

    1
    composer require --prefer-dist bedezign/yii2-audit:"dev-master"
  • 1.3 导入数据库

    1
    php yii migrate --migrationPath=@bedezign/yii2/audit/migrations

注意:导入前common/main-local里的数据库必须有一个名称为db的数据库配置。否则会报错。

1
2
3
4
5
6
7
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;port=3306;dbname=yii2-audit',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
  • 1.4 最简配置
    编辑config/main.php,在modules下加入:audit。更加完整的配置请查看链接 https://bedezign.github.io/yii2-audit/docs/module-configuration/
    1
    2
    3
    4
    5
    6
    <?php
    $config = [
    'modules' => [
    'audit' => 'bedezign\yii2\audit\Audit',
    ],
    ];
    然后访问yourdomain.com/index.php?r=audit 即可查看访问详细情况。如图:
    entries.png

2.Audit功能使用介绍

按照1.安装里面介绍的步骤,可能会出现没有权限访问的情况,那么接下来介绍如何配置该插件并详细介绍其功能。

2.1 【Entries】记录Web、Cli请求

  • 记录字段如下:
记录字段名称 解释 其它说明
User 默认记录操作用户ID -
IP 记录操作者IP -
Request Method 请求方法 例如GET、POST、HEAD、PUT等
Ajax 是否是异步请求 -
Route 请求的路由地址 -
Duration 请求响应时长 -
Memory 内存占用 -
Created 请求时间 -
  • 配置 ** 本功能是插件的核心功能,因此若要使用其它功能,必须先把这里配置好。**

完整配置请查看:https://bedezign.github.io/yii2-audit/docs/module-configuration/

以下内容均为config/main.php配置文件的内容。

1
2
3
4
5
6
'modules' => [
'audit' => [
'class' => 'bedezign\yii2\audit\Audit',
          //在此加入下文介绍的配置
     ]
]
  • db 指定数据库连接
    在使用了多数据库后,可以通过以下配置来指定一个数据库链接。

    1
    'db' => 'myAuditDatabase',
  • trackActions 要监听的action

    1
    'trackActions' => ['*'], //监听全部action
  • ignoreActions 要屏蔽的action,设置后将不在日志里记录这些action

    1
    'ignoreActions' => ['audit/*', 'debug/*'], //设置不记录audit组件内的所有操作和debug路由下的所有操作
  • accessIps 允许访问audit组件的IP列表

    1
    'accessIps' => ['127.0.0.1', '192.168.*'], //允许本地IP和192.168.IP段下的IP访问。如果为null则允许任何人访问
  • accessRoles 允许访问的角色列表

    1
    'accessRoles' => ['admin'], //设置角色为admin的角色可以访问audit组件。如果为null则允许任何人访问
  • accessUsers 允许访问的User ID列表。

    1
    'accessUsers' => [1,2],  //设置ID为1或2的用户可以访问audit组件,如果为null则允许任何人访问
  • maxAge 日志生命周期 单位:天

    1
    'maxAge' => 'debug', //永不删除
  • compressData 压缩数据。

  • panels 日志数据面板

    1
    2
    3
    4
    5
    'panels' => [
     'audit/request', //显示请求内容面板
     'audit/error', //显示错误信息面板
     'audit/trail', //显示数据库信息面板
    ],

    支持的面板列表如下:

  • RequestPanel //跟踪所有传入web和控制台的请求数据。
  • AssetPanel //显示载入的前端资源
  • ConfigPanel //Yii 和PHP配置
  • DbPanel //数据库查询信息
  • ErrorPanel //记录PHP异常、错误。
  • JavascriptPanel //自动记录JavaScript错误信息
  • LogPanel //Yii日志
  • MailPanel //邮件记录 这里必须开启PHP的PHPmail扩展,不然报错
  • ProfilingPanel //应用程序配置信息
  • TrailPanel //数据库变更记录
  • ExtraDataPanel //额外定义的数据
  • CurlPanel //记录应用的cURL请求。(包含响应,日志,和请求头)
  • SOAPPanel //记录应用的SOAP请求
  • YourOwnPanel //自定义Panel
  • 通过路由 yourdomain.com/audit/entry/index 查看Web、Cli请求记录。

在记录以上字段的同时,如果配置了【Trails】【Mails】【Javascripts】【Errors】,则会显示对应的,通过该请求造成的【Trails】记录ID,【Mails】记录ID,【Javascripts】记录ID和【Errors】记录ID。
如图:
POST记录.jpg
在POST hly-base-info/create 的同时,影响了数据库,并且在HlyBaseInfomodel里配置了AuditTrailBehavior,因此会记录数据库变更。**数据库变更记录配置详见2.2**

这里的Trails ID只是本次请求,导致的所有数据库变更中的最后一个,并不是完整的ID数组,完整的数据库变更还是要在Trails里查看。如图

trails ALL.png
在此就可以看到数据库完整的变化,这里的Entry ID指向了对应的操作日志。

  • 查看请求详细记录

通过上面的列表,点击最左侧图标进入详细查看。里面提供了类似Yii2 Debug的功能。在显示请求详细的同时,也会附带几个面板[可通过配置决定显示哪些panel。如图:

panel.jpg

2.2【Trails】记录数据库变更

  • 记录字段
记录字段名称 解释 其它说明
Entry ID 操作记录ID -
User ID 操作者ID -
Action 动作 Create、Update、Delete 等
type model路径 eg.backend\models\HlyBaseInfo
model ID model ID -
Field 受影响的字段 -
Diff 改变前后对比 这里会列举该记录被操作前的数据和被改变后的数据。如下图:
updateLog.jpg
  • 配置

记录数据库变更也很方便,只需要在需要记录的model的behaviors函数内加入AuditTrailBehavior:

1
2
3
4
5
6
public function behaviors()
{
return [
'bedezign\yii2\audit\AuditTrailBehavior'
];
}

比如记录Post表的变更记录。[会记录增/删/改操作]

1
2
3
4
5
6
7
8
9
10
<?php
class Post extends \yii\db\ActiveRecord
{
public function behaviors()
{
[
'class'=> 'bedezign\yii2\audit\AuditTrailBehavior'
],
}
}

效果如图:
trails.png

2.3 记录JavaScript错误记录

  • 记录字段
记录字段名称 解释 其它说明
Entry ID 操作记录ID -
Type 错误类型 -
Origin 错误来源 例如 localhost/:31:5 //代表HTML源代码第31行有JavaScript错误
Message 错误信息 例如 Uncaught ReferenceError: alert1 is not defined
  • 配置

记录JavaScript错误记录只需要在view视图里使用audit提供的JSLoggingAsset注册当前资源。

1
2
<?php
\bedezign\yii2\audit\web\JSLoggingAsset::register($this);

2.4 记录Yii2错误记录

  • 记录字段
记录字段名称 解释 其它说明
Entry ID 操作记录ID -
Message 错误信息 -
ErrorCode 错误码 -
File 文件路径 -
Line 导致错误的行号 -
Hash 错误哈希值 -
Created 创建时间 -

如图:
Errors.jpg

  • 配置

记录错误需要在配置文件config/main里配置,注意console的errorHandler需要设置成注释中的配置。

1
2
3
4
5
6
7
8
9
10
11
<?php
$config = [
'components' => [
'errorHandler' => [
// web error handler
'class' => '\bedezign\yii2\audit\components\web\ErrorHandler',
// console error handler
//'class' => '\bedezign\yii2\audit\components\console\ErrorHandler',
],
],
];
标签 Yii2 yii2-audit
最后更新:2018年01月02日

文章评论

小九

Just For Fun

文章大纲
  1. Yii2 Audit 插件的使用
    1. 功能清单[点击可跳转到对应介绍]
    2. 1.安装
    3. 2.Audit功能使用介绍
      1. 2.1 【Entries】记录Web、Cli请求
      2. 2.2【Trails】记录数据库变更
      3. 2.3 记录JavaScript错误记录
      4. 2.4 记录Yii2错误记录
分类目录
  • 编程开发
  • Yii2
  • 随笔
  • 工具资源
  • Django
  • 信息安全
标签聚合
php框架 七牛云 codeception 单元测试 Docker漏洞 sync
随机 最新 热点
随机 最新 热点
自动化编排学习(一)部署篇 Yii2 资源大全 PHP反射机制 Yii2 Audit插件的使用【日志记录插件】 Glary Utilities PRO注册码 常见容器漏洞总结
OpenSearch集群部署 DNSRebind攻击 MySQL数据同步到ElasticSearch(Logstash方案)爬坑纪实 自动化编排学习(一)部署篇 常见容器漏洞总结 免费CDN加速手把手教程

COPYRIGHT © 2021 小九博客 ALL RIGHTS RESERVED.