Input 如何让logstash通过ssh读取文件
使用ELK堆栈,我必须解析一些文件,但它们是远程的。 我的解决方案Input 如何让logstash通过ssh读取文件,input,logstash,acquia,Input,Logstash,Acquia,使用ELK堆栈,我必须解析一些文件,但它们是远程的。 我的解决方案 rsync over ssh在本地获取远程文件 我担心的是,我的elasticsearch索引呈指数增长(超过130MB),而日志文件只有25MB。 是否每个rsync cron(*/5 mn)都会导致logstash再次读取整个文件,而不使用sincedb内容 谢谢你的帮助:) 在上下文中,我使用acquia作为drupal站点的宿主,因此我无法控制如何访问日志文件 file { path => "/var/
- rsync over ssh在本地获取远程文件
file {
path => "/var/log/logstream/artecinema_drupal-watchdog.log"
start_position => "beginning"
type => "drupal-watchdog"
add_field => { "platform" => "cinema" }
}
纪尧姆·雷纳德(Guillaume Renard)Logstash通过索引节点编号和文件中的位置(偏移量)跟踪文件。运行rsync一次,检查inode,再次运行,然后再次检查
ls -i logfile.txt
如果它们具有相同的inode编号,则logstash应该可以。因为我想检查acquia的日志,我尝试了另一种方法,使用logstream()和supervisord(),这样可以节省时间
...
[program:logstream_artecinema_drupal-watchdog]
command=logstream tail prod:artetv prod --no-color --types=drupal-watchdog
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/logstream/artecinema_drupal-watchdog.log
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=7
environment=HOME="/root"
...
我的日志库读取日志文件
file {
path => "/var/log/logstream/artecinema_drupal-watchdog.log"
start_position => "beginning"
type => "drupal-watchdog"
add_field => { "platform" => "cinema" }
}
将选项添加到rsync命令:
--append
它会在末尾添加新行。它还意味着保留inode的--inplace