ELK
由三个组件组成Elasticsearch,Logstash,Kibana
- Elasticsearch
Elasticsearch是一个基于Lucene库的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。 Elasticsearch是用Java开发的,并根据Apache License的条款作为开源发布 - Logstash
Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。由于它太重量型了,也可以用filebeat代替,轻量很多 - Kibana
Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供您全方位配置和管理 Elastic Stack。
安装
第一步:配置JAVA环境
在ES节点配置JAVA环境
yum install java -y
查看是否安装成功
java -version
第二步:安装Elasticsearch
在ES节点安装Elasticsearch,rpm包可以在官网下
https://www.elastic.co/cn/downloads/elasticsearch
安装的版本是Elasticsearch-6.5.1
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.rpm
yum install elasticsearch-6.5.1.rpm -y
第三步:修改Elasticsearch配置文件
在ES节点修改配置文件/etc/elasticsearch/elasticsearch.yml
cluster.name: hal #集群的名称, 名称相同的主机就是处于同一个集群
node.name: 192.168.253.128 #集群情况下, 当前node的名字, 每个node应该不一样,这里是根据节点ip设置
path.data: /var/lib/elasticsearch #数据目录
path.logs: /var/log/elasticsearch # 日志目录
bootstrap.mlockall: true #服务启动时即锁定足够大的内存, 提高效率
network.host: 192.168.253.128 #监听的地址
http.port: 9200 #客户端访问端口
discovery.zen.ping.unicast.hosts: ["192.168.253.128", "192.168.253.158"] # 组播范围
在ES节点上启动Elasticsearch
systemctl start elasticsearch
验证
curl 192.168.253.158:9200/_cat/nodes?pretty
返回类似信息则认为ES成功搭建
可以看出其中192.168.253.128是 master
第四步:安装Logstash
官网找rpm包
https://www.elastic.co/downloads/logstash
版本是6.5.1
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.1.rpm
yum install logstash-6.5.1.rpm -y
写一个简单的logstash命令,从标准输入读取数据,传送到ES集群中
/usr/share/logstash/bin/logstash -e "input{stdin{}} output{stdout{ codec=>"rubydebug"}}"
有删减,但是不影响。这里可以看到输入什么从屏幕就输出什么,于是Logstash就搭建好了
第五步:安装Kibana
官网找rpm包
https://www.elastic.co/downloads/kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-x86_64.rpm
yum install -y kibana-6.5.1-x86_64.rpm
修改配置文件
server.host: "192.168.253.128" #Kibana 监听的ip
lasticsearch.url: "http://192.168.253.128:9200" #ES节点的url
启动Kibana
systemctl start kibana
第六步:测试
写一个简单的logstash文件,从标准输入读取数据,传送到ES集群中
[root@localhost ~]# cat /etc/logstash/stdin_es.conf
input {
stdin{}
}
output {
elasticsearch {
hosts => ["192.168.253.128:9200"]
index =>"test-index"
}
}
执行命令
/usr/share/logstash/bin/logstash -f /etc/logstash/stdin_es.conf
在kibana建立索引查看一下
表示成功匹配到了
然后就可以查看了
总结:搭建ELK并不难,重点在于Logstash的编写,在实验过程中,Logstash显得非常重量,如果小型环境可以用filebeat代替。