日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

每當項目上線時,因為項目是集群部署的,所以,來回到不同的服務器上查看日志會變得很麻煩,你是不是也碰到這樣類似的問題,那么ELK將能解決你遇到的問題!

01、ELK Stack 簡介

ELK 不是一款軟件,而是 Elasticsearch、Logstash 和 Kibana 三種軟件產品的首字母縮寫。這三者都是開源軟件,通常配合使用,而且又先后歸于 Elastic.co 公司名下,所以被簡稱為 ELK Stack。根據 google Trend 的信息顯示,ELK Stack 已經成為目前最流行的集中式日志解決方案。

  • Elasticsearch:分布式搜索和分析引擎,具有高可伸縮、高可靠和易管理等特點。基于 Apache Lucene 構建,能對大容量的數據進行接近實時的存儲、搜索和分析操作。通常被用作某些應用的基礎搜索引擎,使其具有復雜的搜索功能;
  • Logstash:數據收集引擎。它支持動態的從各種數據源搜集數據,并對數據進行過濾、分析、豐富、統一格式等操作,然后存儲到用戶指定的位置;
  • Kibana:數據分析和可視化平臺。通常與 Elasticsearch 配合使用,對其中數據進行搜索、分析和以統計圖表的方式展示;
  • Filebeat:ELK 協議棧的新成員,一個輕量級開源日志文件數據搜集器,基于 Logstash-Forwarder 源代碼開發,是對它的替代。在需要采集日志數據的 server 上安裝 Filebeat,并指定日志目錄或日志文件后,Filebeat 就能讀取數據,迅速發送到 Logstash 進行解析,亦或直接發送到 Elasticsearch 進行集中式存儲和分析。

02、ELK 常用架構及使用場景介紹

2.1、最簡單架構

在這種架構中,只有一個 Logstash、Elasticsearch 和 Kibana 實例。Logstash 通過輸入插件從多種數據源(比如日志文件、標準輸入 Stdin 等)獲取數據,再經過濾插件加工數據,然后經 Elasticsearch 輸出插件輸出到 Elasticsearch,通過 Kibana 展示。

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

這種架構非常簡單,使用場景也有限。初學者可以搭建這個架構,了解 ELK 如何工作。

2.2、Logstash 作為日志搜集器

這種架構是對上面架構的擴展,把一個 Logstash 數據搜集節點擴展到多個,分布于多臺機器,將解析好的數據發送到 Elasticsearch server 進行存儲,最后在 Kibana 查詢、生成日志報表等。

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

這種結構因為需要在各個服務器上部署 Logstash,而它比較消耗 CPU 和內存資源,所以比較適合計算資源豐富的服務器,否則容易造成服務器性能下降,甚至可能導致無法正常工作。

2.3、Beats 作為日志搜集器

這種架構引入 Beats 作為日志搜集器。目前 Beats 包括四種:

  • Packetbeat(搜集網絡流量數據);
  • Topbeat(搜集系統、進程和文件系統級別的 CPU 和內存使用情況等數據);
  • Filebeat(搜集文件數據);
  • Winlogbeat(搜集 windows 事件日志數據)。

Beats 將搜集到的數據發送到 Logstash,經 Logstash 解析、過濾后,將其發送到 Elasticsearch 存儲,并由 Kibana 呈現給用戶。

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

這種架構解決了 Logstash 在各服務器節點上占用系統資源高的問題。相比 Logstash,Beats 所占系統的 CPU 和內存幾乎可以忽略不計。另外,Beats 和 Logstash 之間支持 SSL/TLS 加密傳輸,客戶端和服務器雙向認證,保證了通信安全。

因此這種架構適合對數據安全性要求較高,同時各服務器性能比較敏感的場景。

2.4、引入消息隊列機制的架構

Beats 還不支持輸出到消息隊列,所以在消息隊列前后兩端只能是 Logstash 實例。這種架構使用 Logstash 從各個數據源搜集數據,然后經消息隊列輸出插件輸出到消息隊列中。目前 Logstash 支持 Kafka、redis、RabbitMQ 等常見消息隊列。然后 Logstash 通過消息隊列輸入插件從隊列中獲取數據,分析過濾后經輸出插件發送到 Elasticsearch,最后通過 Kibana 展示。

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

這種架構適合于日志規模比較龐大的情況。但由于 Logstash 日志解析節點和 Elasticsearch 的負荷比較重,可將他們配置為集群模式,以分擔負荷。引入消息隊列,均衡了網絡傳輸,從而降低了網絡閉塞,尤其是丟失數據的可能性,但依然存在 Logstash 占用系統資源過多的問題。

