欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ELK-windows使用过程中遇到的一些坑

程序员文章站 2022-05-27 15:11:12
...

kibana-4.2.0-windows安装一定要是jdk8,否则会报各种问题

logstash这个最坑了,配置文件容易出错,使用的时候一定要cd 到bin目录,然后先手工打开一下,查看是否启动正常,然后再关闭,通过服务方式启动,我就是TCP延迟参数改错了,造成系统一直time_wiat,下一次一定要谨慎修改配置参数。

学习的时候一些参数配置可以参考官方文档

https://www.elastic.co/guide/en/logstash/2.0/plugins-inputs-redis.html

比如这是redis参数配置

也可以通过字符串形势启动,下次可以尝试。

如图,初次启动kibana,打开网页后显示

Warning No default index pattern. You must select or create one to continue.

已经启动了elasticsearch和logstash, logstash.conf设置如下:

input {
  log4j {
    mode => "server"
    host => "127.0.0.1"
    port => 4567
    type => "log4j"
  }
  #stdin { } console input 
}
filter {
  #Only matched data are send to output.
}

output {  
  #stdout {} console output
  elasticsearch {
    action => "index"          #The operation on ES
    hosts  => "localhost:9200" #ElasticSearch host, can be array.
    index  => "applog2"         #The index to write data to.
  }
}

1、在“Index name or pattern”项下,填入一个elasticsearch的索引名,也即是Logstash配置文件中output项下的index对应的名称;在你这里应该是将“logstash-*”改成“applog2”;
2、在“Time-field name”,选用默认的配置:“@timestamp”,注意默认如果这个索引没有值的话,它是不会显示下拉框的
3、点击“create”即可;

使用之前一定要保证索引有值。如果你ES里没有index的话,就得先创建个,插入数据,然后才能使用kibana的查询功能。可以通过Elasticsearch 插件head 端增加一条记录和增加一个字段,这里有个地方需要注意,就是必须要有一个为Date类型的field,不然kibana那里是添加不了这个Index的,kibana是以时间排序来进行查询选择的。

 

 

在head 端增加一条数据

http://192.168.170.69:9200/             POST

/blog/article/                    // blog 是索引  article 是类型

{"id":12,"title":"Mysecond blog entry","content":"Still trying thisout...","posttime":"2014-01-01"}

ELK-windows使用过程中遇到的一些坑

 

命令行参数

Logstash 提供了一个 shell 脚本叫 logstash 方便快速运行。它支持一下参数:

  • -e

意即执行。我们在 "Hello World" 的时候已经用过这个参数了。事实上你可以不写任何具体配置,直接运行 bin/logstash -e '' 达到相同效果。这个参数的默认值是下面这样:

input {
    stdin { }
}
output {
    stdout { }
}
  • --config 或 -f

意即文件。真实运用中,我们会写很长的配置,甚至可能超过 shell 所能支持的 1024 个字符长度。所以我们必把配置固化到文件里,然后通过 bin/logstash -f agent.conf 这样的形式来运行。

此外,logstash 还提供一个方便我们规划和书写配置的小功能。你可以直接用 bin/logstash -f /etc/logstash.d/ 来运行。logstash 会自动读取 /etc/logstash.d/ 目录下所有的文本文件,然后在自己内存里拼接成一个完整的大配置文件,再去执行。

  • --configtest 或 -t

意即测试。用来测试 Logstash 读取到的配置文件语法是否能正常解析。Logstash 配置语法是用 grammar.treetop 定义的。尤其是使用了上一条提到的读取目录方式的读者,尤其要提前测试。

  • --log 或 -l

意即日志。Logstash 默认输出日志到标准错误。生产环境下你可以通过 bin/logstash -l logs/logstash.log命令来统一存储日志。

  • --filterworkers 或 -w

意即工作线程。Logstash 会运行多个线程。你可以用 bin/logstash -w 5 这样的方式强制 Logstash 为过滤插件运行 5 个线程。

注意:Logstash目前还不支持输入插件的多线程。而输出插件的多线程需要在配置内部设置,这个命令行参数只是用来设置过滤插件的!

提示:Logstash 目前不支持对过滤器线程的监测管理。如果 filterworker 挂掉,Logstash 会处于一个无 filter 的僵死状态。这种情况在使用 filter/ruby 自己写代码时非常需要注意,很容易碰上 NoMethodError: undefined method '*' for nil:NilClass 错误。需要妥善处理,提前判断。

  • --pluginpath 或 -P

可以写自己的插件,然后用 bin/logstash --pluginpath /path/to/own/plugins 加载它们。

  • --verbose

输出一定的调试日志。

小贴士:如果你使用的 Logstash 版本低于 1.3.0,你只能用 bin/logstash -v 来代替。

  • --debug

输出更多的调试日志

 

最后还是用notepad++ 以UTF-8无BOM编码 保存了一下,结果再次运行正确了,原来在标志A 保存成功

去掉中文注释和保存为以UTF-8无BOM编码 终于好了

 参考文章:使用kibana来进行ElasticSearch的信息查询检索

http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/output/redis.html