微服务轮子项目(15) -审计日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 微服务轮子项目(15) -审计日志

1. 前言

在上一篇博客《微服务轮子项目(14) - 慢查询SQL》,主要讲解了慢查询在MySQL以及在Logstash和Filebeat的操作。

接下来,本文要讲解的是审计日志。

2. 审计日志集成

将来要集成审计日志到我们的项目中,其中审计信息默认输出到logger文件中:logs/audit/audit.log

集成的步骤如下:

step1: 配置信息,该功能默认关闭,添加以下配置到需要记录审计日志的服务上即可开启

ylw:
  audit-log:

step2:添加依赖

<dependency>
    <groupId>wheel-commons</groupId>
    <artifactId>wheel-log-spring-boot-starter</artifactId>
</dependency>

step3: 添加注解,在需要审计的方法上添加 @AuditLog注解,如果在类上添加则该类的所有方法都生效,支持 spEL 表达式

如果配置成功,开启后,会并生成出审计日志,内容如下:

3. 发送审计日志

3.1 安装部署ELK

3.2 定义es索引模板

执行下面的ssh脚本创建 【审计日志】 的索引模板,ip改为自己的服务器地址:

curl -XPUT http://192.168.28.130:9200/_template/template_audit_log -H 'Content-Type: application/json' -d '
{
    "index_patterns" : ["audit-log-*"],
    "order" : 0,
    "settings" : {
        "number_of_replicas" : 0
    },
    "mappings": {
        "doc": {
            "properties": {
                "operation": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    },
                    "analyzer": "ik_max_word"
                }
            }
        }  
    } 
}'

3.3 Logstash配置

step1:修改10-syslog.conf配置,在filter里增加以下内容:

if [fields][docType] == "audit-log" {
    grok {
      patterns_dir => ["/opt/logstash/patterns"]
      match => {
        "message" => "%{TIMESTAMP_ISO8601:logTime}\|%{MYAPPNAME:appName}\|%{MYTHREADNAME:className}\|%{WORD:methodName}\|%{MYAPPNAME:userId}\|%{MYAPPNAME:userName}\|%{MYAPPNAME:clientId}\|%{GREEDYDATA:operation}"
      }
    }
    date {
      match => ["logTime","yyyy-MM-dd HH:mm:ss.SSS Z"]
    }
    date {
      match => ["logTime","yyyy-MM-dd HH:mm:ss.SSS"]
      target => "timestamp"
      locale => "en"
      timezone => "+08:00"
    }
    mutate {
      remove_field => "message"
      remove_field => "logTime"
      remove_field => "@version"
      remove_field => "host"
      remove_field => "offset"
    }
}

step2: 修改30-output.conf配置,增加以下内容

if [fields][docType] == "audit-log" {
    elasticsearch {
      hosts => ["localhost"]
      manage_template => false
      index => "audit-log-%{+YYYY.MM.dd}"
      document_type => "%{[@metadata][type]}"
    }
}

3.4 Filebeat配置

修改配置文件 filebeat.yml,在 filebeat.inputs 里添加以下内容,抓取日志内容:

- type: log
  enabled: true
  paths:
    - D:\workspaces\projects\logs\audit\*.log
  fields:
    docType: audit-log
    project: microservices-platform

4. 查看数据

配置好elk之后日志数据就能同步到es了并自动创建索引:

通过页面展示数据:


相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
目录
相关文章
|
6天前
|
消息中间件 存储 监控
微服务日志监控的挑战及应对方案
【6月更文挑战第26天】微服务化带来模块独立与快速扩展,但也使得日志监控复杂。日志作用包括业务记录、异常追踪和性能定位。
|
13天前
|
存储 Go 索引
go语言并发实战——日志收集系统(一) 项目前言
go语言并发实战——日志收集系统(一) 项目前言
go语言并发实战——日志收集系统(一) 项目前言
|
2月前
|
Java Maven 微服务
微服务项目-将普通文件夹设为模块与添加services窗口
微服务项目-将普通文件夹设为模块与添加services窗口
15 0
|
2月前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
31 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
2月前
|
微服务
jeecg微服务项目调用接口报错Token验证失效的解决方法
jeecg微服务项目调用接口报错Token验证失效的解决方法
|
2月前
|
Cloud Native Dubbo Java
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
66 0
|
2月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
309 0
|
2月前
|
XML Java 数据格式
springboot 微服务项目如何集成 html 页面
springboot 微服务项目如何集成 html 页面
44 0
EMQ
|
2月前
|
JSON 安全 API
EMQX Enterprise 5.3 发布:审计日志、Dashboard 访问权限控制与 SSO 一站登录
EMQX Enterprise 5.3.0 版本已正式发布! 新版本带来多个企业特性的更新,包括审计日志,Dashboard RBAC 权限控制,以及基于 SSO(单点登录)的一站式登录,提升了企业级部署的安全性、管理性和治理能力。此外,新版本还进行了多项改进以及 BUG 修复,进一步提升了整体性能和稳定性。
EMQ
297 0
|
2月前
|
Java Docker 微服务
微服务框架(三十一)Docker项目发布流程
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Docker项目发布流程 本系列文章中所使用的框架版本为Spring Boot 2.0.3-RELEAS...