說了這么多理論,對于喜歡就干的小編來說,下面我將以Beats 作為日志搜集器的架構,進行詳細安裝介紹!

03、基于 Filebeat 架構的配置安裝

由于我這邊是測試環境,所以ElasticSearch + Logstash + Kibana + Nginx這四個軟件我都是裝在一臺機器上面,如果是生產環境,建議分開部署,并且ElasticSearch可配置成集群方式。

軟件架構示意圖:

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

安裝環境及版本:

  • 操作系統:centos7
  • 內存:大于或等于4G
  • ElasticSearch:6.1.0
  • Logstash:6.1.0
  • Kibana:6.1.0
  • filebeat :6.2.4

建議把所需的安裝包,手動從網上下載下來,因為服務器下載ELK安裝包速度像蝸牛……,非常非常慢~~,可能是國內的網絡原因吧!

將手動下載下來的安裝包,上傳到服務器某個文件夾下。

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

3.1、ElasticSearch安裝

3.1.1、安裝JDK(已經安裝過,可以跳過)

elasticsearch依賴JAVA開發環境支持,先安裝JDK。

yum -y install java-1.8.0-openjdk

查看java安裝情況

java -version
手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

3.1.2、安裝ElasticSearch

進入到對應上傳的文件夾,安裝ElasticSearch

rpm -ivh elasticsearch-6.1.0.rpm

查找安裝路徑

rpm -ql elasticsearch

一般是裝在/usr/share/elasticsearch/下。

3.1.3、設置data的目錄

創建/data/es-data目錄,用于elasticsearch數據的存放

mkdir -p /data/es-data

修改該目錄的擁有者為elasticsearch

chown -R elasticsearch:elasticsearch /data/es-data
3.1.4、設置log的目錄

創建/data/es-log目錄,用于elasticsearch日志的存放

mkdir -p /log/es-log

修改該目錄的擁有者為elasticsearch

chown -R elasticsearch:elasticsearch /log/es-log
3.1.5、修改配置文件elasticsearch.yml
vim /etc/elasticsearch/elasticsearch.yml

修改如下內容:

#設置data存放的路徑為/data/es-datapath.data: /data/es-data#設置logs日志的路徑為/log/es-logpath.logs: /log/es-log#設置內存不使用交換分區bootstrap.memory_lock: false#配置了bootstrap.memory_lock為true時反而會引發9200不會被監聽,原因不明#設置允許所有ip可以連接該elasticsearchnetwork.host: 0.0.0.0#開啟監聽的端口為9200http.port: 9200#增加新的參數,為了讓elasticsearch-head插件可以訪問es (5.x版本,如果沒有可以自己手動加)http.cors.enabled: truehttp.cors.allow-origin: "*"
3.1.6、啟動elasticsearch

啟動

systemctl start elasticsearch

查看狀態

systemctl status elasticsearch

設置開機啟動

systemctl enable elasticsearch

啟動成功之后,測試服務是否開啟

curl -X GET http://localhost:9200

返回如下信息,說明安裝、啟動成功了

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

3.2、Logstash安裝

3.2.1、安裝logstash
rpm -ivh logstash-6.1.0.rpm
3.2.2、設置data的目錄

創建/data/ls-data目錄,用于logstash數據的存放

mkdir -p /data/ls-data

修改該目錄的擁有者為logstash

chown -R logstash:logstash /data/ls-data
3.2.3、設置log的目錄

創建/data/ls-log目錄,用于logstash日志的存放

mkdir -p /log/ls-log

修改該目錄的擁有者為logstash

chown -R logstash:logstash /log/ls-log
3.2.4、設置conf.d的目錄,創建配置文件
#進入logstash目錄cd /etc/logstash#創建conf.d的目錄mkdir conf.d

創建配置文件,日志內容輸出到elasticsearch中,如下

vim /etc/logstash/conf.d/logstash.conf

內容如下:

input {  beats {    port => 5044    codec => plain {          charset => "UTF-8"    }  }}output {  elasticsearch { hosts => ["localhost:9200"] }  stdout { codec => rubydebug }}
3.2.5、修改配置文件logstash.yml
vim /etc/logstash/logstash.yml

內容如下:

# 設置數據的存儲路徑為/data/ls-datapath.data: /data/ls-data# 設置管道配置文件路徑為/etc/logstash/conf.dpath.config: /etc/logstash/conf.d# 設置日志文件的存儲路徑為/log/ls-logpath.logs: /log/ls-log
3.2.6、啟動logstash

啟動

