ELK5.4.1搭建部署
大綱:
一、簡介
二、Elasticsearch
三、Logstash
四、Kinaba
一、簡介
1、核心組成
ELK由Elasticsearch、Logstash和Kibana三部分組件組成;
Elasticsearch是個開源分佈式搜索引擎,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash是一個完全開源的工具,它可以對你的日誌進行收集、分析,並將其存儲供以後使用
kibana 是一個開源和免費的工具,它可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌。
2、四大組件
Logstash: logstash server端用來蒐集日誌;
Elasticsearch: 存儲各類日誌;
Kibana: web化接口用作查尋和可視化日誌;
Logstash Forwarder: logstash client端用來通過lumberjack 網絡協議發送日誌到logstash server;
3、ELK工作流程
在需要收集日誌的所有服務上部署logstash,作爲logstash agent(logstash shipper)用於監控並過濾收集日誌,將過濾後的內容發送到Redis,然後logstash indexer將日誌收集在一起交給全文搜索服務ElasticSearch,可以用ElasticSearch進行自定義搜索通過Kibana 來結合自定義搜索進行頁面展示。
4、ELK的幫助手冊
ELK官網下載:https://www.elastic.co/downloads/
ELK官網文檔:https://www.elastic.co/guide/index.html
ELK中文手冊:http://kibana.logstash.es/content/elasticsearch/monitor/logging.html
註釋
ELK有兩種安裝方式
(1)集成環境:Logstash有一個集成包,裏面包括了其全套的三個組件;也就是安裝一個集成包。
(2)獨立環境:三個組件分別單獨安裝、運行、各司其職。(比較常用)
本實驗也以第二種方式獨立環境來進行演示;單機版主機地址爲:10.254.21.18
二、Elasticsearch
1.安裝java運行環境
ELK 5.4.1版本對JDK的最低要求是1.8,安裝java_1.8版本
解壓jdk-8u131-linux-x64.tar.gz
tar zxvf jdk-8u131-linux-x64.tar.gz
添加配置,在/etc/profile裏面添加如下:
export JAVA_HOME="/usr/local/jdk1.8.0_131" export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
保存退出,在命令行輸入./etc/profile並回車使其生效。
2.關閉防火牆
service iptables stop chkconfig iptables off
4.新建用戶
默認情況elasticsearch是不允許root用戶直接啓動的
groupadd elk useradd elk -g elk
至此,前期準備工作結束。
5.安裝elasticsearch
從官網下載的elasticsearch-5.4.1.tar.gz
新建/usr/local/elk/目錄,在該路目下解壓:
tar zxvf elasticsearch-5.4.1.tar.gz mv elasticsearch-5.4.1 elasticsearch
配置
cd elasticsearch vim config/elasticsearch.yml network.host: 192.168.1.104 # 主機IP http.port: 9200 # api接口url # 以下兩個爲允許跨域,主要是5.1版本的head插件和以往安裝的不一樣 http.cors.enabled: true http.cors.allow-origin: "*"
啓動(elasticsearch目錄下)
su elk ./bin/elasticsearch
若是沒有啓動成功,可以到/var/log/elasticsearch/elasticsearch.log裏看到這兩條錯誤日誌
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解決第一個,編輯limits.conf
vi /etc/security/limits.conf * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
解決第二個,進入limits.d目錄下修改配置文件
vi /etc/security/limits.d/90-nproc.conf 修改如下內容: * soft nproc 1024 #修改爲 * soft nproc 2048
如果虛擬機內存小,也是啓動不起來的,需加大內存。
elasticsearch安裝使用常見問題及解決:http://xiumin.blog.51cto.com/6205237/1933174
6.安裝elasticsearch-head插件
5.4版本的elasticsearch沒有提供直接插件安裝方法,但在該github上該插件作者給出了方法。
git clone git://github.com/mobz/elasticsearch-head.git
如果虛擬機上沒有安裝node,則要安裝node、npm、grunt。
wget https://nodejs.org/dist/v6.11.0/node-v6.11.0-linux-x64.tar.xz
解壓node-v6.11.0-linux-x64.tar.xz
tar.xz文件分兩步解壓
xz -d node-v6.10.3-linux-x64.tar.xz tar xvf node-v6.10.3-linux-x64.tar
#設置軟連接
ln -s /usr/local/elk/node-v6.10.3-linux-x64/bin/node /usr/sbin/ ln -s /usr/local/elk/node-v6.10.3-linux-x64/lib/node_modules/grunt/bin/grunt /usr/sbin/
# 設置npm代理鏡像
npm config set registry https://registry.npm.taobao.org
# 安裝、配置grunt
npm install -g grunt ln -s /usr/local/elk/node-v6.10.3-linux-x64/lib/node_modules/grunt/bin/grunt /usr/sbin/grunt
安裝head
npm install
修改_site/app.js
// 把localhost改爲ip this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200"; this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.254.21.18:9200";
修改Gruntfile.js
connect: { server: { options: { hostname: "0.0.0.0", #這裏 port: 9100, base: '.', keepalive: true } } }
啓動(後臺運行)
nohup grunt server &
三、Logstash
1.安裝logstash-5.4.1.tar.gz
在/usr/local/elk/目錄下:
tar zxvf logstash-5.4.1.tar.gz mv logstash-5.4.1 logstash
2.寫入elasticsearch
cd logstash vim conf/elastic.conf input { file { path => "/usr/local/openresty/nginx/logs/access.log" #要收集的日誌文件 } } output { elasticsearch { hosts => "10.254.21.18" index => "nginx-access-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
3.文件方式啓動
/usr/local/elk/logstash/bin/logstash -f /usr/local/elk/logstash/config/elastic.conf
4.在elasticsearch中查看
四、Kinaba
1.解壓kibana-5.4.1-linux-x86_64.tar.gz
在/usr/local/elk/目錄下,
tar zxvf kibana-5.4.1-linux-x86_64.tar.gz mv kibana-5.4.1-linux-x86_64 kibana
2.配置
cd /usr/local/elk/kibana/config vim kibana.yml server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://10.254.21.18:9200"
3.啓動(後臺運行)
cd /usr/local/elk/kibana/bin/ nohup ./kibana &
4.kibana索引模式配置
Kibana在網頁打開後會自動跳轉管理頁面,配置索引模式
圖1
圖2
上面兩圖中紅框中index索引必須一致,圖一中的create按鈕纔會出現。然後點擊create後大功告成。
如有不明白之處,參見:kibana創建新的index patterns
5.效果圖
至此ELK搭建已大功告成。