目录
第一步:下载镜像
第二步:将镜像导出上传到私有harbor仓库中
第三步:安装ElasticSearch
第四步:安装kibana
第五步:安装logstash
第六步:安装filebeat
将ELK部署到同一台服务器中(所以每次都会指定主机),elasticsearch使用单节点模式。
logstash、kibana、elasticsearch和filebeat的7.6.2版本的镜像
在elasticsearch的docker版本文档中,官方提到了vm.max_map_count的值在生产环境最少要设置成262144:
vi /etc/sysctl.conf
在文件的末尾添加:
vm.max_map_count=262144 # 修改或者新增
1.新建/home/elasticsearch/config文件夹,并新建elasticsearch.yml文件,文件内容为:
http.host: 0.0.0.0
保存退出
2.新建/home/elasticsearch/data文件夹,用于存储日志文件;
3.在Rancher2.4.2配置:
在集群中新建项目为ELK,命名空间为elk,然后在新的命名空间中部署服务elasticsearch:
填写镜像地址和添加端口映射:
添加环境变量(DISCOVERY_TYPE=single-node)和指定相应的服务器
数据卷1(/home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml)
数据卷2(/home/elasticsearch/data:/usr/share/elasticsearch/data)
点击启动,容器启动成功;
打开rancher在elk命名空间中添加kibana服务:
添加环境变量(ELASTICSEARCH_HOSTS)
指定主机是为了方便我们访问kibana的5601端口,使用IP地址是因为,如果使用服务明进行访问,有时候可能会出现DNS解析异常,点击启动。
在服务器中新建/home/elk/config文件夹,用于存放logstash.conf和filebeat.yml。
在文件夹中新建logstash.conf
vi logstash.conf
i
文件内容为:
input {
#开启filebeats的监听
beats {
#端口号
port => "5043"
#将日志以json格式输入
codec => "json"
#允许其他服务器推送日志
host => "0.0.0.0"
}
#开启tcp模式的监听
tcp {
#端口号
port => "5044"
#将日志以json格式输入
codec => "json_lines"
#允许其他服务器推送日志
host => "0.0.0.0"
}
}
#数据过滤,包含特定字符时丢弃该行
filter {
if [message] =~ "Resolving eureka endpoints via configuration" {
drop { }
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => [ "xxx.yyy.zzz.nnn:9200" ]
index => "%{[fields][doc_type]}-%{+YYYY.MM.dd}"
}
}
Rancher安装logstash
5044用于接收tcp的日志,比如springboot集成logstash的接口,而5043用于filebeat的接口;
添加数据卷(/home/elk/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf)
点击启动,启动成功;
在/home/elk/config文件夹中新建filebeat.yml
内容为
filebeat.inputs:
- paths:
- /home/csdn/apache-tomcat-8.5.51/logs/*.log
multiline:
pattern: ^\d{4}
negate: true
match: after
fields:
doc_type: order
- paths:
- /home/csdn/nginx/logs/error.log
multiline:
pattern: ^\d{4}
negate: true
match: after
fields:
doc_type: customer
output.logstash: # 输出地址
hosts: ["192.168.1.104:5043"]
打开Rancher,在els命名空间中添加filebeat
添加配置文件卷(/home/elk/config/filebeat.yml:/usr/share/filebeat/filebeat.yml)
添加数据卷(/home/:/home/),有我们计划将tomcat和nginx的日志进行采集,而两个都在home文件夹中,故将文件夹映射到filebeat中。
我比较喜欢先删除再重新部署方式,不喜勿喷。
点击启动,启动后将可以在kibana中查看到springboot的日志和filebeat的解析日志。
完成。