数据批量导入

• 使用 _bulk 批量导入数据

– 批量导入数据使用 POST 方式,数据格式为 json,url编码使用 data-binary

– 导入含有 index 配置的 json 文件

gzip –d logs.jsonl.gz

curl -XPOST 'http://192.168.4.14:9200/_bulk' --data-binary

@logs.jsonl

gzip –d shakespeare.json.gz

curl -XPOST 'http://192.168.4.14:9200/_bulk' --data-binary

@shakespeare.json

练习

1)下载解压

[root@esk06 ~]# gzip -d accounts.json.gz

[root@esk06 ~]# gzip -d logs.jsonl.gz

[root@esk06 ~]# gzip -d shakespeare.json.gz

2)•使用 _bulk 批量导入数据

– 批量导入数据使用 POST 方式,数据格式为 json,url

编码使用 data-binary

– 导入含有 index 配置的 json 文件

curl -X POST 'http://192.168.1.35:9200/_bulk' --data-binary @accounts.json

[curl -X POST 'http://192.168.1.35:9200/_bulk' --data-binary @shakespeare.json

curl -X POST 'http://192.168.1.35:9200/_bulk' --data-binary @logs.jsonl

logstash 部分

• logstash 是什么

– logstash是一个数据采集、加工处理以及传输的工具

• logstash 特点:

– 所有类型的数据集中处理

– 丌同模式和格式数据的正常化

– 自定义日志格式的迅速扩展

– 为自定义数据源轻松添加插件

• logstash 安

– Logstash 依赖 java 环境,需要安装 java-1.8.0-openjdk

– Logstash 没有默认的配置文件,需要手劢配置

– logstash 安装在 /opt/logstash 目录下

rpm -ivh logstash-2.3.4-1.noarch.rpm

logstash 部分

• codec 类插件

input{

stdin{ codec => "json" }

}

filter{ }

output{

stdout{ codec => "rubydebug" }

}

– 我们输入普通数据和 json 对比

– {"a": 1, "c": 3, "b": 2}logstash 部分

• codec 类插件

– 练习 output 和 input 配置

– 练习 在 input 丌指定类型 json 输出结果

– 练习 在 output 丌指定 rubydebug 的输出结果

– 同时指定以后的输出结果logstash 部分

• 练习 input file 插件

file{

start_position => "beginning"

sincedb_path => "/var/lib/logstash/sincedb-access"

path => [“/tmp/alog”, “/tmp/blog”]

type => 'filelog'

}

– sincedb_path 记录读取文件的位置

– start_position 配置第一次读取文件从什么地方开始logstash 部分

• 练习 input tcp 和 udp 插件

tcp{

host => "0.0.0.0"

port => 8888

type => "tcplog"

}

udp{

host => "192.168.4.16"

port => 9999

type => "udplog"

}logstash 部分

• tcp & udp 练习

– 使用 shell 脚本,对 tcp 指定端口发送数据

function sendmsg(){

if (( $# == 4 )) && [ $1 == "tcp" -o $1 == "udp" ];then

exec 9<>/dev/$1/$2/$3

echo "$4" >&9

exec 9<&-

else

echo "$0 (tcp|udp) ipaddr port msg"

fi

}logstash 部分

• tcp & udp 练习

– 发送 tcp 数据

– sendmsg tcp 192.168.4.10 8888 ‘tcp msg’

– 发送 udp 数据

– sendmsg udp 192.168.4.10 9999 ‘udp msg’logstash 部分

• syslog 插件练习

syslog{

host => "192.168.4.10"

port => 514

type => "syslog"

}

– rsyslog.conf 配置向进程发送数据

local0.info

@@192.168.4.10:514

– 写 syslog ,查看状态

logger -p local0.info -t test_logstash 'test message'logstash 部分

• filter grok插件

– 解析各种非结构化的日志数据插件

– grok 使用正则表达式把飞结构化的数据结构化

– 在分组匹配,正则表达式需要根据具体数据结构编写

– 虽然编写困难,但适用性极广

– 几乎可以应用于各类数据

grok{

match => [“message”,“%{IP:ip}, (?<key>reg)”]

}logstash 部分

• grok 正则分组匹配

– 匹配 ip 时间戳 和 请求方法

"(?<ip>(\d+\.){3}\d+) \S+ \S+

(?<time>.*\])\s+\"(?<method>[A-Z]+)"]

– 使用正则宏

%{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth}

\[%{HTTPDATE:timestamp}\] \"%{WORD:verb}

– 最终版本

%{COMMONAPACHELOG} \"(?<referer>[^\"]+)\"

\"(?<UA>[^\"]+)\"logstash 部分

• input redis 插件

redis{

host => 'redis-server'

port => '6379'

data_type => 'list'

key => 'lb'

codec => 'json'

}

– 生产环境往往理由 redis 来做缓冲,这里给出配置logstash 部分

• output ES 插件

if [type] == "filelog"{

elasticsearch {

hosts => ["192.168.4.15:9200"]

index => "weblog"

flush_size => 2000

idle_flush_time => 10

}}

– 调试成功后,把数据写入 ES 集群

案例1

1)改写配置文件  //注意防火墙

[root@localhost logstash]# vim logstash.conf

input {

tcp {

port => 8888

mode => "server"

type => "tcplog"

}

udp {

port => 8888

type => "udplog"

}

}

filter {}

output {

stdout { codec => "rubydebug" }

}

[root@localhost logstash]# /opt/logstash/bin/logstash -f logstash.conf  //执行 

