内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务

目录

第一步:下载镜像

第二步:将镜像导出上传到私有harbor仓库中

第三步:安装ElasticSearch

第四步:安装kibana

第五步:安装logstash

第六步:安装filebeat


将ELK部署到同一台服务器中(所以每次都会指定主机),elasticsearch使用单节点模式。

第一步:下载镜像

logstash、kibana、elasticsearch和filebeat的7.6.2版本的镜像

第二步:将镜像导出上传到私有harbor仓库中

第三步:安装ElasticSearch

在elasticsearch的docker版本文档中,官方提到了vm.max_map_count的值在生产环境最少要设置成262144:

vi /etc/sysctl.conf

在文件的末尾添加:

vm.max_map_count=262144 # 修改或者新增

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第1张图片

1.新建/home/elasticsearch/config文件夹,并新建elasticsearch.yml文件,文件内容为:

http.host: 0.0.0.0

保存退出

2.新建/home/elasticsearch/data文件夹,用于存储日志文件;

3.在Rancher2.4.2配置:

在集群中新建项目为ELK,命名空间为elk,然后在新的命名空间中部署服务elasticsearch:

填写镜像地址和添加端口映射:

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第2张图片

添加环境变量(DISCOVERY_TYPE=single-node)和指定相应的服务器

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第3张图片

数据卷1(/home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml)

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第4张图片

数据卷2(/home/elasticsearch/data:/usr/share/elasticsearch/data)

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第5张图片

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第6张图片

点击启动,容器启动成功;

第四步:安装kibana

打开rancher在elk命名空间中添加kibana服务:

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第7张图片

添加环境变量(ELASTICSEARCH_HOSTS)

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第8张图片

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第9张图片

指定主机是为了方便我们访问kibana的5601端口,使用IP地址是因为,如果使用服务明进行访问,有时候可能会出现DNS解析异常,点击启动。

第五步:安装logstash

在服务器中新建/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的接口;

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第10张图片

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第11张图片

添加数据卷(/home/elk/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf)

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第12张图片

 

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第13张图片

点击启动,启动成功;

第六步:安装filebeat

在/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

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第14张图片

 

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第15张图片

添加配置文件卷(/home/elk/config/filebeat.yml:/usr/share/filebeat/filebeat.yml)

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第16张图片

添加数据卷(/home/:/home/),有我们计划将tomcat和nginx的日志进行采集,而两个都在home文件夹中,故将文件夹映射到filebeat中。

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第17张图片

内网环境下Rancher(2.4.2)部署ELK(7.6.2)服务_第18张图片

我比较喜欢先删除再重新部署方式,不喜勿喷。

点击启动,启动后将可以在kibana中查看到springboot的日志和filebeat的解析日志。

完成。

 

 

 

 

 

你可能感兴趣的:(docker,Linux,微服务)