1. 程式人生 > 實用技巧 >爬蟲日誌監控 -- Elastc Stack(ELK)部署

爬蟲日誌監控 -- Elastc Stack(ELK)部署

導讀:四大元件Elasticsearch(核心)、logstash(處理)、filebeat(採集)、kibana(視覺化)

下載均在https://www.elastic.co/cn/downloads/直接下,配合fdm會快一點點

注意:“如若後續用到sentinl(開源監控警報外掛,可webhook接釘釘等),ELK的元件版本應選擇與sentinl版本一致,sentinl版本比ELK元件更新慢”

我的杯具:Plugin sentinl [7.6.1] is incompatible with Kibana [7.9.0]

零、環境

linux mint19

自帶open jdk 11

一、配置

主目錄建立itcast,然後分配許可權,本機使用user0

chown user0:user0 -R /itcast

本機配置:tar包全解壓至 /itcast/  修改以下配置檔案(注意Tab距離以預設檔案為主)

1、elasticsearch相關:

/itcast/(elasticsearch解壓目錄)/config/elasticsearch.yml

# 叢集名稱,預設是elasticsearch
cluster.name: my-application

# 節點名稱
node.name:node-1

# 配置IP埠
network.host:192.168.199.224
http.port: 9200

# 可以指定es的資料儲存目錄,預設儲存在es_home/data目錄下
# path.data: /path/to/data

# 可以指定es的日誌儲存目錄,預設儲存在es_home/logs目錄下
# path.logs: /path/to/logs

# 子叢集節點,用的上述設定的名稱
discovery.seed_hosts:[node-1]

# !!通過配置這個引數來防止叢集腦裂現象 (叢集總節點數量/2)+1
discovery.zen.minimum_master_nodes= ( master候選節點數量/2+1 )

2、logstash相關:

/itcast/(logstash解壓目錄)/logstash.conf (根據sample-config修改)

input {
  beats {
    port => 5044
  }
}

filter {
 # 重要功能,對日誌處理均在此步,按需自行搜尋 mutate { split => {"message" => "|"} } mutate { add_field => { "Date" => "%{[message][0]}" # 坑點!!!新版本中%{}裡欄位如message需要加上中括號[]作為識別 "Level" => "%{[message][1]}" "result" => "%{[message][2]}" } } mutate { convert => { "Date" => "string" "Leverl" => "string" "result" => "string" } } } output { elasticsearch { hosts => ["http://192.168.199.224:9200"] index => "logstash-%{+YYYY.MM.dd}" } }

3、filebeat相關:

/itcast/(filebeat解壓目錄)/filebeat.yml

filebeat.inputs:
  - type: log
  enabled: true
  paths:
    #目標檔案,自行匹配     - /var/log/*.log     #- /itcast/elasticsearch/logs/*   tags: ["spider"] #不需要logstash處理可直接傳ela本身
#output.elasticsearch: #  hosts: ["192.168.199.224:9200"]
out.logstash:
  hosts: ["192.168.199.224:5044"] filebeat.config.modules:   path: ${path.config}/modules.d/*.yml   reload.enabled: false setup.template.settings:   index.number_of_shards: 1 setup.kibana:   host: "192.168.199.224:5601"

4、kibana相關:

/itcast/(kibana解壓目錄)/config/kibana.yml

要點沒有,可不作配置

5、其他:

sentinl外掛安裝

(kibana目錄)/bin/kibana-plugin install file:~/sentinl-v7.6.1.zip  # zip包自行github尋找

/etc/security/limits.conf 尾部加上欄位

*                soft   nproc          65536
*                hard   nproc          65536
*                soft   nofile         65536
*                hard   nofile         65536

二、執行

切換到user0

su - user0

執行elasticsearch

cd /itcast/(elasticsearch解壓目錄)
./bin/elasticsearch

執行另外三個元件

cd /itcast/(kibana解壓目錄)
./bin/kibana
cd /itcast/(logstash解壓目錄)
./bin/logstash -f logstash.conf
cd /itcast/(filebeat解壓目錄)
./filebeat -e -c filebeat.yml

三、測試

新建控制檯,cd至filebeat監控日誌目錄,此處為 /var/log

重複執行以下命令

echo "2020-09-01 | DEBUG  | create a logmsg demo" >> demo.log

開啟kibana(此處為192.168.199.224:5601)

選單開啟Stack Management( 管理中心 )>> 建立索引(logstash的配置輸出中 index => "logstash-%{+YYYY.MM.dd}" ),此處輸入 logstash-* 即可 >> 選單開啟 discover,建立新條目,選擇上一步的索引即可返回相關資料

選單開啟日誌,選擇索引 logstash-* 亦可返回流式資料

kibana常規步驟: 建立索引 >> 建立表格( discover ) >> 建立視覺化(Visualize 餅圖,柱形圖等……) >> 建立儀表盤(dashboard 把視覺化組合起來) 後續更新如有