我在Elastic Cloud上创建了一个elasticsearch集群,并尝试从Heroku发送日志。到目前为止,我没有收到数据。
我有以下问题:
感谢您帮助实现这一目标。
运行heroku时,我应该使用什么URL来记录日志
它应该是运行Logstash的实例的URL。该URL应包含Logstash正在侦听的端口。
例如,如果您使用https://my_id.us-east-1.aws.found.io
作为实例地址,并使用您提到的作为logstash配置的要点,则URL应为:
https://my_id.us-east-1.aws.found.io:1514
我应该如何设置我的Logstash配置?
这得看情况。你提到的要点可能是一个好的开始。但它很过时了。因此,如果它不起作用,请考虑以下事项:
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}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
注意:在此配置中,您需要将localhost:9200
更改为Elastic Cloud上Elasticsearch集群的地址。