elasticsearch
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
 
/etc/yum.repos.d/elasticsearch.repo:
[elasticsearch-6.x]
 name=Elasticsearch repository for .x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=
autorefresh=
type=rpm-md
配置/etc/elasticsearch/elasticsearch.yml
修改:network.host: 0.0.0.0
这个改动用于地址绑定,可以实现监控多网卡(内网+外网)同一个端口,如果有需求得话。
验证:curl localhost:9200
 
Logstash
 
/etc/yum.repos.d/logstash.repo:
 [logstash-.x]
name=Elastic repository for .x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=
autorefresh=
type=rpm-md
 
/etc/logstash/conf.d/fb-es.conf
input {
beats {
port =>
ssl => false
client_inactivity_timeout =>
}
}
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"}
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "nginx-%{+YYYY.MM.dd}"
document_type => "nginx"
}
}
注意,我在配置match的时候,是因为我使用Ngnix的日志内容:
55.3.244.1 GET /index.html 15824 0.043
其他日志内容要根据自己的日志格式来设定。
 验证:访问curl localhost:9600
kibana
 
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
/etc/yum.repos.d/kibana.repo:
 [kibana-.x]
name=Kibana repository for .x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=
autorefresh=
type=rpm-md

/etc/kibana/kibana.yml

配置:server.host: "0.0.0.0"

另外注意需要在kibana的management面板中配置索引“Index Pattern”,只有这样才能够通过kibana的Discovery面板来监控到各个索引的情况。

验证:通过网页端访问http://ip:5601

说明:ELK如果采用这种rpm包(yum)安装方式。默认配置文件在/etc/XX下面(XX代表elasticsearch/ logstash/ kibana);运行文件在/usr/share/XX下面。
注:看到这里,其实仔细看你会官方教程给的yum源其实都是一个;我们是不是只需要写好一个其他就OK呢?其实可以,但是对于新版本这样搞是否可以就不得而知了。
 
filebeat
 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-x86_64.rpm
sudo rpm -vi filebeat-6.3.-x86_64.rpm
在/etc/filebeats文件夹下,编辑filebeats.yml,定义要采集(input)的文件信息:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/test.log  # 这里可以设置通配符,例如:*.log
同文件,配置输出(output)目的地,可以配置是es或者logstash(注意其他不要的输入配置需要最好注释掉):
output.elasticsearch:
hosts: ["myEShost:9200"]
或者
output.logstash:
hosts: ["logstash_ip:5044"]
 
验证&测试:
在部署了filebeat的机器上面,执行下面的命令:
 echo "55.3.244.1 GET /index.html 15824 0.043" >> /var/log/test.log  
此时通过kibana或者head插件既可以看到索引的文档数有增加;
关于head插件,github地址:https://github.com/mobz/elasticsearch-head;注意可以作为chrome的插件来部署,比较方便;当然也可以搭建一个站点。
 
问题:
  发现外网访问不了,原来需要设置监听主机的IP为0.0.0.0;eslasticsearch以及kibana很容就解决了这个问题;但是logstash上面就卡住了。5044端口无法访问;后来配置为http.host: "0.0.0.0",问题解决
 
  io.netty.handler.codec.DecoderException: org.logstash.beats.BeatsParser$InvalidFrameProtocolException: Invalid Frame Type, received: 84
  感觉上就是logstash和Filebeat什么没有配对上。这个问题其实并不知道怎么解决的,反正按照上面的配置之后,就解决了。
 
  Failed to publish events caused by: read tcp 172.17.0.2:59030->52.50.63.141:5000: read: connection reset by peer
  再后来就是通过kibana看不到数据,因为看日志一直发现一个异常“logstash filebeat connection reset by peer”。
  发现这个异常其实可以忽略;因为本来就是好用的,早就插入到了es里面了;只不过我当时是在kibana里面看到了数据没有展示,但是其实你通过head来进行查看的时候,你就会发现其实已经插入到里面了。head这个插件还要感谢迟永刚,是他和我闲聊的时候提到了这个组件。搞了一天半,终于发现问题原来就是他妈的kibana不好用。Kibana不好用是因为没有配置Kibana的索引类型,因为我后来的索引类型都是nginx做开头的(在logstash里面配置的),需要配置一个nginx-*的索引,配置之后,即可以在discovery里面看到了。
 
 
 
参考
https://www.elastic.co/guide/index.html 注意这个是elasticsearch技术栈文档的入口;即顶部菜单的“learn”一项
http://blog.51cto.com/seekerwolf/2106509
https://www.cnblogs.com/spec-dog/p/6235866.html

安装EKL的更多相关文章

  1. Docker版EKL安装记录文档

    Docker版EKL安装记录文档 拉取已下三个镜像 docker.io/logstash 7.5.2 b6518c95ed2f 6 months ago 805 MB docker.io/kibana ...

  2. HDP-2.6.1安装

    1.首先安装HDP的Ambari仓库文件到本机的/etc/yum.repos.d/ambari.repo路径下

  3. Oozie安装与部署

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3885162.html 安装基础环境: Hadoop – 2.2.0  Linux – Centos 6. ...

  4. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  5. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  6. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  7. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  8. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  9. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

随机推荐

  1. 循环大法——一次性理清forEach/for-in/for/$each

    国寿的这个项目写得我基础都忘完了 近期会把vue和基础都并行复习.学习 forEach 适用于调用数组的每个元素,并将元素传递给回调函数,但是空数组是不会执行回调函数的.forEach适用于集合中的对 ...

  2. 获取和设置消息队列的属性msgctl,删除消息队列

    消息队列的属性保存在系统维护的数据结构msqid_ds中,用户可以通过函数msgctl获取或设置消息队列的属性. int msgctl(int msqid, int cmd, struct msqid ...

  3. PHP:第一章——PHP中的位运算

    //位运算: /*$a & $b;//And(按位与).$a和$b都为1的被设为1: $a | $b;//(按位或).$a和$b任何一个为1的位被设为1 $a ^ $b;//Xor(按位异或) ...

  4. SQL Server 调优系列进阶篇 - 如何重建数据库索引

    随着数据的数据量的急剧增加,数据库的性能也会明显的有些缓慢这个时候你可以考虑下重建索引或是重新组织索引了. DBCC SHOWCONTIG('表名') 可以查看当前表的索引碎情况. 重建索引 方法一: ...

  5. POJ 2663 Tri Tiling 矩阵快速幂 难度:3

    Tri Tiling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7841   Accepted: 4113 Descri ...

  6. CF 459A && 459B && 459C && 459D && 459E

    http://codeforces.com/contest/459 A题 Pashmak and Garden 化简化简水题,都告诉平行坐标轴了,数据还出了对角线,后面两个点坐标给的范围也不错 #in ...

  7. 参数 out

    function outtest(out jo: ISuperObject; out s: string):Boolean; begin //进入函数时 jo =nil ErrStr = '' Res ...

  8. windows10自动登陆

    老是记不住命令,记录一下 win+R  输入以下命令 Control Userpasswords2

  9. UML(统一的建模语言)

    1.软件开发与软件工程 任何事情都必须想清楚了,才能去做!这样才不会出现很多不必要的麻烦,软件开发亦是如此. 写代码前要想好:想要做什么?做成什么样?如何去做? 软件设计就是把软件开发想清楚的过程: ...

  10. Android Mms之:深入MMS支持

    Composing and editing MMS在Android Mms应用里面的具体实现形式,或数据结构是SlideshowModel,它是一个每个节点为SlideModel的ArrayList, ...