kibana+elasticsearch+filebeat (7.1.0)docker容器實現日誌分析記錄配置,並與harbar服務結合部署

##安裝部署流程

elasticsearch 安裝部署流程

下載elasticsearch7.1 最新版本 docker (elasticsearch用來存儲日誌記錄)

 shell> docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.0
 本地安裝並配置支持跨域容器設置
 1. 開啓容器
 shell> docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" 			     docker.elastic.co/elasticsearch/elasticsearch:7.1.0
 2. 進入es容器,並修改配置支持跨域
 shell> docker exec -it es /bin/bash
 es> vim /usr/share/elasticsearch/config/elasticsearch.yml
 		內容:
 		http.cors.enabled: true
		http.cors.allow-origin: "*"
  3.保存鏡像
  shell> docker commit es4 elasticsearch_hw:7.1.0
  4. 進入harbor首頁 192.168.10.63,創建一個項目(elk)
  	4.1 打標籤
		shell> docker tag elasticsearch_hw:7.1.0 192.168.10.63/elk/elasticsearch_hw:7.1.0
	4.2 上傳
		shell> docker push 192.168.10.63/elk/elasticsearch_hw:7.1.0

kibana 安裝部署流程

下載kibana7.1 最新版本 docker (該版本完全兼容es7.1) 目前的grafa暫時還沒有兼容7.X(需要後續關注)

 shell> docker pull kibana:7.1.0
 本地安裝並配置支持跨域容器設置
 1. 開啓容器
 shell> docker run -d --name kibana -p 5601:5601 kibana:7.1.0
 2. 進入kibana容器,並修改配置支持訪問es服務端口(http://192.168.10.63:9200)
 shell> docker exec -it kibana /bin/bash
 es> vi /usr/share/kibana/config/kibana.yml  修改配置如下
 		# Default Kibana configuration for docker target
		server.name: kibana
		server.host: "0"
		elasticsearch.hosts: [ "http://192.168.10.63:9200" ]
		xpack.monitoring.ui.container.elasticsearch.enabled: true
  3.保存鏡像
  shell> docker commit kibana kibana_hw:7.1.0
  4. 進入harbor首頁 192.168.10.63,創建一個項目(elk)【已經創建不需要創建】
  	4.1 打標籤
		shell> docker tag kibana_hw:7.1.0 192.168.10.63/elk/kibana_hw:7.1.0
	4.2 上傳
		shell> docker push 192.168.10.63/elk/kibana_hw:7.1.0

在線安裝配置

下載上傳的兩個容器
ssh 192.168.10.63:guops

	shell> docker pull 192.168.10.63/elk/kibana_hw:7.1.0
	shell> docker pull 192.168.10.63/elk/elasticsearch_hw:7.1.0

安裝 es與kibana監控系統

	shell> docker network create kml // 創建橋接
	shell> docker run -d --name es -p 9200:9200 -p 9300:9300 -v /home/guops/datas/esdata:/usr/share/elasticsearch/data --network kml -e "discovery.type=single-node" 192.168.10.63/elk/elasticsearch_hw:7.1.0  // 右陳榮慶root用戶創建、否則報data掛載無權限
	shell> docker run -d --name kibana --network kml -e ELASTICSEARCH_URL=http://192.168.10.63:9200 -p 5601:5601 192.168.10.63/elk/kibana_hw:7.1.0

監控文件

以filebeat作爲日誌採集工具,寫規則
filebeat會記錄上次的記錄位置(地址)

1) 先在elasticsearch中裝配pipeline規則 id爲 fault_detail1_pipline 用來識別過濾規則

curl -X PUT "192.168.10.63:9200/_ingest/pipeline/fault_detail1_pipline" -H 'Content-Type: application/json' -d'{ \
		"description": "第一步處理過程", \
		"processors" : [ \
			{ "grok": \
				{ "field": "message", \
				  "patterns": ["%{TIMESTAMP_ISO8601:loggentime} %{LOGLEVEL:loglevel} %{SYSLOGPROG:pid} %{DATA},id:%{NUMBER:entityid},start:%{MYDATE:starttime},enddata:%{MYDATE:endtime},%{WORD:tag}!$"], \
				  "pattern_definitions": {
					"MYDATE":"%{YEAR}[./-]%{MONTHNUM}[./-]%{MONTHDAY}"
					}
 				} 
			} ] 
	} '

2) filebeat.yml 執行文件基本配置

#=========================== Filebeat inputs =============================

filebeat.inputs:
- type: log
  # Change to true to enable this input configuration.
  enabled: true
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /home/zhangll/tomcat/jar/jobcube/jobcube.log

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  enabled: true
  # 對接到63上的elsticsearch
  hosts: ["192.168.10.63:9200"]
  # 執行管道命令用來過濾數據
  pipeline: "fault_detail1_pipline"
  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"
  indices:
    - index: "faultstat_step1"
      when.contains:
        message: "faultdetail"

3)執行filebea(67服務器)

	shell> nohup /home/zhangll/modules/filebeat-7.1.0/filebeat -e -c /home/zhangll/modules/filebeat-7.1.0/filebeat.yml >> /home/zhangll/modules/filebeat-7.1.0/logs/start.log 2&>1 &
執行腳本已經存入 /home/zhangll/bootshell/startFaultstep1filebeat.sh (可開啓開機啓動)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章