Logstash部署,输入插件
Logstash 介绍
Logstash能够将采集日志、格式化、过滤,最后将数据推送到Elasticsearch存储。
Input:输入,输入数据可以是Stdin、File、TCP、Redis、Syslog等。
Filter:过滤,将日志格式化。有丰富的过滤插件:Grok正则捕获、Date时间处理、Json编解码、Mutate数据修改等。
Output:输出,输出目标可以是Stdout、File、TCP、Redis、ES等
Logstash 部署
二进制方式部署:
yum install java-1.8.0-openjdk -y |
修改配置文件:
vi /opt/elk/logstash/config/logstash.yml
pipeline: # 管道配置 |
Logstash 基本使用
示例:从标准输入获取日志并打印到标准输出
#注意先注视掉配置文件中path.config这个参数,这个是指定目录下的文件(file)输出的。 |
默认给日志加的三个字段:
• “@timestamp” 标记事件发生的时间点
• “host” 标记事件发生的主机
• “type” 标记事件的唯一类型
命令行参数:
• -e 字符串形式写配置
• -f 指定配置文件
• -t 测试配置文件语法
输入插件(Input)
输入阶段:从哪里获取日志 常用插件:
• Stdin(一般用于调试)
• File
• Redis
• Beats(例如filebeat)
示例:读取日志文件并输出到文件
创建目录及文件(用于测试)
#输入文件 |
输入插件:File
File插件:用于读取指定日志文件 常用字段:
• path 日志文件路径,可以使用通配符
• exclude 排除采集的日志文件
• start_position 指定日志文件什么位置开始读,默认从结尾 开始,指定beginning表示从头开始读
vim /opt/elk/logstash/conf.d/test.conf
input { |
在启动之前可以先测试以下配置文件是否正确
#测试配置文件 |
这里我们采用配置为系统服务启动:
vim /usr/lib/systemd/system/logstash.service
[Unit] |
加载配置
systemctl daemon-reload |
测试验证:
echo 1111111111111 >> /var/log/test/1.log #发现并没有输出到/tmp/test.log文件中 |
示例:配置日志来源
输入插件:通用配置字段
输入插件都支持的字段:
• add_field 添加一个字段到一个事件,放到事件顶部,一般用于标记日志来源。例如属于哪个项目,哪个应用
• tags 添加任意数量的标签,用于标记日志的其他属性,例如表明访问日志还是错误日志
• type 为所有输入添加一个字段,例如表明日志类型
vim /opt/elk/logstash/conf.d/test.conf
input { |
热加载配置
kill -HUP <logstash pid> |
测试验证:
echo 9999999999999999 >> /var/log/test/2.log |