##安装部署流程
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 (可开启开机启动)