官方網站:https://www.elastic.co/products
一、介紹
通過官網網站了解到:
Kibana 能夠以圖表的形式呈現資料,并且具有可擴充的使用者界面,供您全方位配置和管理 Elastic Stack。
Elasticsearch 是基于 JSON 的分布式搜尋和分析引擎,專為實作水準可擴充性、高可靠性和管理便捷性而設計。
Logstash 是動态資料收集管道,擁有可擴充的插件生态系統,能夠與 Elasticsearch 産生強大的協同作用。
Beats 是一個面向輕量型采集器的平台,這些采集器可從邊緣機器向 Logstash 和 Elasticsearch 發送資料。
二、架構部署
由于目前日志量不大,是以沒有使用redis或kafka等隊列工具,也沒有使用叢集。後續可以根據實際負載情況加入緩存和叢集
三、安裝
JDK安裝
Elasticsearch-6依賴于jdk-1.8,請確定需要安裝的機器jdk版本不低于1.8.0_73
使用yum安裝Openjdk
yum -y install java-1.8.0-openjdk*
配置JAVA環境變量:vim /etc/profile 追加:(将下面的内容添加至檔案末尾)
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
然後再執行 source /etc/profile 使JDK設定生效
Elasticsearch 安裝
采用yum方式安裝:
安裝許可: rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
添加yum源: vim /etc/yum.repos.d/elasticsearch.repo
[esticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
安裝:yum install -y elasticsearch
等待安裝完成之後,修改相應配置檔案,配置檔案路徑: /etc/elasticsearch/elasticsearch.yml
修改其中的幾項配置即可
# cluster.name: es_cluster #叢集名,依此識别并組成叢集
# node.name: node-1 #節點名,叢集内每個節點名不同
# network.host: 192.168.0.1 #配置本機ip,以便外網通路
如果是叢集,添加防腦裂配置(因為elc預設是一個區域網路内能搜尋到的就是一個叢集,一些原因會導緻分成幾個叢集)
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s
discovery.zen.ping.unicast.hosts: ["cdh2","cdh1","cdh4"]
因單一節點設定該節點為叢集主節點資料節點
node.master: true #設定充當master節點
node.data: true #設定充當data節點,預設為true
ES啟動的時候回占用特别大的資源是以需要修改下系統參數,若不修改資源啟動會異常退出
配置資源參數: vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
配置使用者資源參數: vim /etc/security/limits.d/*-nproc.conf
elk soft nproc 65536
設定ES啟動 JVM堆大小: vim /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g
es不能用root使用者啟動,先更改elasticsearch檔案夾的所有者 建立下列目錄并授權
建立使用者并賦權:
useradd elk
groupadd elk
useradd elk -g elk
mkdir /var/run/elasticsearch
mkdir /var/lib/elasticsearch
chmod –R 777 /var/lib/elasticsearch
chmod -R 777 /var/run/elasticsearch
服務啟動停止指令:
service elasticsearch start
service elasticsearch stop
驗證安裝:通路http://localhost:9200/ 有傳回即可
或者使用指令 curl -XGET http://localhost:9200 有傳回即可
安裝kibana
采用yum安裝
安裝授權 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
建立yum源 vi /etc/yum.repos.d/kibana.repo
[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
安裝kibana: yum install -y kibana
安裝後修改配置檔案:vim /etc/kibana/kibana.yml
#server.host 預設localhost,隻能本機通路kibana
#server.name 此kibana服務的名稱
#elasticsearch.url es位址
修改完畢之後,啟動服務指令:
service kibana start
service kibana stop
安裝驗證:通路http://localhost:5601/
安裝Logstash
采用yum方式安裝
建立yum源: vim /etc/yum.repos.d/logstash.repo
[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
安裝: yum install logstash -y
安裝後修改配置檔案: vim /etc/logstash/logstash.yml
node.name: elk
path.data: /var/lib/logstash
path.config: /etc/logstash/conf.d/*.conf
http.host: "0.0.0.0"
http.port: 9600
path.logs: /var/log/logstash
上述配置一個啟動rest服務端口9600的logstash,配置檔案可以多個conf檔案,存放位置在/etc/logstash/conf.d目錄下
修改完畢之後,啟動服務指令:
service logstash start
service logstash stop
如果使用的是CentOS6的話,上面的指令是無效的,使用如下指令:
initctl start logstash
initctl stop logstash
安裝驗證:http://localhost:9600/
安裝Filebeat
安裝:
官網下載下傳filebeat-6.5.1的rpm
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.1-x86_64.rpm
rpm -ivh filebeat-6.5.1-x86_64.rpm
配置: vim /etc/filebeat/filebeat.yml
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/testelk/logs/*.log
fields:
appname: 'elklog4jfile'
multiline.pattern: '^[0-9]{4}'
multiline.negate: true
multiline.match: after
#============================= Filebeat modules ===============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
reload.period: 10s
#----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["localhost:9610"]
此配置抓取日志:
log4j産生的日志,日志目錄在/opt/testelk/logs/*.log
服務啟動filebeat:service filebeat start
背景啟動:nohup ./filebeat-6.5.1-linux-x86_64/filebeat start &
啟動後,可以在ES中檢視到相應的索引資訊,在KIBANA可進行檢索