Win 10 ELK(5.4.1) 环境搭建与基本使用与 Expected one of # 解决办法
ELK :
elasticsearch: 将日志信息进行分割,建立索引 (依赖分词插件)
logstash : 收集日志
Kibana : 展示的作用,用来显示 日志信息,可以出现很美观的图表
ELK介绍:
- Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
- Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
- Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
推荐博客:
http://www.cnblogs.com/Wolfmanlq/p/5976246.html
http://www.cnblogs.com/Wolfmanlq/p/5976246.html
官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html
elasticsearch API:
http://127.0.0.1:9200/
http://127.0.0.1:9200/_search?pretty
http://localhost:9200/_cat/indices?v
命令执行:
Logstash.bat-f test.conf -t
环境搭建
先说win10 环境搭建:
1, 首先要保证 Windows 已经装好JDK ,并且配置好环境变量,这个就不多说了,应该大多都会配置
2. 下载 elasticsearch logstash ,kibana 下载地址:https://www.elastic.co/downloads
3. 下载完成后分别解压 (windows 一般下载 ZIP 包)
4. 启动 elasticsearch kibana logstash 方式 很简单
方式1:
分别进入各自的bin 目录 双击 elasticsearch.bat kibana.bat 即可运行
logstash 稍微复杂些,需要编写 logstash.conf 然后执行命令:
cmd 进入 bin 目录 执行命令
logstash.bat -f logstash.conf
方式2 将三者注册成windows 服务 用windows服务的方式来启动
先配置elasticsearch 服务:
cd到elasticsearch文件夹的bin目录下
cmd 运行 elasticsearch-service install,会提示安装成功
cmd 运行 elasticsearch-service manager 会弹出服务管理界面,可以设置自动启动,并启动之。
浏览器访问 127.0.0.1:9200 ,出现成功的json
配置logstash ,cd 到logstash文件夹的下bin目录
创建配置文件 logstash.conf ,内容如下:
input{
stdin {
}
}
output{
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "logstash-%{+YYYY.MM.dd}"
document_type => "form"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
这里有坑:
1)编辑文件最好选择 notepad 打开 必须是 UTF-8 withou BOM
否则 启动 logstash 会报错: 最好的方式不要去粘贴别人的,自己手动写logstash.conf 这个最保险
"Expected one of #, input,filter, output at line 1, column 1 (byte 1) after "}>reasons
网上解决办法如下: 但是不行
3. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encodinginputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
./bin/logstash -e "input { stdin{}} filter {} output{ elasticsearch { host =>"127.0.0.1:9200" index=>"cpcn-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}"
正确解决如下:
安装步骤:
cd到logstash文件夹下bin目录
创建一个run.bat 内容如下:
logstash.bat -f test1.conf
2.下载nssm
nssm 可以将其注册为windows 服务
https://nssm.cc/release/nssm-2.24.zip
解压拷贝nssm-2.24\win64目录下nssm.exe到logstash bin目录
cmd 运行 nssm.exe install logstash
会弹框:
在弹出的界面设置 Path为run.bat,Details选项卡设置显示名,Dependencies选项卡设置依赖服务 elasticsearch-service-x64
最后点击install service 安装成功
3. 最后配置 kibana 服务:
config目录kibana.yml 修改配置:
elasticsearch.url: "http://127.0.0.1:9200"
server.port: 5601
和之前一样拷贝nssm文件,安装服务的Path为kibana.bat,依赖项可以设置logstash,elasticsearch-service-x64
服务 :点击我的电脑-》右键 管理-》 服务 可以看到刚才装的三个服务,可以按照 es -logstash -<kibana 顺序启动起来
装完之后,可以考虑用一下:
可能出现如下问题:
kibana 头顶上有一串红色的
Unableto fetch mapping. Do you have indices matching the pattern? Windows
这个还是因为 logstash 未将数据传输到 ES ,并且没有默认索引 logstash-*
只有当数据传输到logsestash 了 并且索引匹配了才可看到如下: 才有create
logstash.conf
这里创建了一个新索引 cpcn-*
input{
stdin{}
}
output{
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "cpcn-%{+YYYY.MM.dd}"
document_type => "form"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
这样才可以创建
当然 也可通过命令创建 索引
put 索引名{
setting{
}
}
input {
rabbitmq {
host => "172.31.1.129"
subscription_retry_interval_seconds => "5"
vhost => "/"
exchange => "MonitorExchange"
queue => "Log_LogMessage_Ptran"
durable => "true"
key => "app.log.monitor"
user => "root"
password => "root"
}
}
output {
if "_grokparsefailure" in [tags]{
file {
path => "/server/middleware/grokparsefailure.txt"
}
}
elasticsearch {
hosts => ["172.31.1.100:9200"]
index => "145.90-base-%{+YYYY-MM-dd}"
workers => 1
flush_size => 1
idle_flush_time => 1
template_overwrite => true
}
}
我这日志只有12-21号的日志,
配置还是用时间戳的,我创建 12-20的索引就不行,因为没有20号的日志数据
问题解决,给大家发福利,有有效期的, 支付宝扫码, 赶紧 过期不候啊
问题解决,给大家发福利,有有效期的, 支付宝扫码, 赶紧 过期不候啊