elk5.4小白踩坑记录
Posted 你土哥!!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
的 plugins
、modules
目录下,否则报一堆错误)
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)
启动elk服务
################插件安完毕#######################################
报错:
- 不能放在
elasticsearch
的plugins
、modules
目录下 ·
不能使用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映射
以上是关于elk5.4小白踩坑记录的主要内容,如果未能解决你的问题,请参考以下文章