这是我尝试运行 logstash 时的输出。禁用 Redis 和 ElasticSearch 后,它仍然显示地址已在使用中。有什么建议?据我所知,这是在 1.1.8 中修复的,但我似乎仍然有这个问题。https://logstash.jira.com/browse/LOGSTASH-831
root@logs:~# java -jar logstash-1.1.13-flatjar.jar web --backend elasticsearch://127.0.0.1/
parse
logfile
thread
remaining
PORT SETTINGS 127.0.0.1:9300
INFO 10:52:13,532 [Styx and Stone] {0.20.6}[26710]: initializing ...
DEBUG 10:52:13,544 [Styx and Stone] using home [/root], config [/root/config], data [[/root/data]], logs [/root/logs], work [/root/work], plugins [/root/plugins]
INFO 10:52:13,557 [Styx and Stone] loaded [], sites []
DEBUG 10:52:13,581 using [UnsafeChunkDecoder] decoder
DEBUG 10:52:18,206 [Styx and Stone] creating thread_pool [generic], type [cached], keep_alive [30s]
DEBUG 10:52:18,226 [Styx and …Run Code Online (Sandbox Code Playgroud) 我想安装 Logstash 和其他,但是当我尝试时:
# yum install libevent-devel
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Transaction Check Error:
file /usr/bin/event_rpcgen.py from install of libevent-devel-2.0.12-1.rhel6.i686 conflicts with file from package compat-libevent14-1.4.13-1.rhel6.i686
file /usr/lib/libevent_core.a from install of libevent-devel-2.0.12-1.rhel6.i686 conflicts with file from package compat-libevent14-1.4.13-1.rhel6.i686
file /usr/lib/libevent_core.so from install of libevent-devel-2.0.12-1.rhel6.i686 conflicts with file from package compat-libevent14-1.4.13-1.rhel6.i686
file /usr/lib/libevent_extra.a from install of libevent-devel-2.0.12-1.rhel6.i686 conflicts with file from package compat-libevent14-1.4.13-1.rhel6.i686
file /usr/lib/libevent_extra.so from install of libevent-devel-2.0.12-1.rhel6.i686 conflicts with file from package compat-libevent14-1.4.13-1.rhel6.i686
Run Code Online (Sandbox Code Playgroud)
请给我建议以解决此错误冲突。
# rpm -qi compat-libevent14
Name : compat-libevent14 Relocations: …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 ELK 创建一个简单的 hello world,并且能够通过互联网查看 kibana 报告。我已经安装了 kibana、logstash、nginx 和 elasticsearch。这是我的/etc/logstash/conf.d/10-syslog.conf:
input {
file {
path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
type => "syslog"
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date { …Run Code Online (Sandbox Code Playgroud) 我正在尝试在使用多种应用程序技术(Java、Rails 和各种 DB)的环境中集中日志记录。
我们希望开发人员使用 Docker Compose 来调用堆栈,但我们希望他们引用中央日志源 (ELK) 来调试问题,而不是尝试打开 shell 以运行 Docker 容器。
应用程序都写入文件系统而不是 STDOUT/STDERR,这会删除与 Docker 日志驱动程序相关联的所有选项,还有日志喷口。
我们所做的是配置容器,让 rsyslog 包含应用程序日志文件,并将这些文件转发到具有 syslog 输入的 logstash。这在将日志从 A 移动到 B 方面起作用,但是基于 syslog 输入在 ELK 中管理多技术日志是可怕的(例如,试图捕获多个 Java 堆栈跟踪或 MySQL 慢查询)。
有一个更好的方法吗?我是否应该在每个容器中运行 logstash,以便我可以将过滤器和编解码器直接应用于日志文件,这样我就不必依赖 syslog 输入?
是否有某种方法可以将 Docker 日志驱动程序与写入文件系统的应用程序日志文件一起使用?
我已经安装
Logstash ElasticSearch Kibana
在 EC2 实例上。
我可以访问http://example.com:9200 在这里我得到
{
"status" : 200,
"name" : "Aleta Ogord",
"version" : {
"number" : "1.1.0",
"build_hash" : "2181e113dea80b4a9e31e58e9686658a2d46e363",
"build_timestamp" : "2014-03-25T15:59:51Z",
"build_snapshot" : false,
"lucene_version" : "4.7"
},
"tagline" : "You Know, for Search"
}
Run Code Online (Sandbox Code Playgroud)
所以弹性搜索是有效的,但是当我去
我得到“没有结果没有结果,因为没有找到与您选择的时间跨度匹配的索引”
我有一个配置文件
/etc/logstash/conf.d/ 包含以下内容:-
input {
file {
path => "/var/log/apache/access.log"
type => "apache-access"
}
}
filter {
grok {
type => "apache-access"
pattern => "%{COMBINEDAPACHELOG}"
}
}
output {
stdout { }
elasticsearch …Run Code Online (Sandbox Code Playgroud) 我想用logstash收集一个日志文件,文件格式是这样的:
type=USER_START msg=audit(1404170401.294:157): user pid=29228 uid=0 auid=0 ses=7972 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_open acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
Run Code Online (Sandbox Code Playgroud)
我应该使用哪个过滤器来匹配该行?或者有另一种方法来处理它。
任何帮助,将不胜感激。
使用下面的模式将行与grok debugger匹配,但仍然收到一条No matches消息。
type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): user pid=%{NUMBER:audit_pid} uid=%{NUMBER:audit_uid} auid=%{NUMBER:audit_audid} subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message}
Run Code Online (Sandbox Code Playgroud)
但是当我删除时subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message},它成功并得到了一个这样的 JSON 对象。
{
"audit_type": [
[
"USER_END"
]
],
"audit_epoch": [
[
"1404175981.491"
]
],
"BASE10NUM": [
[
"1404175981.491",
"524",
"1465",
"0",
"0"
]
],
"audit_counter": [
[
"524"
]
],
"audit_pid": [
[
"1465"
]
],
"audit_uid": [
[
"0"
]
], …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 logstash 设置电子邮件警报。现在,每次将模式“错误”解析到我的日志文件时,它都会给我发电子邮件,这可能会导致很多不必要的电子邮件。我想创建一个条件规则,以便让我们说“X 日志文件的模式为 1 分钟内出现错误 3 次,请给我发电子邮件”。这样我就不会被电子邮件淹没。
这是我当前的配置:
input {
file {
# sincedb_path => /path/to/whatever/
path => "/opt/test.log"
type => "test_log"
}
}
filter {
dns {
add_field => [ "IPs", "Logs, from %{host}" ]
type => [ "MESSAGES" ]
resolve => [ "host" ]
action => [ "append" ]
}
}
filter {
if [message] == "Error" or [message] == "error" {
throttle {
before_count => 1
after_count => 3
period => 10
key => "%{message}"
add_tag …Run Code Online (Sandbox Code Playgroud) 我把这个任务交给了我的同事,这是背景。
他使用在服务器上配置 Logstash 和在所有代理上配置 Logstash-forwarder 的常规方法,让 ELK(Elasticsearch、Logstash 和 Kibana)堆栈与我们的 RHEL 6.2 服务器一起工作。除了两个 logstash 代理节点外,一切都按预期正常工作。它不索引来自这两个节点的数据,并且这两个代理节点与环境中的其他代理略有不同。所有代理(正在运行)都运行带有“OpenSSL 1.0.0-fips”的 RHEL 6.2 机器,而两个麻烦的代理运行带有“OpenSSL 0.9.8e-fips-rhel5”的 RHEL 5.5。现在,让我解释一下当我开始研究这两个节点时所面临的问题。
当我们使用“/etc/init.d/logstash-forwarder restart”重新启动logstash转发器服务时,它会抛出以下错误:
2014/10/01 09:21:23.898917 无法与 10.xxx x509 tls 握手:无法验证 10.xxx 的证书,因为它不包含任何 IP SAN 2014/10/01 09:21:24.900502 连接到.xxx]:5000 (10.xxx) 2014/10/01 09:21:24.902081 无法与 10.xxx x509 tls 握手:无法验证 10.xxx 的证书,因为它不包含任何 IP SAN 2014/10/ 01 09:21:25.903970 连接到 [10.xxx]:5000 (10.xxx) 2014/10/01 09:21:25.905708 无法与 10.xxx x509 tls 握手:无法验证 10.xxx 的证书,因为它没有'不包含任何 IP SAN
我知道这是因为代理正在尝试使用其 IP 地址通过 SSL 连接到服务器,所以我再次使用 IP SAN 重新创建了证书,然后它开始向我抛出以下错误,不仅是 5.2 机器,还有6.2 机器:
2014/10/03 17:09:12.403253 无法与 …
我已经配置了 logstash (v1.5.0),带有一个简单的 syslog 输入,如下所示:
input {
syslog {
type => syslog
port => 5514
}
}
filter {
kv {}
}
output {
elasticsearch {
cluster => "logs"
host => "0.0.0.0"
protocol => "transport"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它似乎在某些 cron 日志上失败了。以下行无法解析为_grokparsefailure_sysloginput:
<77>Jul 22 22:01:01 ip-172-31-2-48 run-parts(/etc/cron.hourly)[2599 finished 0yum-hourly.cron
Run Code Online (Sandbox Code Playgroud)
最终的 JSON 输出是:
{
"_index": "logstash-2015.07.22",
"_type": "syslog",
"_id": "AU63yLrC118PBgBqQxRA",
"_score": null,
"_source": {
"message": "<77>Jul 22 22:01:01 ip-172-31-2-48 run-parts(/etc/cron.hourly)[2599 finished 0yum-hourly.cron\n",
"@version": "1",
"@timestamp": "2015-07-22T22:01:01.569Z",
"type": "syslog",
"host": "172.31.2.48",
"tags": …Run Code Online (Sandbox Code Playgroud)