內網環境下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 # 修改或者新增

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)

點擊啓動,容器啓動成功;

第四步:安裝kibana

打開rancher在elk命名空間中添加kibana服務:

添加環境變量(ELASTICSEARCH_HOSTS)

指定主機是爲了方便我們訪問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的接口;

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

 

點擊啓動,啓動成功;

第六步:安裝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

 

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

添加數據卷(/home/:/home/),有我們計劃將tomcat和nginx的日誌進行採集,而兩個都在home文件夾中,故將文件夾映射到filebeat中。

我比較喜歡先刪除再重新部署方式,不喜勿噴。

點擊啓動,啓動後將可以在kibana中查看到springboot的日誌和filebeat的解析日誌。

完成。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章