我知道我可以使用脚本来做到这一点,但是我想知道是否有这样一个“现成的”软件,可以让我configuration我想要获取的主机(和文件path)间隔)从?
我打算设置LogStash来parsing日志(并将它们发送到集中的日志存储),但LogStash将parsing的许多日志驻留在远程主机上的文件中。 如果为此定制的软件已经存在,那么这将真正简化configuration日志文件检索的工作。
你似乎想要的是一个称为“日志托运人”的组件(不要与数据库复制混淆)。 Logstash本身提供一个; 它被称为“代理”,它是用Java编写的。 如果你不想在你所有的服务器上安装[特定版本的Java](这是一个非常合理的反对意见),那么有很多select。
日志托运人有几个共同的属性,你可以比较它们:
Logstash书籍列出了一些; 如伐木工(用Go编写,而不是由我的操作系统打包),还有很多其他的。
rsyslog也可以从文件中读取,但Windows的许可成本可能会让你失望; 但是如果你有一个恰好安装了rsyslog的RHEL / Centos /其他设备(由于可支持的原因,你通常没有安装任何你喜欢的设备的自由),这可能是有用的。
我目前正在使用nxlog,这是写在C; 它相当小,没有恼人的运行时或构build依赖; 至less在Linux和Windows上运行; 相当好的移植; 易于在没有提供包的平台上构build; 有精美的文档(但还可以更好); 一个响应式开发者 商业支持; 可以通过SSL传输; 从一堆不同的input读取,包括文件,系统日志,Windows事件日志等; 做了一些处理,包括应用一堆标签在Logstash中进行后续处理; 输出到一大堆不同的东西(我发送我的中央日志服务器,缓冲区,写入磁盘,旋转的文件,并发送到Logstash数据到Elasticsearch)
Nxlog并不完美; 它有一些错误,特别是在configurationparsing(注意缺less分号)周围,而且当你想尝试做更复杂的事情时,configuration的语义会变得有点混乱。 我碰到至less一个内存泄漏,另一个问题需要我同时执行一些挂起进程检测,但是除此之外,我仍然非常满意我们使用nxlog到目前为止我们的机队到目前为止,我们正在通过它推动大量的数据。
但是,由于您明确提到了使用SSH(这是一个真正的要求?),您可以设置一个文件的授权密钥scp,然后在本地有logstash提要; (假设你每次都重新调用logstash)利用logstashlogging文件起始位置的能力。 要注意的一点是,你可能不希望inode改变,所以用'…> file.txt'覆盖文件,这将replace内容,但不能replace文件本身。 但是,这可能会由于对数旋转而受挫。 您确实需要远程计算机上的日志托运人。 使用rsyslog可能是有用的,如果有一个最小的接触环境的要求,虽然你不能通过SSL传输(虽然也许更新版本的rsyslog将允许)。
希望有帮助,卡梅隆