Centos7日誌分析工具ELK-6.3

ELK簡介

ELK官網:html

ELK版本發行說明:java

日誌主要分爲系統日誌、應用程序日誌和安全日誌,系統運維和開發人員可經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由,那麼常常分析日誌能夠了解服務器的負荷、性能安全性,從而及時採起措施糾正錯誤。一般日誌被分散的儲存不一樣的設備上,若是管理數十上百臺服務器,還依次登陸每臺機器的傳統方法查閱日誌,這樣太繁瑣、效率低;這時可以使用集中化的日誌管理,例如:開源的syslog,將全部服務器上的日誌收集彙總。linux

完整的集中式日誌系統,須要包含如下幾個主要特色:web

一、收集:可以採集多種來源的日誌數據

二、傳輸:可以穩定的把日誌數據傳輸到中央系統

三、存儲:如何存儲日誌數據

4 、分析:能夠支持 UI 分析

五、警告:可以提供錯誤報告,監控機制

當集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,通常用grep、awk和wc等Linux命令能實現檢索和統計,但對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法不免有點力不從心。開源實時日誌分析ELK平臺可以完美的解決上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成,官方網站:https://www.elastic.co/products centos

一、Elasticsearch

是個開源分佈式搜索引擎,它的特色有:分佈式、零配置、自動發現、索引自動分片、索引副本機制、自動搜索負載等。瀏覽器

二、Logstash

是一個徹底開源的工具,可對日誌進行收集、分析,並將其存儲供之後使用(如搜索),通常工做方式爲C/S架構,Client端安裝在須要收集日誌的主機上,Server端負責將收到的各節點日誌進行過濾、修改等操做在一併發往elasticsearch。安全

三、Kibana

也是一個開源和免費的工具,可爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助彙總、分析和搜索重要數據日誌。
Centos7日誌分析工具ELK-6.3
如上圖Logstash收集產生的Log,並存放到ElasticSearch中,而Kibana則從ES中查詢數據生成圖表,再返回給Browser。服務器

ELK平臺部署

實驗環境架構

系統版本: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

ELK安裝方式

一、集成環境

Logstash有一個集成包,裏面包括了其全套的三個組件;也就是安裝一個集成包。

二、獨立環境

三個組件分別單獨安裝、運行、各司其職。(比較經常使用)

注:本實驗也以第二種方式獨立環境來進行演示

搭建elasticsearch服務器

(IP:192.168.152.170)

安裝elasticsearch

一、建立elasticsearch組與用戶及設置密碼

//groupadd elasticsearchgroup

//useradd -g elasticsearchgroup elasticsearchuser

Centos7日誌分析工具ELK-6.3
注:在 Linux 環境中,elasticsearch 不容許以 root 權限來運行!因此須要建立一個非root用戶,以非root用戶來啓動elasticsearch服務。

二、將elasticsearch解壓到/usr/local/目錄下(綠色包解壓後直接使用便可)

tar zxf elasticsearch-6.3.0.tar.gz -C /usr/local/
Centos7日誌分析工具ELK-6.3

三、遞歸修改/usr/local/elasticsearch-6.3.0/目錄屬性

chown -R elasticsearchuser:elasticsearchgroup /usr/local/elasticsearch-6.3.0/
Centos7日誌分析工具ELK-6.3

四、修改elk服務器主機名和hosts文件

1)修改主機名(重啓可生效) hostnamectl set-hostname elk

2)修改hosts文件

vi /etc/hosts
Centos7日誌分析工具ELK-6.3

五、修改配置文件

vi /usr/local/elasticsearch-
6.3.0/config/elasticsearch.yml
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3

六、兩種啓動elasticsearch服務方式(先切換elasticsearchuser用戶在啓動)

1)動態啓動服務

./elasticsearch
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3

2)後臺啓動服務

/usr/local/elasticsearch-6.3.0/bin/elasticsearch –d
Centos7日誌分析工具ELK-6.3
注:以上截圖一出現兩條報錯,意思是說服務啓動時會檢查系統關鍵配置項,可是檢查未經過,因此服務啓動失敗。

解決方式:
root用戶登陸並打開系統配置文件,按照報錯提示建議值設置。

vi /etc/security/limits.conf

elasticsearchuser soft nofile 65536
elasticsearchuser hard nofile 65536
elasticsearchuser soft nproc 4096
elasticsearchuser hard nproc 4096

Centos7日誌分析工具ELK-6.3

重啓elasticsearch服務,繼續報上邊的錯以下
Centos7日誌分析工具ELK-6.3

解決方式:
使用root用戶查看硬件限制(ulimit -Hn 查看硬限制)
Centos7日誌分析工具ELK-6.3

使用elasticsearchuser用戶查看硬件限制(ulimit -Hn 查看硬限制)
Centos7日誌分析工具ELK-6.3
注:從以上截圖能夠看出繼續報這個錯的緣由是由於沒有刷新過來,那怎麼辦呢?能夠退出elasticsearchuser用戶,而後從新用這個用戶登錄並啓動便可,以下圖
Centos7日誌分析工具ELK-6.3
如今你會發現更新過來了硬件限制,而後能夠放心大膽的啓動服務了。額外給你們說一下別的的報錯解決方式以下
Centos7日誌分析工具ELK-6.3

