重新启动Logstash后,有时会发现Logstash会复制日志事件.想知道,什么是应用正确的方式start_position,sincedb_path,sincedb_write_interval的配置选项.
/home/tom/testData/*.logXXX.log重命名文件并创建XXX-<date>.log新XXX.log文件.在这种情况下,名称不会更改,但inode会更改.如果有人能对此有所了解,我将非常感激.
input {
file {
path => "/home/tom/testData/*.log"
type => "log"
start_position => "beginning"
sincedb_path => "/persistent/loc"
sincedb_write_interval => 10
}
}
Run Code Online (Sandbox Code Playgroud) 我一直试图使用shield写入logstash写入elasticseach而没有成功.
在将shield插件安装到elasticsearch之前,我的设置工作正常.我从elastic.co遵循了这个指南,并为logstash user role使用创建了一个新用户:
esusers useradd logstashadmin -r logstash
Run Code Online (Sandbox Code Playgroud)
我也更新了logstash output configuration,并且增加了protocol,user和password作为指南建议.
重新启动logstash和elasticsearch之后,我仍然没有收到来自logstash的elasticsearch上的任何内容.我错过了什么吗?
这是我的设置:
$ esusers roles logstashadmin
logstashadmin : logstash
$ cat shield/roles.yml
...
# The required role for logstash users
logstash:
cluster: indices:admin/template/get, indices:admin/template/put
indices:
'logstash-*': indices:data/write/bulk, indices:data/write/delete, indices:data/write/update, indices:data/read/search, indices:data/read/scroll, create_index
...
$ cat logstash/output.conf
output {
elasticsearch {
protocol => "http"
cluster => "logstash"
user => "logstashadmin"
password => "logstashadmin123"
}
} …Run Code Online (Sandbox Code Playgroud) elasticsearch logstash elasticsearch-plugin logstash-configuration elasticsearch-shield
我有一个json的形式
[
{
"foo":"bar"
}
]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用logstash中的json过滤器来过滤它.但它似乎没有用.我发现我无法使用logstash中的json过滤器解析列表json.有人可以告诉我有关此方法的任何解决方法吗?
UPDATE
我的日志
IP - - 0.000 0.000 [24/May/2015:06:51:13 +0000] *"POST /c.gif HTTP/1.1"* 200 4 * user_id=UserID&package_name=SomePackageName&model=Titanium+S202&country_code=in&android_id=AndroidID&eT=1432450271859&eTz=GMT%2B05%3A30&events=%5B%7B%22eV%22%3A%22com.olx.southasia%22%2C%22eC%22%3A%22appUpdate%22%2C%22eA%22%3A%22app_activated%22%2C%22eTz%22%3A%22GMT%2B05%3A30%22%2C%22eT%22%3A%221432386324909%22%2C%22eL%22%3A%22packageName%22%7D%5D * "-" "-" "-"
Run Code Online (Sandbox Code Playgroud)
以上日志的URL解码版本是
IP - - 0.000 0.000 [24/May/2015:06:51:13 0000] *"POST /c.gif HTTP/1.1"* 200 4 * user_id=UserID&package_name=SomePackageName&model=Titanium S202&country_code=in&android_id=AndroidID&eT=1432450271859&eTz=GMT+05:30&events=[{"eV":"com.olx.southasia","eC":"appUpdate","eA":"app_activated","eTz":"GMT+05:30","eT":"1432386324909","eL":"packageName"}] * "-" "-" "-"
Run Code Online (Sandbox Code Playgroud)
请在下面的配置文件中找到以上日志..
过滤器{
urldecode{
field => "message"
}
grok {
match => ["message",'%{IP:clientip}%{GREEDYDATA} \[%{GREEDYDATA:timestamp}\] \*"%{WORD:method}%{GREEDYDATA}']
}
kv {
field_split => "&? "
}
json{
source=> "events"
}
geoip {
source => "clientip"
}
Run Code Online (Sandbox Code Playgroud)
} …
我打算进行ELK堆栈设置,其中每日JSON输入存储在创建的日志文件中,每个日期对应一个.我的logstash将通过这些日志监听输入,并将其存储在与日志文件条目日期对应的索引处的Elasticsearch中.
我logstash-output.conf的事情如下:
output {
elasticsearch {
host => localhost
cluster => "elasticsearch_prod"
index => "test"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,就目前而言,logstash的所有输入都存储在elasticsearch的索引test处.我想要的是,在2015.11.19上发生的logstash条目,存储在名为logfile的日志文件中logstash-2015.11.19.log,必须相应地存储在索引中test-2015.11.19.
我应该如何编辑我的logstash配置文件来启用它?
我试图从3个服务器的kafka集群读入logstash,以便将其写入syslog服务器.我已写入syslog,但即使在logstash文档站点上,我也无法找到如何从kafka读入logstash.
Logtash版本:5.2.2 Kafka版本:0.10.2 scala版本:2_11
我去看了api版本,LOGSTASH_CORE_PLUGIN_API ="2.1.12"
这是我尝试使用的配置
input {
# file
# {
# path => "/opt/logstash/NOTICE.TXT"
#
# #DEBUG below
# #path => "../fsdfdstt.log"
# start_position => "beginning"
# sincedb_path => "/dev/null"
# }
kafka
{
zk_connect => "localhost:2181"
topic_id => "kafkatest2"
}
}
output
{
syslog
{
host => ["targetserver"]
port => port#
}
}
Run Code Online (Sandbox Code Playgroud)
但这是我得到的错误......
[2017-03-15T10:24:17,000][ERROR][logstash.inputs.kafka ] Unknown setting 'zk_connect' for kafka
[2017-03-15T10:24:17,008][ERROR][logstash.inputs.kafka ] Unknown setting 'topic_id' for kafka
[2017-03-15T10:24:17,015][ERROR][logstash.agent ] Cannot load an invalid configuration {:reason=>"Something …Run Code Online (Sandbox Code Playgroud) 题:
我已经拥有的东西:
Run Code Online (Sandbox Code Playgroud)input { http { host => "0.0.0.0" port => "5000" } } output { elasticsearch { hosts => "elasticsearch:9200" } }
我需要的:
Run Code Online (Sandbox Code Playgroud)input { http { host => "0.0.0.0" port => "5000" } http { host => "0.0.0.0" port => "7070" } }
elasticsearch logstash kibana logstash-configuration elastic-stack
所以我有以下格式的日志消息:
[INFO] <blah.blah> 2016-06-27 21:41:38,263 some text
[INFO] <blah.blah> 2016-06-28 18:41:38,262 some other text
Run Code Online (Sandbox Code Playgroud)
现在我想删除所有不包含特定字符串"xyz"的日志,并保留所有其余内容.我也想索引时间戳.
grokdebug帮助不大.
这是我的尝试:
input {
file {
path => "/Users/username/Desktop/validateLogconf/logs/*"
start_position => "beginning"
}
}
filter {
grok {
match => {
"message" => '%{SYSLOG5424SD:loglevel} <%{JAVACLASS:job}> %{GREEDYDATA:content}'
}
}
date {
match => [ "Date", "YYYY-mm-dd HH:mm:ss" ]
locale => en
}
}
output {
stdout {
codec => plain {
charset => "ISO-8859-1"
}
}
elasticsearch {
hosts => "http://localhost:9201"
index => "hello"
} …Run Code Online (Sandbox Code Playgroud) 尝试通过 logstash 更新 elasticsearch 中的特定字段。是否可以通过 logstash 仅更新一组字段?
请找到下面的代码,
input {
file {
path => "/**/**/logstash/bin/*.log"
start_position => "beginning"
sincedb_path => "/dev/null"
type => "multi"
}
}
filter {
csv {
separator => "|"
columns => ["GEOREFID","COUNTRYNAME", "G_COUNTRY", "G_UPDATE", "G_DELETE", "D_COUNTRY", "D_UPDATE", "D_DELETE"]
}
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash-data-monitor"
query => "GEOREFID:%{GEOREFID}"
fields => [["JSON_COUNTRY","G_COUNTRY"],
["XML_COUNTRY","D_COUNTRY"]]
}
if [G_COUNTRY] {
mutate {
update => { "D_COUNTRY" => "%{D_COUNTRY}"
}
}
}
}
output {
elasticsearch {
hosts => …Run Code Online (Sandbox Code Playgroud) 我正在使用Logstash和Elasticsearch版本5.6.5。到目前为止,已将Elasticsearch输出与HTTP协议一起使用,并且未进行身份验证。现在,使用基本身份验证(用户/密码)和CA认证的HTTPS URL保护Elasticsearch。我对Elasticsearch服务器没有任何控制权。我只是用它从Logstash输出到。
现在,当我尝试使用基本身份验证配置elasticsearch的HTTPS URL时,它无法创建管道。
输出配置
output {
elasticsearch {
hosts => ["https://myeslasticsearch.server.io"]
user => "esusername"
password => "espassword"
ssl => true
}
}
Run Code Online (Sandbox Code Playgroud)
失误
1. Error registering plugin {:plugin=>"#<LogStash::OutputDelegator:0x50aa9200
2. Pipeline aborted due to error {:exception=>#<URI::InvalidComponentError: bad component(expected user component):
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?我注意到有一个名为的字段cacert,它需要一些PEM文件。但是我不确定该放在哪里,因为Elasticsearch服务器使用的是CA认证的SSL,而不是自签名的SSL。
附加问题:我没有安装任何xpack。是否需要从Logstash向HTTPS输出到Elasticsearch的“ xpack”购买?
authentication https elasticsearch logstash logstash-configuration
我通过 Logstash 从 Oracle 写入索引。
输出是:
elasticsearch {
index => "****"
document_type => "****"
document_id => "%{my_computed_id}"
hosts => "localhost:9200"
}
Run Code Online (Sandbox Code Playgroud)
但是当我检查索引管理时,文档计数相同,但存储大小增加。
我想更新我的文档,为什么存储大小会增加?
提前致谢