- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Logstash 和多行协同工作时遇到一些困难
我正在使用Logspout将所有 stdout 日志条目作为 syslog 转发到 Logstash 的容器。
这是logstash收到的最终内容。这里有多行应该代表两个事件。
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: 2015-02-10 11:55:38.496 INFO 1 --- [tp1302304527-19] c.z.service.DefaultInvoiceService : Creating with DefaultInvoiceService started...
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: 2015-02-10 11:55:48.596 WARN 1 --- [tp1302304527-19] o.eclipse.jetty.servlet.ServletHandler :
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]:
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=mongo:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: mongo: unknown error}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=mongo:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: mongo: unknown error}}]
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
<14>2015-02-09T14:25:01Z logspout dev_zservice_1[1]: at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
每个日志行都以系统日志头开始。
根据上面的日志内容我创建了logstash配置文件。
input {
udp {
port => 5000
type => syslog
}
}
filter {
multiline {
pattern => "^<%{NUMBER}>%{TIMESTAMP_ISO8601} %{SYSLOGHOST:container_name} %{DATA}(?:\[%{POSINT}\])?:%{SPACE}%{TIMESTAMP_ISO8601}"
negate => true
what => "previous"
stream_identity => "%{container_name}"
}
grok {
match => [ "message", "(?m)^<%{NUMBER}>%{TIMESTAMP_ISO8601} %{SYSLOGHOST} %{DATA:container_name}(?:\[%{POSINT}\])?:%{SPACE}%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}%{NUMBER}%{SPACE}---%{SPACE}(?:\[%{DATA:threadname}\])?%{SPACE}%{JAVACLASS:clas
}
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS" ]
remove_field => ["timestamp"]
}
if !("_grokparsefailure" in [tags]) {
mutate {
replace => [ "source_host", "%{container_name}" ]
replace => [ "raw_message", "%{message}" ]
replace => [ "message", "%{logmessage}" ]
remove_field => [ "logmessage", "host", "source_host" ]
}
}
mutate {
strip => [ "threadname" ]
}
}
output {
elasticsearch { }
}
现在,当上述事件到达时,第一个事件将被正确解析并显示:
message = "Creating with DefaultInvoiceService started..."
第二个事件包含此消息,其中包含三个问题:
<14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]:
<14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=mongo:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: mongo: unknown error}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=mongo:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: mongo: unknown error}}]
<14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]: at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
<14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]: at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
<14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
<14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]: at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
<14>2015-02-10T12:59:09Z logspout dev_nginx_1[1]: 192.168.59.3 - - [10/Feb/2015:12:59:09 +0000] "POST /api/invoice/ HTTP/1.1" 500 1115 "http://192.168.59.103/"; "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36" "-"
每行包含前缀。 <14>2015-02-10T12:59:09Z logspout dev_zservice_1[1]:
每行都有一个附加的新行
问题。为什么 dev_nginx_1 条目本身不是一个事件。为什么它被认为属于前一个?如何去掉消息每一行中的 syslog 前缀。我怎样才能摆脱额外的新行?
最佳答案
对于 (1),您在多行中使用 container_name
。这是时间戳后面的字段。在您的示例中,它们都是“logspout”。对我来说似乎是正确的。
对于 (2),每一行都带有前缀和时间戳,因此您会期望它们默认存在。您正在执行 mutate{}
以将 message
替换为 log_message
,但我没有看到您正在设置 log_message
。那么,您认为前缀和时间戳是如何被删除的?
关于Logstash 多行与 Syslog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28433265/
我正在开发许多协同工作的应用程序,现在正在讨论如何整合日志。我从许多应用程序中看到,它们都将日志转储到/var/log/或与应用程序本身相关的任何目录。 前任。/var/log/hadoop、/var
我想通过配置 Log4cplus 配置文件,将 Log4cplus Syslog appender 配置为仅在特定条件下记录消息。 我要配置的条件如下: 1) 使用同步/异步发送日志消息到 Syslo
似乎 Syslog 有 1KB 的消息限制。这是硬编码到 Syslog 协议(protocol)中,还是可以为每个服务器设置的参数? 我希望我读到的文章已经过时了,所以如果你有任何信息,请分享。 最佳
在 python 中,记录到系统日志相当简单: syslog.openlog("ident") syslog.syslog(0, "spilled beer on server") syslog.cl
我正在研究如何从我的 Python 应用程序中登录到 syslog,我发现有两种方法: 使用 syslog.syslog()例行公事 使用记录器模块SysLogHandler 哪个是最好的选择,每个的
我的程序从远程系统获取事件,每个事件都包含一个时间戳。我想使用事件时间戳而不是系统时间将此事件记录到系统日志中。 有什么方法可以将自定义 header 发送到 syslog deamon 吗? 我在
Syslog-ng 似乎只允许最多 8192 字节的 log_msg_size,然后它将日志消息拆分为多个日志消息。在全局选项或源选项中设置它以使用超过 8192 似乎不起作用。我想知道我是否需要添加
希望我的问题是在正确的地方。 我目前正在尝试将系统日志从 Ubuntu 机器转发到 Qradar 机器。 他们在同一个网络上,我已经设法让 Rsyslog 工作,但 Qradar 不支持它。因此,我不
在 debian9 上使用 syslog 后端时,是否可以配置 boost log 将日志发送到特定文件。以下代码初始化我的日志接收器: namespace logging = boost::log;
我正在使用 logback 来更新 syslog,这就是我配置 appender 的方式: localhost LOCAL0 [%thread] %l
我的电脑运行几个 java 进程作为 systemd 服务。systemd 日志在系统日志中累积,最终导致磁盘空间不足。如何将 systemd 服务启动的日志重定向到/dev/null,以便它不会在
如何在 ubuntu 上配置 syslog 日志文件的轮换? 在我的/etc/syslog.conf 中,我有这一行: local1.*/var/log/log.txt 随着时间的推移,出现了以下备份
如何在Windows中为我的PHP应用程序配置Syslog?我在Internet上的Surferd显示需要安装许多服务器。 使用PHP获得SysLog进行了哪些配置? 最佳答案 // open
我正在为使用 yocto 构建的主板开发一些软件。对于日志系统,我使用 syslog-ng,但目前,我的应用程序将其输出写入/var/log/syslog 和/var/log/mylog。他们每个人都
我在 SO 上遵循了几个答案,但无济于事。 我正在 Macbook (Yosemite) 上开发,但我们的测试/生产机器是 Debian 7(使用 rsyslog)。我正在尝试以一种既可以在本地工作又
我对syslog消息格式有些困惑。我必须编写一个解析syslog消息的程序。当我阅读syslog-ng实例中的内容时,会收到类似以下的消息: Jan 12 06:30:00 1.2.3.4 apach
我有 syslog 成功将日志转发到上游服务器,如下所示: $MainMsgQueyeType LinkedList $MainMsgQueueSize 10000 $MainMsgQueusDisc
我需要澄清一下 我不想为日志输出着色 ,我只对写入 syslog 的程序输出感兴趣。 . 所以这是场景,我有一个 systemd运行脚本的单元服务,该脚本指示 Bash 中的 256 种颜色。 这是服
Logstash 和多行协同工作时遇到一些困难 我正在使用Logspout将所有 stdout 日志条目作为 syslog 转发到 Logstash 的容器。 这是logstash收到的最终内容。这里
我编写了一个程序,将从服务器读取一些数据(HTTP 请求)并将其传输到另一台服务器。我的程序在 Ubuntu 16.04 机器上作为服务运行。 当程序读取HTTP请求形式的数据时,我可以使用print
我是一名优秀的程序员,十分优秀!