爬蟲日誌監控 -- 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 把視覺化組合起來) 後續更新如有