解決方式:
Root用戶登錄編輯/etc/sysctl.conf文件,添加一行vm.max_map_count=655360便可
Centos7日誌分析工具ELK-6.3

刷新配置文件 sysctl -p
Centos7日誌分析工具ELK-6.3

七、本地服務器查看服務是否啓動

netstat -antupl | grep 9200
Centos7日誌分析工具ELK-6.3

八、網頁測試(兩種方式)

方式一:本地服務器上執行命令curl http://192.168.152.170:9200
Centos7日誌分析工具ELK-6.3

方式二:瀏覽器訪問http://192.168.152.170:9200/
Centos7日誌分析工具ELK-6.3
注:如使用瀏覽器訪問不到該頁面,能夠換一個瀏覽器訪問試試。

安裝elasticsearch-head插件

若是想實現支持額外的功能 如分佈式、索引、搜索等,須要使用插件,我這裏沒有具體操做步驟,緣由是不用插件依然可使用,只不過功能沒有那麼而已,若是想加入插件或者根據公司項目需求,用到以上等功能能夠添加插件,步驟簡單,百度便可。

安裝logstash

一、解壓logstash到/usr/local/

tar zxf logstash-6.3.0.tar.gz -C /usr/local/

注:這是綠色包解壓後直接使用便可!

二、編輯logstash配置文件

1)vi /usr/local/logstash-6.3.0/config/logstash-simple.conf
Centos7日誌分析工具ELK-6.3

2)vi /usr/local/logstash-6.3.0/config/logstash.yml
Centos7日誌分析工具ELK-6.3

3)運行logstash,並指定運行配置文件(監聽9600端口)
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3

注:有這個文件就直接更改,沒有的話就建立一個!

三、查看端口是否監聽

netstat -ant
Centos7日誌分析工具ELK-6.3

安裝Kibana

一、解壓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
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3

三、重啓kibana服務

./kibana
Centos7日誌分析工具ELK-6.3

//可能會出現以下警告(出現警告的話不影響操做,可根據實際狀況修改)
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3
注:這警告的意思是爲防止未決報告在從新啓動時失敗,請在kibana.yml中設置xpack.reporting.encryptionKey,設置此條件可使服務運行更安全。

四、測試 web訪問http://192.168.152.170:5601
Centos7日誌分析工具ELK-6.3

建立index patterns,先點擊左側Management,而後再點擊Index Patterns,而後將右上角選項打開,根據提示選擇.kibana或者messages-2018.06.25其中一個系統模板便可,而後點擊Next step。
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3

仍是選擇如下截圖所提示的下拉菜單選擇@timestamp便可,而後點擊Create index pattern。
Centos7日誌分析工具ELK-6.3

而後以下圖,只須要點擊左上角Discover便可看到建立的圖像化界面。
Centos7日誌分析工具ELK-6.3

以下截圖,以圖形化界面方式展示給咱們。
Centos7日誌分析工具ELK-6.3

搭建agent_1服務器

(agent_1 IP:192.168.152.168)

安裝logstash

一、修改agent_1服務器主機名和hosts文件

1)修改主機名

hostnamectl set-hostname agent_1

注:重啓生效!

2)修改agent_1 hosts文件

vi /etc/hosts

192.168.152.170 elk
192.168.152.168 agent_1

二、配置rsyslog(agent)

vi /etc/rsyslog.conf
Centos7日誌分析工具ELK-6.3

####三、配置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
Centos7日誌分析工具ELK-6.3
注:有這個文件就直接更改,沒有的話就建立一個!

四、過濾查看rsyslog是否開機自啓

systemctl list-unit-files | grep rsyslog
Centos7日誌分析工具ELK-6.3
注:以上截圖enabled爲已開啓,如果顯示disabled,則須要手動使用命令設置開機自啓例如: systemctl enable rsyslog.service 設置rsyslog開機自啓

五、運行logstash,並指定運行配置文件(監聽9600端口)

/usr/local/logstash-6.3.0/bin/logstash -f /usr/local/logstash-6.3.0/config/remote.conf
Centos7日誌分析工具ELK-6.3
Centos7日誌分析工具ELK-6.3
注:這時候在web:192.168.1.10:5601界面刷新而後,再添加模板機會發現除了默認的兩個模板外,還新增長了幾個模板,其中帶-es-的就是你添加的agent主機,可參考下圖去理解,也能夠用以下截圖和上邊添加默認模板時的截圖作對比,會發現很明顯區別。
Centos7日誌分析工具ELK-6.3

搭建agent_2服務器

(agent_2 IP:192.168.152.169)

安裝logstash

到這裏我就不在重複搭建了,可能有些童鞋會問?那agent_2怎麼搭建?若是你已經作到這部,那麼童鞋你就記住無論你有多少臺agent客戶端,均可以按照agent_1的搭建方式來作,只不過改一下對應的主機名和IP便可。

相關文章
相關標籤/搜索