ELK Stack是Elasticsearch,Logstash,Kibana,这三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用.属于Elastic.co公司
- 可视化 Kibana
- 日志存储+搜索 Elasticsearch
- 日志收集 Logstash
一.ElasticSearch
ElasticSearch介绍:
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
安装部署Elasticsearch
server1安装部署elasticsearch
server1安装部署elasticsearch教程参见之前博客:
https://blog.youkuaiyun.com/chaos_oper/article/details/92853719
1.server1开启elasticsearch
[root@server1 ~]# systemctl start elasticsearch.service
2.修改文件elasticsearch.yml
[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml
17 cluster.name: my-es
23 node.name: server1
43 bootstrap.memory_lock: true
55 network.host: 172.25.13.1
59 http.port: 9200
68 discovery.zen.ping.unicast.hosts: ["server1", "server2","server3"]
3.重新启动 elasticsearch
[root@server1 ~]# systemctl restart elasticsearch.service
4.将安装包发送到server2和server3上
5.在server2和server3上安装
6.发送配置好的limits.conf到server2和server3
配置Server2(server3同样做相同的操作)
1.内存锁定
[root@server3 ~]# vim /usr/lib/systemd/system/elasticsearch.service
2.swap分区卸载
[root@server2 ~]# swapoff -a
[root@server2 ~]# vim /etc/fstab
3.修改elasticsearch.yml
[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml
17 cluster.name: my-es
23 node.name: server2
43 bootstrap.memory_lock: true
55 network.host: 172.25.13.2
59 http.port: 9200
68 discovery.zen.ping.unicast.hosts: ["server1", "server2","server3"]
3.启动elasticsearch服务
[root@server2 ~]# systemctl daemon-reload
[root@server2 ~]# systemctl start elasticsearch.service
4.查看端口
5.浏览器访问172.25.13.2:9200
安装配置elasticsearch-head
ElasticSearch Head是集群管理、数据可视化、增删查改、查询语句可视化工具。
elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。
1.下载所需要的安装包
nodejs-9.11.2-1nodesource.x86_64.rpm
elasticsearch-head-master.zip
phantomjs-2.1.1-linux-x86_64.tar.bz2
2.安装nodejs-9.11.2-1nodesource.x86_64.rpm
[root@server1 ~]# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
3.server1实现可以上网
4.nmp镜像源管理
1)查看npm源地址
2)修改registry地址,比如修改为淘宝源镜像
5.解压elasticsearch-head-master.zip
[root@server1 ~]# yum install -y unzip
[root@server1 ~]# unzip elasticsearch-head-master.zip
6.解压phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@server1 ~]# yum install -y bzip2
[root@server1 ~]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2
7.将phantomjs复制到/usr/local/bin
[root@server1 ~]# cd phantomjs-2.1.1-linux-x86_64/bin/
[root@server1 bin]# ls
phantomjs
[root@server1 bin]# cp phantomjs /usr/local/bin/
[root@server1 bin]# cd /usr/local/bin/
[root@server1 bin]# ll
total 66340
-rwxr-xr-x 1 root root 67932064 Jun 27 20:32 phantomjs
8.安装
[root@server1 ~]# cd elasticsearch-head-master/
[root@server1 elasticsearch-head-master]# npm install
9.修改app.js
[root@server1 elasticsearch-head-master]# vim _site/app.js
10.开启
[root@server1 elasticsearch-head-master]# npm run start &
11.浏览器访问172.25.13.1:9100
12.修改elasticsearch.yml
[root@server1 elasticsearch]# vim elasticsearch.yml
[root@server1 elasticsearch]# systemctl restart elasticsearch.service
13.浏览器访问172.25.13.1:9100
部署elasticsearch
主机名 | 功能和作用 |
---|---|
server1 | master |
server2 | data |
server3 | data |
1.配置server1
[root@server1 elasticsearch]# vim elasticsearch.yml
[root@server1 elasticsearch]# systemctl restart elasticsearch.service
2.配置server2
[root@server2 ~]# vim /etc/elasticsearch/elasticsearch.yml
[root@server2 ~]# systemctl restart elasticsearch.service
3.配置server3
[root@server3 ~]# vim /etc/elasticsearch/elasticsearch.yml
[root@server3 ~]# systemctl restart elasticsearch.service
二.Logstash
Logstash介绍
LogStash由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上。不同于分离的代理端(agent)或主机端(server),LogStash可配置单一的代理端(agent)与其它开源软件结合,以实现不同的功能。
安装部署logstash
1.安装logstash-6.6.1.rpm
[root@server2 ~]# rpm -ivh logstash-6.6.1.rpm
[root@server2 ~]# ll /usr/share/logstash/bin/system-install
-rwxr-xr-x 1 logstash logstash 3547 Feb 14 01:58 /usr/share/logstash/bin/system-install
[root@server2 ~]# yum install -y ruby
2.查看
[root@server2 ~]# rpm -qa | grep logstash
logstash-6.6.1-1.noarch
3.运行logstash管道来测试安装
4.解决上述问题方法将解除内存锁定和swap分区
5.重新运行logstash管道测试安装
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
6.每次在终端输入命令太麻烦了,写成配置文件的形式
[root@server2 ~]# cd /etc/logstash/conf.d/
[root@server2 conf.d]# vim es.conf
input {
stdin {}
}
output {
stdout {}
elasticsearch {
hosts => ["172.25.13.1:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
7.用配置文件的形式测试
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf
8.浏览器访问172.25.13.1:9100
12.上传日志
1.)修改文件es.conf
[root@server2 conf.d]# vim es.conf
input {
file{
path => "/var/log/elasticsearch/my-es.log"
start_position => "beginning"
}
}
output {
stdout {}
elasticsearch {
hosts => ["172.25.13.1:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
2.)上传日志文件
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf
3.)查看上传成功
4)删除日志
三.kibana
kibana介绍
Kibana是一个开源的分析和可视化平台,旨在与Elasticsearch合作.Kibana提供搜索,查看和存储在Elasticsearch索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表,表格和地图中可视化数据。
kibana配置部署
1.安装
2.修改kibana配置文件
[root@server1 ~]# cd /etc/kibana/
[root@server1 kibana]# vim kibana.yml
2 server.port: 5601
7 server.host: "172.25.13.1"
28 elasticsearch.hosts: ["http://172.25.13.1:9200"]
37 kibana.index: ".kibana"
3.启动kibana
[root@server1 kibana]# systemctl start kibana.service
4.查看端口号
5.访问kibana