ELK-windows使用过程中遇到的一些坑
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"}
命令行参数
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
推荐阅读
-
工作中可能遇到的难以发现的坑——相似字符问题
-
jquery在项目中做复选框时遇到的一些问题笔记
-
SpringBoot项目使用RedisTemplate遇到key值\xac\xed\x00\x05t\x00的坑
-
QT攻略——我在QT中遇到的那些坑
-
DEV C++在win7系统中安装以及遇到的一些问题解决
-
NET Framework项目移植到NET Core上遇到的一系列坑(2)
-
AntD框架的upload组件上传图片时遇到的一些坑
-
Android Studio 3.x版本 的输入法遇到的坑及解决方案
-
html标签从.net framework转移到.net standard(.net core 2.2)时遇到的坑及填坑
-
详解安装mitmproxy以及遇到的坑和简单用法