systemctl start logstash

查看

systemctl status logstash

設置開機啟動

systemctl enable logstash
3.2.7、測試logstash

--config.test_and_exit表示,檢查測試創建的logstash.conf配置文件,是否有問題,如果沒有問題,執行之后,顯示Configuration OK 證明配置成功!

/usr/share/logstash/bin/logstash  -f /etc/logstash/conf.d/logstash.conf --config.test_and_exit

**如果報錯:WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using –path.settings. **

解決辦法:

cd /usr/share/logstashln -s /etc/logstash ./config
3.2.8、logstash指定配置進行運行

指定logstash.conf配置文件,以后臺的方式運用,執行這段命令之后,需要回車一下

nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf &

檢查logstash是否啟動

ps -ef|grep logstash

顯示如下信息,說明啟動了

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

3.3、kibana安裝

3.3.1、安裝kibana
rpm -ivh kibana-6.1.0-x86_64.rpm

搜索rpm包

rpm -ql kibana

默認是裝在/usr/share/kibana/下。

3.3.2、修改kibana.yml

修改kibana的配置文件

vim /etc/kibana/kibana.yml

內容如下:

#kibana頁面映射在5601端口server.port: 5601#允許所有ip訪問5601端口server.host: "0.0.0.0"#elasticsearch所在的ip及監聽的地址elasticsearch.url: "http://localhost:9200"
3.3.3、啟動kibana

啟動

systemctl start kibana

查看狀態

systemctl status kibana

設置開機啟動

systemctl enable kibana

3.4、配置nginx 訪問

3.4.1、安裝nginx和http用戶認證工具
yum -y install epel-releaseyum -y install nginx httpd-tools
3.4.2、修改nginx配置
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bakvim /etc/nginx/nginx.conf

將location配置部分,注釋掉

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

創建kibana.conf文件

vim /etc/nginx/conf.d/kibana.conf

內容如下:

