Win 10 ELK(5.4.1) 环境搭建与基本使用与 Expected one of # 解决办法

 

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号的日志数据

 

问题解决,给大家发福利,有有效期的, 支付宝扫码, 赶紧 过期不候啊

 

 

 

 

 

 

 

 

问题解决,给大家发福利,有有效期的, 支付宝扫码, 赶紧 过期不候啊

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangxiaoming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值