Logstach入门

22 阅读1分钟

logstash 入门

1.logstash的安装与部署

(1)下载地址:www.elastic.co/cn/download…

(2)安装问题:

截图.png 配置Pipelines

  • pipeline.id: my_pipeline_name
  • path.config: "/path/to/your/config/file.cfg"
  • queue.type: memory

2.logstash的架构

Pipeline数据采集管道

"event" 是指被处理的日志数据单元。包含:时间戳、消息内容、来源信息、标签

截图 (1).png 2.1数据采集Input插件

Stdin:控制台输入

截图 (2).png

2.2数据输出output插件

将Event推送到指定应用上

截图 (3).png

2.3数据解析Codec插件

Linie/Multiline:一行/多行数据转换

截图 (4).png

2.4数据处理Filter插件

对Event操作:添加/修改/删除,解析,数据转化

截图 (5).png

    • Date:日期解析
    • Dissect:分隔符解析
    • Grok:正则匹配解析
    • Mutate:处理字段。重命名,删除,替换[Convert,Gsub,Split,join,Merge,Rename,Update,Repalce]
    • Ruby:利用代码。动态修改Event

2.5 logstash执行过程

截图 (6).png

3.Logstash简单应用

(1)控制台单行数据读取

logstash -e "input{stdin{codec=>line}}output{stdout{codec=>rubydebug}}"

logstash -e "input{stdin{codec=>line}}output{stdout{codec=>dots}}" 注意:大小写Dots,dots通常用于查看处理进度

停止控制台输入:Ctrl + C 组合键

截图 (7).png 设置config文件编码:UTF-8无bom

logstash -f ./config/xxx.conf -t

截图 (8).png

修改文件编码格式UTF-8(文件另存为utf-8一般是有bom的文件)

截图 (9).png

(2)logstash -e "input{stdin{codec=>json}}output{stdout{codec=>rubydebug}}"

截图 (10).png

(3)控制台多行输入:multiline stdin{ codec=>multiline{ pattern => "^\s" #以字符开头的文本行 what => "previous" #前一个事件生效 [previous/next]] }

(4)文件读取(日志)

问题:

  • 文件只被读取一次
  • 重启后,从上次位置读取(sinceDB实现)
  • 读取文件新内容
  • 文档位置变化,不影响读取