Syslog是记录程序消息的标准。
我可以使用logstash 过滤器将多个具有相同标识符的日志行组合成一个日志行吗? 2024-11-19T13:31:43+00:00 10.xx.xx.xx mail_logs:信息:开始 MID 1253473 ICID 24103922...
目前,我所有的系统日志都记录到 /var/log/syslog ,并且我希望 local1.* 转到单独的日志文件。 我的 rsyslog.d/50-default.conf 文件如下所示: # rsyslog 的默认规则。 # # ...
log4j2 syslog 附加程序在 springboot 中不起作用
我正在尝试使用 log4j2 syslog 附加程序将消息从 springboot 应用程序写入 syslog。 这是我的 log4j2.xml 我正在尝试使用 log4j2 syslog 附加程序将消息从我的 springboot 应用程序写入 syslog。 这是我的log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE XML> <Configuration name="XMLConfig"> <Properties> <Property name="LOG_PATTERN">%d %p %C{1.} [%t] %m%n</Property> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n%throwable}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}" /> </Console > <RollingFile name="RollingFile" fileName="/data/storage/log/app.log" filePattern="/data/storage/log/app.%d{yyyy-MM-dd}.%i.Logs.gz"> <PatternLayout pattern="${LOG_PATTERN}" /> <Policies> <SizeBasedTriggeringPolicy size="100 MB" /> <TimeBasedTriggeringPolicy /> </Policies> <DefaultRolloverStrategy max ="100"> <Delete basePath="/data/storage/log/" maxDepth="2"> <IfFileName glob="*/app*.Logs.gz" /> <IfLastModified age="P7D" /> </Delete> </DefaultRolloverStrategy> </RollingFile> <Syslog name="Syslog" format="RFC5424" host="127.0.0.1" port="514" protocol="UDP" appName="myApp" enterpriseNumber="25979" facility="LOCAL0" /> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="RollingFile" /> <AppenderRef ref="Console" /> </Root> <Logger name="com.manjosh" level ="error" additivity="false"> <AppenderRef ref="RollingFile" /> <AppenderRef ref="Console" /> </Logger> <Logger name="com.manjosh.cms.vnf.util.SyslogUtil" level ="debug" additivity="false"> <AppenderRef ref="Syslog"/> </Logger> </Loggers> 我也在我的服务器上启用了 rsyslog [root@cmsnfv-c_7_1_53_0_standby_karthik ~]# sudo netstat -tulnp | grep 514 udp 0 0 127.0.0.1:514 0.0.0.0:* 2785/rsyslogd 我还看到 log4j 已正确初始化 2024-09-25 09:05:54,098 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a 2024-09-25 09:05:54,098 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=StatusLogger 2024-09-25 09:05:54,098 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=ContextSelector 2024-09-25 09:05:54,099 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=Loggers,name= 2024-09-25 09:05:54,099 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=Loggers,name=com.manjosh.cms.vnf.util.SyslogUtil 2024-09-25 09:05:54,099 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=Loggers,name=com.manjosh 2024-09-25 09:05:54,099 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=Appenders,name=Console 2024-09-25 09:05:54,099 main DEBUG Registering MBean org.apache.logging.log4j2:type=33c7353a,component=Appenders,name=RollingFile 2024-09-25 09:05:54,099 main DEBUG LoggerContext[name=33c7353a, org.apache.logging.log4j.core.LoggerContext@4524411f] started OK with configuration XmlConfiguration[location=/opt/dist/WebController/conf/log4j2.xml]. 2024-09-25 09:05:54,279 main DEBUG AsyncLogger.ThreadNameStrategy=CACHED 但是,我仍然没有看到任何写入 /var/log/syslog 或 localO.log 的消息或消息 我看到控制台和文件附加器工作正常。 我使用的是springboot 1.5.4 我正在使用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> 你可以尝试跑步吗 sudo 服务 rsyslog 状态 确保没有错误。如果有任何错误,请重新启动服务。 希望 rsyslog 不会因为任何空间或内存问题而崩溃。
我们有一个集中的 rsyslog 基础设施,使用 imtcp 模块捕获世界各地设备发送的 TCP 事件。 这个想法是从系统日志(TCP)读取并将事件存储到磁盘,一...
rsyslog - 完全关闭 $RepeatedMsgReduction
目前,我的 Docker 映像中的 $RepeatedMsgReduction 设置为打开。该镜像充当其他几个 Docker 镜像的基础镜像。 关闭此功能会产生什么影响,尤其是在神灵中......
从运行 syslog-ng 的客户端计算机,我想将多个日志文件发送到远程 syslog-ng 服务器。 是否有任何宏可以告诉我源文件名,以便在远程服务器上我可以分离...
从应用程序中提取干净的日志,覆盖其日志文件,而不先在 Linux 上截断它
我有一个闭源遗留应用程序,它有一个非常有趣的行为: 它使用 N 兆字节的固定大小日志文件,当文件已满时,它将“查找”指针重置为 0 并开始
了解 Docker 的用户寻求替代方案,尝试使用 podman(例如 Debian 12 上的 4.3.1), 那么例如podman run -it alpine:latest,然后例如安装并运行 mc, 并在系统日志中(例如......中的journalctl -af)
类“...TCPNetSyslogConfig”包含同一属性“facility”的多个设置器
我有这样的logback配置: <
如何使用 librelp 以编程方式为 relp 服务器配置 TLS
我正在使用 librelp 标头创建一个 relp 服务器,以从我也在创建的客户端接收消息。这个库的文档非常稀疏,因此我似乎无法确认......
我正在尝试设置 NXlog CE 以接收来自 3 个设备的日志并将其写入 JSON 文件。 它适用于一个 IP,但不适用于其他 IP。 使用 Wireshark 我可以看到日志正在到达设备...
如何使用 syslog4j 和 logback 来使用本机 Unix 套接字
我正在使用 logback 进行日志记录。我想使用 syslog4j 本地登录到 syslog。(因为我不想打开 udp 端口来登录 syslog) 我可以使用 syslog4j 作为 logback 的附加程序吗...
在Python 2.6中使用logging.SysLogHandler时如何设置ident字符串?
我使用logging.fileConfig()配置了日志记录。我有一个根记录器转到使用 SysLogHandler('/dev/log', handlers.SysLogHandler.LOG_USER) 的处理程序 这一切都运行得很好,...
我有一个正在运行的 zabbix 服务器,审计日志在 UI 中可见。我想将审计日志转移到graylog以建立集中式日志系统。 到目前为止,我还没有找到如何实现这一点,ei...
如何仅针对特定源将 syslog-ng 中的 log_message_size() 增加到 8K 以上并覆盖默认值
根据文档,Syslog-ng 默认情况下允许每条消息的长度为 8192 字节。当大小超过 8K 时,Syslog 将消息分成两部分。 当我全局应用 log_msg_size() 参数时,
我想在plsql中向syslog发送消息。 我认为可以通过 utl_tcp 和 ACL,但不知道如何做到这一点。 谁知道这个动作该怎么做? 预先感谢
如何在 Linux 中使用 grep 提取多个双引号之间的特定部分?
我想提取部分 msg =“services.facebook.com:内容服务器,Rule_name:WAN6_Ongoing,SSI:N(内容)” 从 src="192.168.1.1:443" dst="192.168.1.1:80" 米...
我知道 Keycloak 将其所有“登录事件”保存在服务器的“事件”选项卡中,而且还保存在数据库中(我在
log4j2 - Syslog 附加程序和 PatternLayout
我需要将事件记录到系统日志中。 我使用 lo4j2 和 syslog 附加程序。 log4j2.xml 中的附加程序块如下所示: 我需要将事件记录到系统日志中。 我使用 lo4j2 和 syslog 附加程序。 我的 log4j2.xml 中的附加程序块看起来像这样: <appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> <Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1"> </Syslog> <RollingFile name="AppLog" fileName="/var/log/app.log" filePattern="/var/log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> <Policies> <TimeBasedTriggeringPolicy/> </Policies> </RollingFile> </appenders> 如您所见,我有一个具有特定 PatternLayout 的 Console Appender 和 RollingFile Appender。 我想对 Syslog 附加程序使用相同的 PatternLayout。 但是,系统日志中的日志消息似乎始终使用预定义的布局。 我尝试执行以下操作: <Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Syslog> 但这没有任何效果。系统日志消息仍然具有相同的预定义格式。 如何确定进入系统日志的日志消息的格式? 正如本 log4j2 bug 报告中提到的,log4j2 的开发人员将 SyslogAppender 编码为 SocketAppender 硬连线到 SyslogLayout 因为它旨在符合原始系统日志格式或 RFC 5424。不应允许任何其他布局。 不幸的是,他们没有意识到 RFC 5424 规范并未对日志中包含的消息强制执行任何特定格式,在 Log4j2 实现中仅是日志的 %m 部分。 为了解决这个问题,一个解决方案(在同一个错误报告中建议)是在 SocketAppender 内使用 PatternLayout 重现 syslog 格式,就像这样 <Socket name="SYSLOG" host="localhost" port="514" protocol="UDP"> <PatternLayout pattern="<1>%d{MMM dd HH:mm:ss} ${hostName} appName: { "host":"${hostName}", "thread":"%t", "level":"%p", "logger":"%c{1}", "line":%L, "message":"%enc{%m}", "exception":"%exception" }%n" /> </Socket> 这将通过 UDP 将格式良好的 RFC5424 日志写入本地 514 端口。以下是示例日志输出: Sep 14 10:40:50 app-hostname app-name: { "host":"host-name-01", "thread":"http-nio-8080-exec-4", "level":"DEBUG", "logger":"ExecuteTimeInterceptor", "line":52, "message":"GET /health 200 served in 3", "exception":"" } 我不相信您可以在基本 Syslog 附加程序上使用模式。 从文档中可以看出 “SyslogAppender 是一个 SocketAppender,它将其输出写入由主机和端口指定的远程目标,格式符合 BSD Syslog 格式或 RFC 5424” http://logging.apache.org/log4j/2.x/manual/appenders.html#SyslogAppender 但是,它确实允许您指定“format = RFC 5424” 如果您使用 RFC 5424 然后你可以在loggerFields参数中放置一个PatterLayout。 请参阅http://logging.apache.org/log4j/2.x/manual/layouts.html#RFC5424Layout 希望有帮助! 您可以使用 LoggerFields 标签向 RFC5424 格式的 SyslogAppender 消息添加其他元素,如下所示: <LoggerFields> <KeyValuePair key="thread" value="%t"/> <KeyValuePair key="priority" value="%p"/> <KeyValuePair key="category" value="%c"/> <KeyValuePair key="exception" value="%ex"/> </LoggerFields> 然后我使用 rsyslog 的 RFC5424 解析模块 mmpstrucdata 将它们拉出,以创建 json 树。用于访问它们的 rsyslog.conf 模板如下所示: template(name="jsondump" type="string" string="'%$!rfc5424-sd!mdc@18060!thread%', '%$!rfc5424-sd!mdc@18060!priority%', '%$!rfc5424-sd!mdc@18060!category%', '%$!rfc5424-sd!mdc@18060!exception%'") 我只是想做同样的事情,并认为我会分享对我有用的东西。 - 萨姆 您可以使用 SocketAppender 和 PatternLayout 来格式化 syslog (syslog-ng) 消息。 为了使用固定设施支持动态严重性(例如:“用户级消息” - 请参阅RFC5424),模式应如下所示: <Socket name="SYSLOG" host="${env:INTERFACE}" port="514" protocol="UDP"> <PatternLayout pattern="<%level{TRACE=15, DEBUG=15, INFO=14, WARN=12, ERROR=11, Fatal=11}>%replace{${env:APPLICATION_NAME}}{\r}{}[%X{PID}] %t(%T) %c{10} - %m%n"/> </Socket> 要计算设施“用户级消息”和严重性“信息消息”的优先级值 (PRIVAL) - 请参阅 RFC5424 - 以下示例可能有所帮助: Syslog: Facility | Severity Numerical Code: 1 6 Bin: 0 0 0 0 1 | 1 1 0 Dec: 8 + 6 = 14 log4j2syslog-ngsocketappenderpatternlayout 我使用butcher82发布的配置,但必须对其进行一些更改才能产生我需要的结果。 我最终得到的是一条具有正确优先级、时间戳(几天前没有前导零)、主机和消息部分的消息。 syslog 和 log4J 级别之间的映射按照 org.apache.log4j.Level 中的定义使用,并且设施设置为 1(用户级消息),以简化优先级计算。 此模式应与 RFC-3164 兼容: <Socket name="SysLogAppender" host="localhost" port="514" protocol="UDP"> <PatternLayout pattern="<%level{TRACE=7, DEBUG=7, INFO=6, WARN=4, ERROR=3, Fatal=0}>%d{MMM d hh:mm:ss} ${hostName} %m%n"/> </Socket> 以下是生成的输出: <3>Dec 15 09:59:16 foo.bar.hostname this is a test message 注意: 可以在主机名后添加应用程序名称或 pid。
防止将systemd服务日志转发到syslog而不影响发送到syslog的其他服务日志
我的计算机将多个java进程作为systemd服务运行。systemd日志在syslog中累积,最终导致磁盘空间不足。如何重定向由systemd服务启动的日志...