- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对 rsyslog
的理解是它是 Ubuntu 机器上常见的 syslog
服务器实现。
此外,我的理解是rsyslog
可用于 Hook /捕获STDOUT
输出以及标准 syslog
消息。
最后,我的理解是rsyslog
然后可以转发任何 捕获的消息(同样,来自STDOUT
或 syslog
客户端)到另一台服务器,例如日志聚合器或另一台 rsyslog
服务器等。
所以首先,如果任何我上面说的不正确,请首先纠正我对syslog
/rsyslog
工作原理的理解,并且他们之间的关系!
如果我的假设或多或少是正确的,那么给出以下两个选项:
STDOUT
并配置 rsyslog
以捕获该流并将日志消息转发到远程进程(比如日志聚合器);或syslog
并配置 rsyslog
以捕获它并将日志消息转发到相同的远程进程鉴于这两个选项,我更喜欢#1,因为:
STDOUT
将打印到控制台;和STDOUT
只会被 rsyslog
“收集”如果我选择选项 #2,我在本地运行时会失去控制台可见性。
话虽如此,登录到 STDOUT
是否存在任何安全/性能/其他问题/注意事项/陷阱,这会使选项 #2 更具吸引力/更受欢迎?如果有,它们是什么?
最佳答案
您应该使用众多记录器之一(即 java.util.logging 等),然后根据每个用例对其进行适当配置。对于本地测试,将记录器配置为 STDOUT。对于生产,为系统日志配置它。
通过简单地记录 STDOUT,您将丢失记录器提供的任何元数据,或者可能由 syslog 使用的元数据,因为您只能记录消息。
例如,在 Glassfish 中,任何运行到 STDOUT 的内容都会作为 INFO 记录到 Glassfish 日志中。
因此,如果您将 Log4j 运行到 STDOUT,则会捕获日志,但您没有捕获的是它们是 WARN 还是 DEBUG 或其他什么。 TAG 作为消息的一部分被捕获,但与通过记录器本身运行的内容相比,消息表面上是不透明的。
如果您已将 Log4j 配置为使用 Glassfish 记录器(即 java.util.logger),那么 Glassfish 日志将捕获映射到 Glassfish 日志系统(例如 Log4j DEBUG)的元信息(如级别) j.u.l 很好)。现在,日志查看者可以访问该数据并对其采取行动。
这就是为什么您不想尽可能只登录到 STDOUT 的原因。最好记录到更高级别,让后面的步骤决定如何呈现它和组织数据。
关于Java 到 rsyslog : STDOUT or syslog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536139/
我有一个 cassandra 节点 (192.168.122.3) 和一个 rsyslog 服务器 (192.168.122.2)。在 cassandra 节点上,cassandra 将其日志文件转储
我是 rsyslog 的新手,我能够从客户端到服务器获取日志。但我需要按照日志严重性(意味着信息、错误、警告)来划分它,就像这样 最佳答案 试试这个在服务器端添加你的 rsyslog.conf 文件
我正在使用 rsyslogd,我想根据消息的内容(使用模板)将消息放入自定义日志文件中,并使用自定义文件格式(使用模板)。 rsyslog documentation提供了有关如何创建模板并根据内容/
我正在阅读 template documentation的 rsyslog为了找到更好的属性,我偶然发现了这个:spifno1stsp - expert options for RFC3164 tem
我在/etc/rsyslog.d 中有几个配置文件,例如 01-templates.conf、02-error-logs.conf、03-system-logs.conf,并且在我的/etc/中有以下
我正在尝试将 rsyslog 配置为以 RFC5424 格式输出。这意味着 PROCID 必须在 syslog header 中输出。如果没有 header ,它应该在其位置输出一个破折号 (-)。然
我正在使用 rsyslog 客户端将 freeradius 日志发送到 rsyslog 服务器。 Freeradius 日志存储在 rsyslog 客户端 PC 的/var/log/radius.lo
再会 我想使用 imfile 文件输入模块将文本文件导入 rsyslog。但是,rsyslog 并没有像我预期的那样解析文本文件的内容,我正在努力寻找关于它是如何完成的文档。为了测试设置,我使用 im
我是 rsyslog、远程日志记录和 Elasticsearch 的新手。 我配置了一个 python 脚本(从 docker 容器运行)以通过 TCP 将日志记录发送到 $HOST:$PORT。 我
我使用的是 rsyslog 4.6.2 版本,并且 /etc/rsyslog.conf 中有以下几行: $template InputToScript,"/home/user/%msg%" if $m
我在 CentOS 7(CentOS Linux 版本 7.1.1503(核心))上使用 rsyslog (rsyslog-7.4.7-7.el7_0.x86_64)。我们有一些应用程序使用 sysl
尝试配置Rsyslog客户端将日志发送到 Rsyslog 服务器。 两台机器都在 Centos7 上运行 Vagrant . 请参阅下面的每台机器的配置。 当我在客户端机器内登录时 - 它不会反射(r
我有一个设置,其中 docker 容器使用 journald日志驱动程序来写他们的日志。当前日志中的日志行被转发到主机上运行的 rsyslog,但 syslog 行上的应用程序名称显示为 docker
我正在使用 rsyslog 通过 TCP 向远程计算机发送消息。 java 服务正在写入 syslog 中名为 local4 的记录器。内存容量从 1MB 开始,一直增长到 4-5GB。我不知道如何调
不知何故,我无法让这个工作,我需要一些帮助。 我尝试将 systemd 服务写入的 syslog 中的日志过滤到单独的日志文件中。目前我正在使用 Debian .这是我的 rsyslog 配置,位于
我在 ubuntu 16.04 上使用 rsyslog 版本 8.16.0。我正在为 C++ 系统日志包装器编写一些测试。在包装器中,我只调用 syslog(3)。 配置文件中只有一条规则。 user
应该如何设置 rsyslog以获得最佳性能? 我们可以允许一些元素在服务器崩溃时丢失或直接丢失。 我们要将日志保存到 MySQL 数据库。 我们希望能够每秒处理至少 100 次日志写入,延迟为 0.0
我有一个应用程序服务器 (Ubuntu 14.04),上面运行着 tomcat 服务器。此应用程序服务器使用“rsyslog”,它被配置为将日志发送到 NXlog 服务器(在 Ubuntu 14.04
尝试远程记录所有系统日志,但 cron。我尝试了以下似乎有效的声明,但我不确定这是否得到官方支持,因为我找不到任何关于如何执行此操作的文档。 *.*;cron.!*
我在虚拟机上使用 rsyslog 从多个远程服务器通过 UDP 日志消息获取。我在/var/log/messages 中有很多来自其他服务器的消息,分析它们的唯一方法是第 4 列,其中写有发件人的主机
我是一名优秀的程序员,十分优秀!