ELK——日志收集分析平台
ELK簡介:
在開源的日志管理方案之中,最出名的莫過於ELK了,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。
1)ElasticSearch是一個基於Lucene的開源分布式搜索服務器。
它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。
Elasticsearch是用Java開發的,並作為Apache許可條款下的開放源碼發布,是第二流行的企業搜索引擎。
設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。
在elasticsearch中,所有節點的數據是均等的。
在開源的日志管理方案之中,最出名的莫過於ELK了,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。
1)ElasticSearch是一個基於Lucene的開源分布式搜索服務器。
它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。
Elasticsearch是用Java開發的,並作為Apache許可條款下的開放源碼發布,是第二流行的企業搜索引擎。
設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。
在elasticsearch中,所有節點的數據是均等的。
2)Logstash是一個完全開源的工具,它可以對你的日志進行收集、過濾、分析,支持大量的數據獲取方法,並將其存儲供以后使用(如搜索)。
說到搜索,logstash帶有一個web界面,搜索和展示所有日志。
一般工作方式為c/s架構,client端安裝在需要收集日志的主機上,server端負責將收到的各節點日志進行過濾、修改等操作在一並發往elasticsearch上去。
說到搜索,logstash帶有一個web界面,搜索和展示所有日志。
一般工作方式為c/s架構,client端安裝在需要收集日志的主機上,server端負責將收到的各節點日志進行過濾、修改等操作在一並發往elasticsearch上去。
3)Kibana 是一個基於瀏覽器頁面的Elasticsearch前端展示工具,也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
工作流程:logstash負責從各個docker容器中提取日志(做了volume,配置path即可),然后將讀取到的日志轉發到ElasticSearch進行索引和保存,Kibana分析和可視化數據。
#注:在這里我們使用了filebeat代替了logstash
ELK的安裝部署:
1、下載下面的三個軟件https://www.elastic.co/cn/products
[root@centos ~]# ls
elasticsearch-7.1.0-x86_64.rpm kibana-7.1.0-x86_64.rpm filebeat-7.1.0-x86_64.rpm
2、下載java環境
[root@centos ~]# yum install java -y
3、安裝ELK
[root@centos ~]# yum install elasticsearch-7.1.0-x86_64.rpm kibana-7.1.0-x86_64.rpm filebeat-7.1.0-x86_64.rpm -y
ELK的安裝部署:
1、下載下面的三個軟件https://www.elastic.co/cn/products
[root@centos ~]# ls
elasticsearch-7.1.0-x86_64.rpm kibana-7.1.0-x86_64.rpm filebeat-7.1.0-x86_64.rpm
2、下載java環境
[root@centos ~]# yum install java -y
3、安裝ELK
[root@centos ~]# yum install elasticsearch-7.1.0-x86_64.rpm kibana-7.1.0-x86_64.rpm filebeat-7.1.0-x86_64.rpm -y
配置filebeat:vim /etc/filebeat/filebete.yml
在inputs項中
將enabled改為true 同時配置你的paths
在outputs項中更改hosts
在inputs項中
將enabled改為true 同時配置你的paths
在outputs項中更改hosts

然后重啟filebeat:systemctl restart filebeat
elasticsearch啟動
systemctl restart elasticsearch
kibana啟動
1、修改監聽地址
[root@centos ~]# vim /etc/kibana/kibana.yml
server.host: “192.168.64.4” #這是你要使用瀏覽器訪問的ip
2、重啟kibana
[root@centos ~]# systemctl restart kibana
查看所有端口
[root@centos ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 192.168.64.4:5601 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 ::ffff:127.0.0.1:9200 :::*
LISTEN 0 128 ::1:9200 :::*
LISTEN 0 128 ::ffff:127.0.0.1:9300 :::*
LISTEN 0 128 ::1:9300 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
瀏覽器訪問kibana
輸入服務器IP指定kibana端口5601,然后即可使用。
EFK搭建
安裝java
安裝java1.8以上的版本並驗證
[root@localhost ~]# yum install java
[root@localhost ~]# java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
安裝Elasticsearch
安裝Elasticsearch(Elasticsearch、Kibana、FileBeat版本最好一致)
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz [root@localhost ~]# tar -zxvf elasticsearch-6.2.4.tar.gz
[root@localhost ~]# mv elasticsearch-6.2.4 /usr/local/elasticsearch-6.2.4
[root@localhost ~]# cd /usr/local/elasticsearch-6.2.4 [root@localhost ~]# vi config/elasticsearch.yml network.host: 0.0.0.0 http.port: 9200 #由於這里不能直接用root用戶運行elasticsearch,所以要創建一個新用戶 [root@localhost ~]# adduser fengzi [root@localhost ~]# passwd fengzi [root@localhost ~]# chmod -R 777 /usr/local/elasticsearch-6.2.4 [root@localhost ~]# su fengzi
#啟動elasticsearch
[root@localhost ~]# ./bin/elasticsearch
如果服務啟動不起來,以下是解決辦法
#添加以下4行內容
[root@localhost local]# vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
efk soft nproc 8192
efk hard nproc 8192
#修改成以下內容
[root@localhost local]# vim /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
root soft nproc unlimited
#添加如下一行
[root@localhost local]# vim /etc/sysctl.conf
vm.max_map_count=655360
[root@localhost local]# sysctl -p
#查看一下9200和9300端口有沒有啟
[root@localhost local]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 80 :::3306 :::*
LISTEN 0 128 :::9200 :::*
LISTEN 0 128 :::9300 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
安裝Kibana
[root@localhost local]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
[root@localhost local]# tar -zxvf kibana-6.2.4-linux-x86_64.tar.gz
[root@localhost local]# vi config/kibana.yml
elasticsearch.url: "http://0.0.0.0:9200"
server.host: "0.0.0.0"
kibana.index: ".kibana"
#啟動kibana服務
[root@localhost local]# ./bin/kibana
#查看5601端口有沒有啟動
[root@localhost local]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:5601 *:*
LISTEN 0 80 :::3306 :::*
LISTEN 0 128 :::9200 :::*
LISTEN 0 128 :::9300 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
安裝FileBeat
[root@localhost local]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
[root@localhost local]# tar -zxvf filebeat-6.2.4-linux-x86_64.tar.gz
[root@localhost local]# vi filebeat.yml
enabled: true
[root@localhost local]# ./filebeat -c filebeat.yml
配置Kibana




