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 (可开启开机启动)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章