我正在构建一个日志分析器服务来开始主要监控我们的 pfSense 防火墙、XenServer 管理程序、FreeBSD/Linux 服务器和 Windows 服务器。
互联网上有很多关于 ELK 堆栈以及如何使其正常工作的文档。但我想以不同的方式使用它,但我不知道这是一个好的解决方案还是只是浪费时间/磁盘空间。
我已经有一台 FreeBSD 10.2 机器作为远程系统日志服务器,我的想法是简单地将所有日志集中在这台机器上,系统日志服务器将日志转发logstash-forwarder
给 ELK 服务器。
我很清楚这种方法将提高此设置的磁盘要求,但另一方面,我将只有一台logstash-forwarder
安装了守护程序的机器,这对我来说似乎很好。
但谈问题。该logstash
分析器匹配[host]
与服务器的主机名发送日志消息,并在这种方法只存在对ELK,远程系统日志服务器“服务器”节目的。
我知道我可以自定义logstash
配置文件上的设置,但我不知道(而且我没有经验知道)这是否只是它的解析器上的一个简单设置是否会危及整个 ELK经验。
最后,我只想要一些关于我的日志架构的建议,以及它是否可以工作,或者我是否应该没有其他选择。
提前致谢,
'错误无法在http://localhost:9200联系 Elasticsearch 。请确保可以从您的系统访问 Elasticsearch。
目前我正在关注http://packetbeat.com/getstarted
我安装了
现在,我更改我的 kibana/config.js 文件 - 输入,
elasticsearch: "http://"localhost":9200",
Run Code Online (Sandbox Code Playgroud)
在弹性搜索下。我得到一个纯白的页面,{{dashboard.current.title}}
顶部。
如果我注释掉 elasticsearch: "http://"localhost":9200",
我得到 Error Could not contact Elasticsearch at http://localhost:9200. Please ensure that Elasticsearch is reachable from your system.
如果我也输入它作为elasticsearch: "http://localhost:9200",
,我会得到同样的错误,它无法联系elasticsearch。
所以,我假设elasticsearch: "http://"localhost":9200",
是对的,但它应该呈现一些东西。也许是一个用户界面
我正在尝试使用 nginx 反向代理设置Kibana4,到目前为止取得了部分成功。这是我与 Kibana 相关的配置:
server {
listen 82;
server_name ${HOSTNAME};
set $kibana kibana.docker;
location /kibana4/ {
proxy_pass http://$kibana:5601;
proxy_set_header Host $host;
proxy_set_header Referer "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_buffers 16 64k;
proxy_busy_buffers_size 64k;
client_max_body_size 256k;
client_body_buffer_size 128k;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果我去http://localhost:82/kibana4/
我会得到Not Found 404
但是,如果我替换location /kibana4/
为location /
,则一切正常 - 当然http://localhost:82
在这种情况下URL 会更改为。
我发现了一些与类似问题相关的其他主题,例如:
在 web 目录下的 nginx 反向代理后面运行 sinatra 程序 [Kibana]
但那里描述的解决方案对我不起作用。我什至尝试过这个配置: …
我正在尝试为 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) 我已经安装
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 设置电子邮件警报。现在,每次将模式“错误”解析到我的日志文件时,它都会给我发电子邮件,这可能会导致很多不必要的电子邮件。我想创建一个条件规则,以便让我们说“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) 对 nginx 完全陌生,我需要一个 conf 文件来使 nginx 充当反向代理,以在同一主机上向具有不同 url 路径的 elasticsearch 和 kibana 提供请求。我的意思是,我想要:
localhost/es -> localhost:9200
localhost/kibana -> localhost:5601
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到?
谢谢