server {    listen 8000; #修改端口為8000    server_name kibana;    #auth_basic "Restricted Access";    #auth_basic_user_file /etc/nginx/kibana-user;    location / {        proxy_pass http://127.0.0.1:5601; #代理轉發到kibana        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection 'upgrade';        proxy_set_header Host $host;        proxy_cache_bypass $http_upgrade;    }}

重新加載配置文件

systemctl reload nginx

到這一步,elk基本配置完了,輸入如下命令,啟動服務

# 啟動ELK和nginxsystemctl restart elasticsearch logstash kibana nginx#查看ELK和nginx啟動狀態systemctl status elasticsearch logstash kibana nginx

在瀏覽器輸入ip:8000, 就可以訪問了kibana

04、linux節點服務器安裝配置filebeat

4.1、安裝filebeat

yum localinstall -y filebeat-6.2.4-x86_64.rpm

4.2、啟動kibana

啟動

systemctl start filebeat

查看狀態

systemctl status filebeat

設置開機啟動

systemctl enable filebeat

4.3、修改配置Filebeat

編輯filebeat.yml文件

vim /etc/filebeat/filebeat.yml
#============= Filebeat prospectors ===============filebeat.prospectors:- input_type: log  enabled: true #更改為true以啟用此prospectors配置。  paths:  #支持配置多個文件收集目錄    #- /var/log/*.log    - /var/log/messages#==================== Outputs =====================#------------- Elasticsearch output ---------------#output.elasticsearch:  # Array of hosts to connect to.  #hosts: ["localhost:9200"]#---------------- Logstash output -----------------output.logstash:  # The Logstash hosts  hosts: ["localhost:5044"]

注意:注釋掉Elasticsearch output下面的部分,將Filebeat收集到的日志輸出到 Logstash output

最后重啟服務

systemctl restart filebeat

4.4、登錄kibana,創建索引,并且搜集數據

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

ELK+ Filebeat的安裝,到此,就基本結束了,以上只是簡單的部署完了。

但是,還滿足不了需求,比如,一臺服務器,有多個日志文件路徑,改怎么配置,接下來,我們來分類創建索引!

05、Filebeat收集多個Tomcat目錄下的日志

5.1、修改filebeat.yml配置文件

vim /etc/filebeat/filebeat.yml

配置多個paths收集路徑,并且使用fields標簽配置自定義標簽log_topics,以方便做索引判斷,如下:

filebeat.prospectors:- type: log  enabled: true  paths:    - /usr/tomcat7-ysynet/logs/default/common_monitor.log    multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'  multiline.negate: true  multiline.match: after  fields:    log_topics: spd-ysynet- type: log  enabled: true  paths:    - /usr/tomcat7-ysynet-sync/logs/default/common_monitor.log  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'  multiline.negate: true  multiline.match: after  fields:    log_topics: spd-ysynet-sync- type: log  enabled: true  paths:    - /usr/tomcat7-hscm/logs/default/common_monitor.log    multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'  multiline.negate: true  multiline.match: after  fields:    log_topics: spd-hscm- type: log  enabled: true  paths:    - /usr/tomcat7-hscm-sync/logs/default/common_monitor.log    multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'  multiline.negate: true  multiline.match: after    fields:    log_topics: spd-hscm-sync

filebeat安裝包所在服務器有tomcat7-ysynet、tomcat7-ysynet-sync、tomcat7-hscm、tomcat7-hscm-sync,4個tomcat,在fields下分別創建不同的log_topics,log_topics屬于標簽名,可以自定義,然后創建不同的值!

5.2、修改logstash.conf配置文件

接著,修改logstash中的配置文件,創建索引,將其輸出

vim /etc/logstash/conf.d/logstash.conf

內容如下:

input{    beats {        port => 5044        codec => plain {          charset => "UTF-8"        }    }}filter{    mutate{        remove_field => "beat.hostname"        remove_field => "beat.name"        remove_field => "@version"        remove_field => "source"        remove_field => "beat"        remove_field => "tags"        remove_field => "offset"        remove_field => "sort"    }}output{    if [fields][log_topics] == "spd-ysynet"  {        stdout { codec => rubydebug }        elasticsearch {            hosts => ["localhost:9200"]            index => "spd-ysynet-%{+YYYY.MM.dd}"        }    }    if [fields][log_topics] == "spd-ysynet-sync"  {        stdout { codec => rubydebug }        elasticsearch {            hosts => ["localhost:9200"]            index => "spd-ysynet-sync-%{+YYYY.MM.dd}"        }    }    if [fields][log_topics] == "spd-hscm"  {        stdout { codec => rubydebug }        elasticsearch {            hosts => ["localhost:9200"]            index => "spd-hscm-%{+YYYY.MM.dd}"        }    }    if [fields][log_topics] == "spd-hscm-sync"  {        stdout { codec => rubydebug }        elasticsearch {            hosts => ["localhost:9200"]            index => "spd-hscm-sync-%{+YYYY.MM.dd}"        }    }}

其中filter表示過濾的意思,在output中使用filebeat中配置的fields信息,方便創建不同的索引!

#表示,輸出到控制臺stdout { codec => rubydebug }#elasticsearch表示,輸出到elasticsearch中,index表示創建索引的意思elasticsearch {   hosts => ["localhost:9200"]   index => "spd-hscm-sync-%{+YYYY.MM.dd}"}

5.3、測試修改的logstash.conf配置文件

輸入如下命令,檢查/etc/logstash/conf.d/logstash.conf文件,是否配置異常!

/usr/share/logstash/bin/logstash  -f /etc/logstash/conf.d/logstash.conf --config.test_and_exit

輸入結果,顯示Configuration OK,就表示沒問題!

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

5.4、重啟相關服務

最后,重啟filebeat

systemctl restart filebeat

關閉logstash服務

systemctl stop logstash

以指定的配置文件,啟動logstash,輸入如下命令,回車就ok了,執行完之后也可以用ps -ef|grep logstash命令查詢logstash是否啟動成功!

nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf &

5.5、登錄kibana,創建索引

登錄kibana,以同樣的操作,頁面創建索引,查詢收集的日志,以下是小編的測試服務器搜集的信息

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

第3、4、5步驟,是篩選elasticsearch今天收集的日志信息!

 

手把手教你,在CentOS上安裝ELK,進行服務器日志收集

 

 

06、總結

整個安裝過程已經介紹完了,安裝比較簡單,復雜的地方就是配置了,尤其是logstash、kibana、nginx、filebeat,這幾個部分,看了網上很多的介紹,elk配置完之后,外網無法訪問kibana,使用nginx代理到kibana,頁面就出來了;同時,在配置filebeat多個路徑的時候,logstash也配置了輸出索引,但是就是沒有日志出來,頁面檢查說Elasticsearch 沒有找到數據,最后才發現,一定要讓logstash指定/etc/logstash/conf.d/logstash.conf配置文件,進行啟動,那么就有日志出來了,整篇文章,可能有很多寫的不到位的地方,請大家多多包含,也可以直接給我們留言,以便修正!

07、參考

IBM - ELK 架構和 Filebeat 工作原理詳解

分享到:
標簽:CentOS
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定