IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> logstash 内网IP字段信息丰富 -> 正文阅读

[网络协议]logstash 内网IP字段信息丰富

目的

对内网IP进行字段信息丰富

背景

由于Geoip插件依赖的数据源文件GeoLite2-City.mmdb只包含了外网IP城市信息,因此只能够对外网IP进行字段信息丰富,主要原因在于Geoip插件依赖的数据源GeoLite2-City。
而GeoLite2-City.mmdb是一种二进制文件,没有找到合适的方法对其进行内网IP数据扩展,只能寻找它途。

方案

logstash提供了多种filter plugin,其中有些插件可以用来进行字段丰富,在这些插件中Jdbc_static filter plugin和Translate filter plugin能够很好的满足内网IP解析需求。
如果你使用的ES版本在7.5以上,你可以使用ES的enrich processor功能实现,本文不在介绍。如果你想要了解该功能,可以阅读https://elastic.blog.csdn.net/article/details/122138208。

Jdbc_static filter plugin

Jdbc_static filter 在首次启动时将远程数据库IP数据加载到loogstash本地内存数据库,对IP进行字段丰富时是从本地内存数据库获取IP城市信息。
内网IP数据发生变化后,不需重启logstash即可生效。可以通过设置loader_schedule参数来控制IP数据更新周期

示例如下:

filter {
	jdbc_static {
        loaders => [
        {
        id => "remote-servers"
        query => "select ip, city_name, country_name from MYDATA.IP_CITY order by ip"
        local_table => "servers"
        }
        ]
        local_db_objects => [
        {
        name => "servers"
        index_columns => ["ip"]
        columns => [
        ["ip","varchar(15)"],
        ["city_name","varchar(128)"],
        ["country_name","varchar(128)"]
        ]
        }
        ]
        local_lookups => [
        {
        id => "local-servers"
        query => "select city_name, country_name from servers WHERE ip = :ip"
        parameters => {ip => "[from_ip]"}
        target => "server"
        }
        ]

        # using add_field here to add & rename values to the event root
        add_field => { "[geoip][city_name]" => "%{[server][0][city_name]}"}
        add_field => { "[geoip][country_name]" => "%{[server][0][country_name]}"}
        remove_field => ["server"]

        loader_schedule => "* */2 * * *" # run loaders every 2 hours
        jdbc_user => "xxxx"
        jdbc_password => "xxxxxx"
        jdbc_driver_class => "com.ibm.db2.jcc.DB2Driver"   # DB2数据库
        jdbc_driver_library => "D:\MavenRepository\com\ibm\db2\db2jcc4\3.71.22\db2jcc4-3.71.22.jar"   # DB2数据库驱动路径
        jdbc_connection_string => "jdbc:db2://xx.xx.xx.xx:50000/EPLAT"
        }
}

Translate filter plugin

与Jdbc_static filter将IP数据维护到数据库不同,Translate filter使用文件来存放IP数据信息,已知可支持文件格式有YAML,JSON和 CSV。
可以通过设置refresh_interval参数来控制IP数据更新周期
refresh_behaviour 参数可以控制数据更新方式,设置为’replace’,会全部替换掉原来老的数据。

示例如下:
ip_city.yaml文件数据格式:
“216.46.173.126”: “shanghai,china”

filter {
	translate {
            field => "from_ip"
            destination => "ip_data"
            dictionary_path => 'D:/ES/data/ip_city.yml'
            refresh_interval => 86400
            refresh_behaviour => 'replace'   
        }

        if ("" in [ip_data]) {
            csv {
            source => ip_data
            separator => ","
            columns => [ "city_name", "country_name"]

            add_field => { "[geoip][city_name]" => "%{[city_name]}"}
            add_field => { "[geoip][country_name]" => "%{[country_name]}"}
            remove_field => [ "ip_data", "city_name", "country_name" ]
            }
        }
}
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:57:20  更:2022-07-17 16:59:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:00:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码