GithubHelp home page GithubHelp logo

openwaf_log's Introduction

Synopsis

    -- app/openwaf_init.lua
    -- construct a new object - twaf_logger
    local twaf_log_m = require "lib.twaf.twaf_log"
    twaf_logger = twaf_log_m:new(config)
    
    -- app/openwaf_log.lua
    twaf_logger:log(events)

Modules Configuration Directives

"twaf_log": {
        "access_log_state":false,     -- 访问日志开关
        "security_log_state":true,    -- 安全日志开关
        "sock_type":"udp",            -- 支持tcp和udp两种协议
        "content_type":"JSON",        -- 支持JSON和INFLUXDB两种日志格式
        "host":"127.0.0.1",           -- 日志服务器地址
        "port":60055,                 -- 日志服务器端口号
        "flush_limit":0,              -- 缓冲,当存储的日志大于阈值才发送
        "drop_limit":1048576,
        "max_retry_times":5,          -- 最大容错次数
        "ssl":false,                  -- 是否开启ssl协议
        "access_log":{}               -- 访问日志格式
        "security_log":{}             -- 安全日志格式
}

###access_log_state syntax: "access_log_state": true|false

default: false

context: twaf_log

访问日志开关,默认关闭

###security_log_state syntax: "security_log_state": true|false

default: true

context: twaf_log

安全事件日志开关,默认开启

###sock_type syntax: "sock_type": tcp|udp

default: udp

context: twaf_log

日志传输协议,默认udp

###content_type syntax: "content_type": JSON|INFLUXDB

default: JSON

context: twaf_log

日志格式,默认JSON

###host syntax: "host": string

default: "127.0.0.1"

context: twaf_log

日志接收服务器的ip地址

###port syntax: "port": number

default: 60055

context: twaf_log

日志接收服务器的端口号

###flush_limit syntax: "flush_limit": number

default: 0

context: twaf_log

缓冲区大小,当存储的日志大于阈值才发送,默认值为0,即立即发送日志

###drop_limit syntax: "drop_limit": number

default: 1048576

context: twaf_log

###max_retry_times syntax: "max_retry_times": number

default: 5

context: twaf_log

最大容错次数

###ssl syntax: "ssl": true|false

default: false

context: twaf_log

是否开启ssl协议,默认false

###access_log syntax: "access_log": table

default: false

context: twaf_log

访问日志格式

###security_log syntax: "security_log": table

default: false

context: twaf_log

安全事件日志格式

若content_type为JSON,则日志格式为

[
    variable_key_1, 
    variable_key_2, 
    ...
]

若content_type为INFLUXDB,则日志格式为

{
    "db":MEASUREMENT名称, 
    "tags":[variable_key_1, variable_key_2, ...], 
    "fileds"[variable_key_1, variable_key_2, ...],
    "time":true|false
}

变量名称详见规则引擎模块twaf_secrules

    #日志格式举例
        #JSON格式
        "security_log": [
            "remote_addr",
            "remote_port",
            "userid",
            "dev_uuid",
            "original_dst_addr",
            "original_dst_port",
            "remote_user",
            "time_local",
            "msec",
            "request_method",
            "request_uri",
            "request_protocol",
            "status",
            "bytes_sent",
            "http_referer",
            "http_user_agent",
            "gzip_ratio",
            "http_host",
            "raw_header"
        ]

        #INFLUXDB格式
        "security_log": {
            "db":"test",                  -- MEASUREMENT名称
            "tags":[],                    -- tags keys
            "fileds":[                    -- fileds keys
                "remote_addr",
                "remote_port",
                "userid",
                "dev_uuid",
                "original_dst_addr",
                "original_dst_port",
                "remote_user",
                "time_local",
                "msec",
                "request_method",
                "request_uri",
                "request_protocol",
                "status",
                "bytes_sent",
                "http_referer",
                "http_user_agent",
                "gzip_ratio",
                "http_host",
                "raw_header"
            ],
            "time":true                   -- 日志是否携带时间戳
        }

Directives

new

syntax: logger = new(self, config)

log

syntax: logger:log(events)

openwaf_log's People

Contributors

miracleqi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.