elk5.4小白踩坑记录

搭建请参考:http://www.ywnds.com/?p=9776

搭建步骤:http://www.ywnds.com/?p=9776

 

 

 

 

初步解方案:先不用管这个提示,当你创建完索引后,接受数据后。一般刷新就ok了

 

 

出现这个估计是服务正在运行中,你又开启服务就会报错

 

 

 

 

 

 

 

这个报错是由于在lasticsearch中开启了用户登陆的插件,所以解决这个问题添加上用户即可:如:

 

 

启动失败:

 

 

2017-09-01 09:22:38,499 main ERROR RollingFileManager (/path/to/logs/elasticsearch_access.log) java.io.FileNotFoundException: /path/to/logs/elasticsearch_access.log (Permission denied) java.io.FileNotFoundException: /path/to/logs/elasticsearch_access.log (Permission denied

 

办法:chown elasticsearch.elasticsearch -R /path    改权限

索引创建:

Elk ---head  插件安装

wget https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.xz

tar xf node-v6.9.2-linux-x64.tar -C /usr/local/

cd /usr/local/

ln -s node-v6.9.2-linux-x64/ node

[root@elk node]# cat /etc/profile.d/node.sh 

export nodePATH=/usr/local/node

export PATH=$PATH:$nodePATH/bin

export nodePATH PATH

[root@elk node]# source   /etc/profile.d/node.sh

[root@elk ~]# node –v

v6.9.2

 

yum install git -y

git clonegit://github.com/mobz/elasticsearch-head.git (这个文件千万不能放在elasticsearch的 pluginsmodules 目录下,否则报一堆错误)

 

cat config/elasticsearch.yml|grep -v"$^"|grep -v "#"

node.name: hyxdelk

network.host: 0.0.0.0

http.port: 9200

http.cors.enabled: true (在文件最后添加)

http.cors.allow-origin: "*" (在文件最后添加)

[root@elk elasticsearch-head]# npm install

npm install -g grunt-cli

[root@elk elasticsearch-head]# ./node_modules/grunt/bin/grunt server (可能会报错,解决方法: 别用路径,直接进入/node_modules/grunt/bin/下  直接执行 grunt server)

 

 

http://elk安装主机:9100访问

 

 

启动elk服务

################插件安完毕#######################################

 

 

 

 

报错:

 

 

 

  • 不能放在elasticsearch的 pluginsmodules 目录下
  • ·         不能使用 elasticsearch-plugin install

移动到别的地方就OK

报错:curl -XGET http://10.0.3.149:9200/productindex/_mapping?pretty  访问服务

 

这是由于添加了X-pack(这个插件有点坑,只能使用一个月,之后就会收费,也可以使用免费的但是安全性就没有了)插件需要用户登录才能,所以

curl -u elastic -XGET http://10.0.3.149:9200/productindex/_mapping?pretty

-u 添加登陆用户,按步骤输入密码即可

 

自定义索引:

在已经安装head插件的基础上

 

curl -u elastic -XPUT http://10.0.3.149:9200/customer?pretty  这个命令是添加自定义的索引

 

查看所有索引:

curl -u elastic -XGET http://10.0.3.149:9200/_cat/indices?v  这个命令是查看当前所有有效的索引

你可能注意到了:customer索引的状态为yellow。知道yellow意味着某些备份还没有分配。发生这种情况的原因是因为Elasticsearch默认情况下会为这个索引创建一个备份。因为我们目前只有一个节点,因此备份无法分配(为了高可用性),直到有其他节点能够加入到集群中。一旦备份分配到第二个节点上,健康状态就会变为green。

删除elastic中指定索引的数据:

curl -u elastic -XDELETE http://10.0.3.149:9200/logstash-*/

 

虽然写入数据时Elasticsearch会自动的添加映射进行处理,但是删除数据并不会删除数据的映射

#curl -XDELETE 'http://localhost:9200/logstash-2016.01.01/syslog'                  删除了syslog下面的全部数据,但是syslog的映射还在

删除映射的命令:

#curl -XDELETE 'http://localhost:9200/logstash-2016.01.01/_mapping'

删除索引的话映射也会删除

#curl -XDELETE 'http://localhost:9200/logstash-2016.01.01'

 

 

指定使用那个索引:

 

 

Logstas配置报错:

 

原因,在配置文件中的input的type中不能有“.”的出现

列如;

解决方法:在type中去掉“.”起别的名字

ELK日志处理之使用Grok解析日志 :特殊字符得用“\”来转译字段的格式

正则匹配练习网址:http://grokdebug.herokuapp.com/

{正则表达式:自定义名}

默认自带的正则匹配规则

filter {

    grok {

        match => { "message" => "%{COMBINEDAPACHELOG}"}

}

练习一:

日志格式:

120.132.73.107  - -  2017-09-09 04:10:05 POST /promotion/online.php   

正则匹配过滤:

%{IP:clentip} \s*-\s*-\s*%{TIMESTAMP_ISO8601:time}\s*%{WORD:method}\s*%{URIPATHPARAM:request}\s*

说明:在每一个字段的前面添加%作为分割,”\s*“这个能够替代空格;正则严格匹配格式;格式中的“(”和“)”是成对存在的

{IP:clentip}匹配对应位的IP地址

{TIMESTAMP_ISO8601:time}匹配对应位的时间格式

{WORD:method}匹配对应位的请求方式(get/post/put等)

{URIPATHPARAM:request}匹配对应位的请求路径

练习二:

日志格式:

11.11.1.1 - - [01/Mar/2013:12:23:53 +0800]

正则匹配格式:

方法一:%{IPORHOST:client_ip} \s*-\s*- \[%{HTTPDATE:timestamp}\]

方法二:%{IPORHOST:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\]

说明:

{IPORHOST:client_ip}也用于匹配客户端IP地址

{HTTPDATE:timestamp}用于匹配对应位的格式的时间

{USER:ident}匹配对应的“-”

练习三:

日志格式“

"GET /v1/api HTTP/1.1"

正则匹配格式:

方法一:\"%{WORD:verb} %{NOTSPACE:request} HTTP/%{NUMBER:http_version}\"

方法二:\"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)\"

方法三:\"(%{WORD:verb} %{NOTSPACE:request}( HTTP/%{NUMBER:http_version}))\"

方法四:\"(%{WORD:verb} %{NOTSPACE:request}(\s*HTTP/%{NUMBER:http_version}))\"

说明:

{NOTSPACE:request}也用于匹配对于对应位的请求路径(和上面的功能一样,区别目前还没发现)

HTTP这个就是格式中的HTTP,这个没法正则,所以说要是出现不能匹配的串直接照样写出来就可以了

{NUMBER:http_version}匹配对应位的数字

练习四:

日志格式:

"https://api.xx.com/v1/api" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"

正则匹配:

%{QS:referrer} %{QS:agent}

说明:

{QS:referrer}匹配服务端网址信息和客户端信息,要是有客户端信息匹配若没有的话只匹配服务端的信息

{QS:agent}匹配对应的客户端信息

练习五:

日志格式:

10.0.3.104 - - [05/Sep/2017:01:02:20 -0700] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/5.0 Windows NT 10.0; WOW64; Trident/7.0; rv:11.0 like Gecko Core/1.53.3376.400 QQBrowser/9.6.11924.400"

正则匹配:

%{IP:clentip}\s*-\s*-\s*\[%{HTTPDATE:timestamp}\] \"%{WORD:verb} / HTTP/%{NUMBER:http_version}\" %{NUMBER:buzhidao} %{NUMBER:jiubzhidao} \"-\" %{QS:agent}

说明:

服务端/客户端的信息那边的"Mozilla/5.0 Windows NT 10.0; WOW64; Trident/7.0; rv:11.0 like Gecko Core/1.53.3376.400 QQBrowser/9.6.11924.400" 冒号这个“”“不能在正则中加,加上不匹配不成功,不加就可以了;但是其他的字段要是出现冒号得加。这个是特殊的字段

 

 

Logstas配置语法:

 

 

报错:Cannot create pipeline {:reason=>"translation missing: en.logstash.agent.configuration.invalid_plugin_register"}

在fork的插件中添加

 

 

Kibana报错:

可视化报错:

 

解决方法:

 

 

 

 

 

Kibana访问出错:提示访问被重定向,查看启动过程有如下报错:

 

提示[security_exception](安全异常),这个原因可能是xpack这个安全插件到期导致的(也可以找免费的但是不安全);

解决办法:

If your license is expired, you'll need to disable security. You can do this by adding the following to both your Elasticsearch and your Kibana config:(禁止安全插件,在Elasticsearch和Kibana配置文件中添加以下的内容,禁止启动用xpack安全插件就可以了)

xpack.security.enabled: false

 

Elastic终端报错:

 

出现下面的情况说明数据的插入已经失败了,这个有可能是_ID号的原因,在kinbana上的DEV TOOls中插入即可,把id号改变下就可以了

 

 

 

 

 

Mapping练习报错以及解决方法记录:

错误一:

 

解决方法:

先创建一个索引,在这个索引下在创建mapping映射

 

posted @ 2017-11-03 15:46  你土哥!!!  阅读(399)  评论(0编辑  收藏  举报