Syslog - 将所有应用程序的日志转储到Syslog是一个好主意吗?

A-l*_*bby 6 logging syslog

我正在开发许多协同工作的应用程序,现在正在讨论如何整合日志.我从许多应用程序中看到的是,它们都将日志转储到/ var/log /或与应用程序本身相关的任何目录.

防爆./ var/log/hadoop,/ var/log/access_log等

但我的同事说"只需把所有东西放在Syslog中".因此,一切都是集中的,易于排除故障.我们不必知道每个应用程序中的日志设置.

那么,使用syslog而不是将日志文件放在自己的应用程序中有什么好处?将日志文件放在/ var/log /或其选择的任何目录中只是以开发人员为中心吗?或者它实际上是syslog的最佳实践?

Ste*_*tin 1

当您将日志发送到 syslog 时,syslog 守护进程(例如 rsyslog)可以通过多种方式处理日志:

  • 您可以编写过滤器来以不同的方式处理每条日志(按生产应用程序、按严重性/设施……)
  • 您可以轻松地将日志转发到某个中央日志服务器,并具有完整性和机密性 (TLS)
  • 您已正确识别了表征每行的字段(时间戳、应用程序名称、进程 ID,...)
  • 如果您愿意,您无论如何都可以将日志写入 /var/log/...
  • 您可以使用 rsyslog 获得缓冲区,以避免任何日志丢失
  • 您可以使用可靠的协议进行日志转发(例如RELP)
  • 您可以自行解析消息以提取更多元数据
  • 您可以将日志发送到某些 Elasticsearch 数据库
  • 处理或多或少是同步完成的
  • 当您想要分析愚蠢的平面日志文件时,您不必解析它们
  • 包含敏感信息的日志不必以明文形式写入本地文件系统

事实上,我没有看到任何将日志直接写入某个文件的充分理由。