ELK官網:html
ELK版本發行說明:java
日誌主要分爲系統日誌、應用程序日誌和安全日誌,系統運維和開發人員可經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由,那麼常常分析日誌能夠了解服務器的負荷、性能安全性,從而及時採起措施糾正錯誤。一般日誌被分散的儲存不一樣的設備上,若是管理數十上百臺服務器,還依次登陸每臺機器的傳統方法查閱日誌,這樣太繁瑣、效率低;這時可以使用集中化的日誌管理,例如:開源的syslog,將全部服務器上的日誌收集彙總。linux
完整的集中式日誌系統,須要包含如下幾個主要特色:web
當集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,通常用grep、awk和wc等Linux命令能實現檢索和統計,但對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法不免有點力不從心。開源實時日誌分析ELK平臺可以完美的解決上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成,官方網站:https://www.elastic.co/products centos
是個開源分佈式搜索引擎,它的特色有:分佈式、零配置、自動發現、索引自動分片、索引副本機制、自動搜索負載等。瀏覽器
是一個徹底開源的工具,可對日誌進行收集、分析,並將其存儲供之後使用(如搜索),通常工做方式爲C/S架構,Client端安裝在須要收集日誌的主機上,Server端負責將收到的各節點日誌進行過濾、修改等操做在一併發往elasticsearch。安全
也是一個開源和免費的工具,可爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助彙總、分析和搜索重要數據日誌。
如上圖Logstash收集產生的Log,並存放到ElasticSearch中,而Kibana則從ES中查詢數據生成圖表,再返回給Browser。服務器
實驗環境架構
系統版本:centos7x3.10.0-514.el7.x86_64併發
平臺版本:
elasticsearch-6.3.0(分佈式搜索引擎)
kibana-6.3.0-linux-x86_64(查詢數據生成圖表)
logstash-6.3.0(日誌收集)
JDK版本:(yum -y install java-1.8.0-openjdk*)
注:Logstash 6.x和5.x須要Java 8,服務端和客戶端都須要安裝。
關閉防火牆並禁止開機自啓
systemctl stop firewalld.service
systemctl disable firewalld
關閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
重啓 reboot
Logstash有一個集成包,裏面包括了其全套的三個組件;也就是安裝一個集成包。
三個組件分別單獨安裝、運行、各司其職。(比較經常使用)
注:本實驗也以第二種方式獨立環境來進行演示
(IP:192.168.152.170)
//groupadd elasticsearchgroup
//useradd -g elasticsearchgroup elasticsearchuser
注:在 Linux 環境中,elasticsearch 不容許以 root 權限來運行!因此須要建立一個非root用戶,以非root用戶來啓動elasticsearch服務。
tar zxf elasticsearch-6.3.0.tar.gz -C /usr/local/
chown -R elasticsearchuser:elasticsearchgroup /usr/local/elasticsearch-6.3.0/
1)修改主機名(重啓可生效) hostnamectl set-hostname elk
2)修改hosts文件
vi /etc/hosts
vi /usr/local/elasticsearch-
6.3.0/config/elasticsearch.yml
1)動態啓動服務
./elasticsearch
2)後臺啓動服務
/usr/local/elasticsearch-6.3.0/bin/elasticsearch –d
注:以上截圖一出現兩條報錯,意思是說服務啓動時會檢查系統關鍵配置項,可是檢查未經過,因此服務啓動失敗。
解決方式:
root用戶登陸並打開系統配置文件,按照報錯提示建議值設置。
vi /etc/security/limits.conf
elasticsearchuser soft nofile 65536
elasticsearchuser hard nofile 65536
elasticsearchuser soft nproc 4096
elasticsearchuser hard nproc 4096
重啓elasticsearch服務,繼續報上邊的錯以下
解決方式:
使用root用戶查看硬件限制(ulimit -Hn 查看硬限制)
使用elasticsearchuser用戶查看硬件限制(ulimit -Hn 查看硬限制)
注:從以上截圖能夠看出繼續報這個錯的緣由是由於沒有刷新過來,那怎麼辦呢?能夠退出elasticsearchuser用戶,而後從新用這個用戶登錄並啓動便可,以下圖
如今你會發現更新過來了硬件限制,而後能夠放心大膽的啓動服務了。額外給你們說一下別的的報錯解決方式以下
解決方式:
Root用戶登錄編輯/etc/sysctl.conf文件,添加一行vm.max_map_count=655360便可
刷新配置文件 sysctl -p
netstat -antupl | grep 9200
方式一:本地服務器上執行命令curl http://192.168.152.170:9200
方式二:瀏覽器訪問http://192.168.152.170:9200/
注:如使用瀏覽器訪問不到該頁面,能夠換一個瀏覽器訪問試試。
若是想實現支持額外的功能 如分佈式、索引、搜索等,須要使用插件,我這裏沒有具體操做步驟,緣由是不用插件依然可使用,只不過功能沒有那麼而已,若是想加入插件或者根據公司項目需求,用到以上等功能能夠添加插件,步驟簡單,百度便可。
tar zxf logstash-6.3.0.tar.gz -C /usr/local/
注:這是綠色包解壓後直接使用便可!
1)vi /usr/local/logstash-6.3.0/config/logstash-simple.conf
2)vi /usr/local/logstash-6.3.0/config/logstash.yml
3)運行logstash,並指定運行配置文件(監聽9600端口)
注:有這個文件就直接更改,沒有的話就建立一個!
netstat -ant
一、解壓kibana到/usr/local/下
tar zxf kibana-6.3.0-linux-x86_64.tar.gz -C /usr/local/
注:以上是綠色包解壓後直接使用便可!
二、編輯kibana配置文件
vi /usr/local/kibana-6.3.0-linux-x86_64/config/kibana.yml
三、重啓kibana服務
./kibana
//可能會出現以下警告(出現警告的話不影響操做,可根據實際狀況修改)
注:這警告的意思是爲防止未決報告在從新啓動時失敗,請在kibana.yml中設置xpack.reporting.encryptionKey,設置此條件可使服務運行更安全。
四、測試 web訪問http://192.168.152.170:5601
建立index patterns,先點擊左側Management,而後再點擊Index Patterns,而後將右上角選項打開,根據提示選擇.kibana或者messages-2018.06.25其中一個系統模板便可,而後點擊Next step。
仍是選擇如下截圖所提示的下拉菜單選擇@timestamp便可,而後點擊Create index pattern。
而後以下圖,只須要點擊左上角Discover便可看到建立的圖像化界面。
以下截圖,以圖形化界面方式展示給咱們。
(agent_1 IP:192.168.152.168)
1)修改主機名
hostnamectl set-hostname agent_1
注:重啓生效!
2)修改agent_1 hosts文件
vi /etc/hosts
192.168.152.170 elk
192.168.152.168 agent_1
vi /etc/rsyslog.conf
####三、配置logstash(客戶端elk)
1)解壓logstash到/usr/local/
tar zxf logstash-6.3.0.tar.gz -C /usr/local/
2)編輯配置文件
vi /usr/local/logstash-6.3.0/config/remote.conf
注:有這個文件就直接更改,沒有的話就建立一個!
systemctl list-unit-files | grep rsyslog
注:以上截圖enabled爲已開啓,如果顯示disabled,則須要手動使用命令設置開機自啓例如: systemctl enable rsyslog.service 設置rsyslog開機自啓
/usr/local/logstash-6.3.0/bin/logstash -f /usr/local/logstash-6.3.0/config/remote.conf
注:這時候在web:192.168.1.10:5601界面刷新而後,再添加模板機會發現除了默認的兩個模板外,還新增長了幾個模板,其中帶-es-的就是你添加的agent主機,可參考下圖去理解,也能夠用以下截圖和上邊添加默認模板時的截圖作對比,會發現很明顯區別。
(agent_2 IP:192.168.152.169)
到這裏我就不在重複搭建了,可能有些童鞋會問?那agent_2怎麼搭建?若是你已經作到這部,那麼童鞋你就記住無論你有多少臺agent客戶端,均可以按照agent_1的搭建方式來作,只不過改一下對應的主機名和IP便可。