「ELK」是三個開源項目的首字母縮寫:Elasticsearch,Logstash和Kibana。Elasticsearch是一個搜索和分析引擎。Logstash是一個服務器端數據處理管道,它同時從多個源中提取數據,對其進行轉換,而後將其發送到像Elasticsearch這樣的「存儲」。Kibana容許用戶使用Elasticsearch中的圖表和圖形可視化數據。java
在全部須要收集日誌的服務上部署logstash,做爲logstashagent用於監控並過濾所手機的日誌,將過濾後的內容整合在一塊兒,最終所有交給elasticsearch檢索引擎;能夠用elasticsearch進行自定義搜索,再經過Kibana結合自定義搜索內容生成圖標,進行日誌展現。node
ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並做爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。linux
部署環境web
關閉防火牆及selinuxbootstrap
主機名 | IP地址 | 所用軟件 |
---|---|---|
node-1 | 192.168.10.19 | Elasticsearch、logstash、kibana |
node-1 | 192.168.10.20 | Elasticsearch、logstash、kibana |
es羣集須要兩臺虛擬機,一臺做爲主,一臺做爲從。兩臺服務器的軟件安裝方式都相同,不一樣之處在於軟件的配置文件的修改,可是也是區別不大。vim
安裝es軟件
加載gpg驗證密鑰
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearchcentos
建立yum倉庫服務器
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-2.x] name=Elasticsearch repository for 2.x packages baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enable=1 yum list
yum install elasticsearch -y yum install java -y
vim /etc/elasticsearch/elasticsearch.yml cluster.name: jius //自定義,兩臺服務器保持一致 node.name: linux-node1 //節點名稱兩臺服務器各不相同 path.data: /data/es-data //自定義,需手動建立,若不建立服務會啓動失敗 path.logs: /var/log/elasticsearch/ //默認路徑,不可更改 bootstrap.memory_lock: true //開啓防止交換分區,避免數據丟失 network.host: 0.0.0.0 //容許任意地址監聽 http.port: 9200 //開啓服務器端口 discovery.zen.ping.unicast.hosts: ["192.168.10.19", "192.168.10.20"] //識別形式選用單播,host1爲本地地址,host2爲對方地址,在兩一臺服務器上地址書寫順序相反
mkdir -p /data/es-data chown -R elasticsearch:elasticsearch /data/es-data/ //用戶在安裝軟件時自動建立
vim /etc/security/limits.conf //如下內容文件末尾插入便可 elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited //普通用戶內存解鎖 * soft nofile 65535 * hard nofile 65535 //文件限制
啓動服務elasticsearch
systemctl start elasticsearch.service netstat -ntap | grep 9200
加載es插件分佈式
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
訪問網頁
數據一般以多種格式分散在許多系統中。Logstash支持各類輸入,這些輸入同時從衆多公共源中提取事件。經過連續的流媒體方式輕鬆從日誌,指標,Web應用程序,數據存儲和各類AWS服務中提取數據。實驗中並非兩臺服務器都須要安裝該軟件,當你須要分析某個服務器中的日誌文件時,便可安裝。
vim /etc/yum.repos.d/logstash.repo [logstash-2.1] name=Logstash repository for 2.1.x packages baseurl=http://packages.elastic.co/logstash/2.1/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enable=1 yum list yum install logstash -y
cd ~ vim file.conf //文件位置自定義,演示是在/目錄下建立 input { file { path => "/var/log/messages" //路徑爲系統日誌存放路徑 type => "system" //類型自定義 start_position => "beginning" //從頭開始獲取 } } output { elasticsearch { hosts => ["192.168.10.19:9200"] index => "system-%{+YYYY.MM.dd}" //年月日固定格式 } }
開啓收集
ln -s /opt/logstash/bin/logstash /usr/bin/ logstash -f /root/file.conf
軟件安裝 wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz tar zxvf kibana-4.3.1-linux-x64.tar.gz -C /opt/ mv /opt/kibana-4.3.1-linux-x64/ /usr/local/kibana 配置文件修改 vim /usr/local/kibana/config/kibana.yml server.port: 5601 //開啓端口 server.host: "0.0.0.0" elasticsearch.url: "http://172.16.10.21:9200" //此處爲es地址 kibana.index: ".kibana"
screen //啓用分屏,如果沒有該命令,則使用yum安裝 /usr/local/kibana/bin/kibana //啓用監聽 ctrl+a+d //放入後臺執行