logstash注意事项

注意

  1. 一般你要导入原有数据进 Elasticsearch 的话,你还须要 filter/date 插件来修改默认的"@timestamp" 字段值。稍后会学习这方面的知识。html

  2. FileWatch 只支持文件的绝对路径,并且会不自动递归目录。因此有须要的话,请用数组方式都写明具体哪些文件。node

  3. LogStash::Inputs::File 只是在进程运行的注册阶段初始化一个 FileWatch 对象。因此它不能支持相似 fluentd 那样的 path => "/path/to/%{+yyyy/MM/dd/hh}.log" 写法。达到相同目的,你只能写成 path => "/path/to/*/*/*/*.log"。FileWatch 模块提供了一个稍微简单一点的写法:/path/to/**/*.log,用 ** 来缩写表示递归所有子目录。nginx

  4. start_position 仅在该文件从未被监听过的时候起做用若是 sincedb 文件中已经有这个文件的 inode 记录了,那么 logstash 依然会从记录过的 pos 开始读取数据。因此重复测试的时候每回须要删除 sincedb 文件(官方博客上提供了另外一个巧妙的思路:将 sincedb_path 定义为 /dev/null,则每次重启自动从头开始读)。web

  5. 由于 windows 平台上没有 inode 的概念,Logstash 某些版本在 windows 平台上监听文件不是很靠谱。windows 平台上,推荐考虑使用 nxlog 做为收集端redis


读取网络数据(TCP)

将来你可能会用 Redis 服务器或者其余的消息队列系统来做为 logstash broker 的角色。不过 Logstash 其实也有本身的 TCP/UDP 插件,在临时任务的时候,也算能用,尤为是测试环境。windows

+数组

小贴士:虽然 LogStash::Inputs::TCP 用 Ruby 的 Socket 和 OpenSSL 库实现了高级的 SSL 功能,但 Logstash 自己只能在 SizedQueue 中缓存 20 个事件。这就是咱们建议在生产环境中换用其余消息队列的缘由。缓存

nginx access.log --->----logstash读取文件 -->---redis---->----服务器

nginx access.log --->----logstash读取文件 -->---kafka ---->----网络

nginx access.log --->----logstash 读取文件--->---elasticsearch--->---其余(kibana)

相关文章
相关标签/搜索