2)真机写入脚本                                            验证是否有xibhjhkj

[root@redhat ~]# cat aa

function sendmsg(){

if [ "$1" == "tcp" -o "$1" == "udp" ];then

exec 9<>/dev/$1/192.168.1.117/8888

echo "$2"  >&9

exec 9<&-

else

echo "$0 tcp|udp msg"

fi

}

[root@redhat ~]#. aa

[root@redhat ~]# sendmsg udp xibhjhkj   //发送

 

案例2

1)监听日志,收集信息

input{

file {

path => ["/var/log/secure"]  //ssh的登入日志

sincedb_path => "/dev/null"

start_position => "beginning"

type => "filelog"

}

tcp{

port => 8888

mode => "server"

type => "tcplog"

}

udp {

port => 8888

type => "udplog"

}

syslog {

port => 514

type => "syslog"

}

}

filter{          //收集内容的正则表达式

grok {

match => { "message" =>

"(?<rip>[0-9.]+).*\[(?<time>.+)\].*\"(?<method>[A-Z]+) (?<url>\S+)

(?<PROTO>.+)\" (?<res>\d+) (?<size>\d+) \"(?<ref>[^\"]+)\"

\"(?<agent>.+)\"" }

}

}

output{

stdout{codec => "rubydebug" }

}

ELK数据批量导入的更多相关文章

  1. [Django]数据批量导入

    前言:历经一个月的复习,考试终于结束了.这期间上班的时候有研究了Django网页制作过程中,如何将数据批量导入到数据库中. 这个过程真的是惨不忍睹,犯了很多的低级错误,这会在正文中说到的.再者导入数据 ...

  2. 将Excle中的数据批量导入数据库

    namespace 将Excle中的数据批量导入数据库{    class Program    {        static void Main(string[] args)        { S ...

  3. 将execl里的数据批量导入数据库

    本文将采用NPOI插件来读取execl文件里的数据,将数据加载到内存中的DataTable中 /// <summary> /// 将Excel转换为DataTable /// </s ...

  4. mysql中把一个表的数据批量导入另一个表中

    mysql中把一个表的数据批量导入另一个表中   不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定 ...

  5. .net core利用MySqlBulkLoader大数据批量导入MySQL

    最近用core写了一个数据迁移小工具,从SQLServer读取数据,加工后导入MySQL,由于数据量太过庞大,数据表都过百万,常用的dapper已经无法满足.三大数据库都有自己的大数据批量导入数据的方 ...

  6. Java实现Excel数据批量导入数据库

    Java实现Excel数据批量导入数据库 概述: 这个小工具类是工作中的一个小插曲哦,因为提数的时候需要跨数据库导数... 有的是需要从oracle导入mysql ,有的是从mysql导入oracle ...

  7. Java实现数据批量导入mysql数据库

    本文完全照搬别人的. 原文标题:Java实现数据批量导入数据库(优化速度-2种方法) 原文地址:https://blog.csdn.net/qy20115549/article/details/526 ...

  8. SQL Server中bcp命令的用法以及数据批量导入导出

    原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...

  9. 数据批量导入HBase

    测试数据: datas 1001 lilei 17 13800001111 1002 lily 16 13800001112 1003 lucy 16 13800001113 1004 meimei ...

随机推荐

  1. div隐藏滚动条,仍可滚动

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  2. PHP eval变量延迟赋值

    $str = 'and {$prev}name like \'%五子棋%\'';$prev = "table.";eval("\$str = \"$str\&q ...

  3. Markdown中插入复杂的合并表格方法

    由于Markdown自身的语法限制,不能直接插入有合并单元格的复杂表格. 姓名 学号 专业 张三 2018123456 计算机 赵四 2018222356 自动化 李六 2018666666 信息工程 ...

  4. async,await怎么用

    async声明一个函数是异步的,await用于等待异步完成,并且await只能在async中使用. 使用async,await并行处理请求,速度减半: 将多个promise直接发起请求,先执行asyn ...

  5. [置顶] Django-rest framework框架

    出师表 先帝创业未半而中道崩殂,今天下三分,益州疲弊此诚危急存亡之秋也.然侍卫之臣不懈于内忠志之士忘身于外者盖追先帝之殊遇,欲报之于陛下也.诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻 ...

  6. SQL Prompt9 注册教程

    在网上找了很多,都是9.0一下的版本,所以这边来发个9.0的版本 然后下载的安装文件应该包括 这两个: 第一个是注册机,第二个是安装包,安装这里就不用讲了,下一步下一步就完事,安装完成之后,一定要断网 ...

  7. Element没更新了?Element没更新,基于El的扩展库更新

    think-vuele 基于Vue和ElementUI框架进行整合二次开发的一个框架.提供一些elementUI没有的或当时没有的控件.优化了或简化了便于2B软件开发的一些控件 demo:http:/ ...

  8. MySQL基础篇(07):用户和权限管理,日志体系简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...

  9. Redhat 线下赛 WEB WP

    赛制 给每个参赛队伍所有题目的gamebox,参赛队伍在开赛时就能获取到所有题目的源码,可以选择先防御后攻击或先攻击后防御,只要拿到gamebox上的flag,机器人就会自动帮你攻击场上所有未防御选手 ...

  10. Cisco 综合配置(二)

    要求: 1. PC1 属于VLAN10,PC2属于VLAN20,网关:Master Router2. VLAN10.20 的网段为:192.168.10.0/24 . 192.168.20.0/24 ...