成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

【容器云 UK8S】日志監(jiān)控方案:使用ELK自建UK8S日志解決方案

Tecode / 2267人閱讀

摘要:使用自建日志解決方案下面我們介紹下如何使用來(lái)搭建日志解決方案。根據(jù)配置文件創(chuàng)建一個(gè)名為的,如下在集群部署。配置在之前部署時(shí),由于我們已經(jīng)將加入到中,已經(jīng)可以對(duì)的日志實(shí)現(xiàn)監(jiān)控采集。

使用ELK自建UK8S日志解決方案

下面我們介紹下如何使用Elasticsearch+Filebeat+Kibana來(lái)搭建UK8S日志解決方案。

一、部署Elasticsearch

1. 關(guān)于Elasticsearch

Elasticsearch(ES)是一個(gè)基于Lucene構(gòu)建的開(kāi)源、分布式、RESTful接口的全文搜索引擎。Elasticsearch還是一個(gè)分布式文檔數(shù)據(jù)庫(kù),其中每個(gè)字段均可被索引,而且每個(gè)字段的數(shù)據(jù)均可被搜索,ES能夠橫向擴(kuò)展至數(shù)以百計(jì)的服務(wù)器存儲(chǔ)以及處理PB級(jí)的數(shù)據(jù)??梢栽跇O短的時(shí)間內(nèi)存儲(chǔ)、搜索和分析大量的數(shù)據(jù)。通常作為具有復(fù)雜搜索場(chǎng)景情況下的核心發(fā)動(dòng)機(jī)

2. 環(huán)境要求

Elasticsearch運(yùn)行時(shí)要求vm.max_map_count內(nèi)核參數(shù)必須大于262144,因此開(kāi)始之前需要確保這個(gè)參數(shù)正常調(diào)整過(guò)。

sysctl -w vm.max_map_count=262144

也可以在ES的的編排文件中增加一個(gè)initContainer來(lái)修改內(nèi)核參數(shù),但這要求kublet啟動(dòng)的時(shí)候必須添加了--allow-privileged參數(shù),uk8s默認(rèn)開(kāi)啟了該參數(shù),在后面的示例中采用initContainer的方式。

3. ES節(jié)點(diǎn)角色

ES的節(jié)點(diǎn)Node可以分為幾種角色:

Master-eligible node,是指有資格被選為Master節(jié)點(diǎn)的Node,可以統(tǒng)稱(chēng)為Master節(jié)點(diǎn)。設(shè)置node.master: true

Data node,存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn),設(shè)置方式為node.data: true。

Ingest node,進(jìn)行數(shù)據(jù)處理的節(jié)點(diǎn),設(shè)置方式為node.ingest: true。

Trible node,為了做集群整合用的。

對(duì)于單節(jié)點(diǎn)的Node,默認(rèn)是master-eligible和data,對(duì)于多節(jié)點(diǎn)的集群,需要根據(jù)需求仔細(xì)規(guī)劃每個(gè)節(jié)點(diǎn)的角色。

4. Elasticsearch部署

為了方便演示,我們把本文所有的對(duì)象資源都放置在一個(gè)名為 elk 的 namespace 下面,所以我們需要添加創(chuàng)建一個(gè) namespace:

kubectl create namespace elk

不區(qū)分節(jié)點(diǎn)角色

這種模式下,集群中的節(jié)點(diǎn)不做角色的區(qū)分,配置文件請(qǐng)參考elk-cluster.yaml

bash-4.4# kubectl apply -f elk-cluster.yaml
deployment.apps/kb-single created
service/kb-single-svc created
statefulset.apps/es-cluster created
service/es-cluster-nodeport created
service/es-cluster created
bash-4.4# kubectl get po -n elk
NAME                         READY   STATUS    RESTARTS   AGE
es-cluster-0                 1/1     Running   0          2m18s
es-cluster-1                 1/1     Running   0          2m15s
es-cluster-2                 1/1     Running   0          2m12s
kb-single-69ddfc96f5-lr97q   1/1     Running   0          2m18s
bash-4.4# kubectl get svc -n elk
NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)                         AGE
es-cluster            ClusterIP      None                     9200/TCP9300/TCP               2m20s
es-cluster-nodeport   NodePort       172.17.177.40            9200:31200/TCP9300:31300/TCP   2m20s
kb-single-svc         LoadBalancer   172.17.129.82   117.50.40.48   5601:38620/TCP                  2m20s
bash-4.4#

通過(guò)kb-single-svc的EXTERNAL-IP,便可以訪問(wèn)Kibana。

區(qū)分節(jié)點(diǎn)角色

如果需要區(qū)分節(jié)點(diǎn)的角色,就需要建立兩個(gè)StatefulSet部署,一個(gè)是Master集群,一個(gè)是Data集群。Data集群的存儲(chǔ)示例中簡(jiǎn)單使用了emptyDir,可以根據(jù)需要使用localStorage或者h(yuǎn)ostPath,關(guān)于存儲(chǔ)的介紹,可以參考Kubernetes官網(wǎng)。這樣就可以避免Data節(jié)點(diǎn)在本機(jī)重啟時(shí)發(fā)生數(shù)據(jù)丟失而重建索引,但是如果發(fā)生遷移的話(huà),如果想保留數(shù)據(jù),只能采用共享存儲(chǔ)的方案了。具體的編排文件在這里elk-role-cluster.yaml

bash-4.4# kubectl apply -f elk-role-cluster.yaml
deployment.apps/kb-single created
service/kb-single-svc created
statefulset.apps/es-cluster created
statefulset.apps/es-cluster-data created
service/es-cluster-nodeport created
service/es-cluster created
bash-4.4# kubectl get po -n elk
NAME                         READY   STATUS    RESTARTS   AGE
es-cluster-0                 1/1     Running   0          53s
es-cluster-1                 1/1     Running   0          50s
es-cluster-2                 1/1     Running   0          47s
es-cluster-data-0            1/1     Running   0          53s
es-cluster-data-1            1/1     Running   0          50s
es-cluster-data-2            1/1     Running   0          47s
kb-single-69ddfc96f5-lxsn8   1/1     Running   0          53s
bash-4.4# kubectl get statefulset -n elk
NAME              READY   AGE
es-cluster        3/3     2m
es-cluster-data   3/3     2m
bash-4.4# kubectl get svc -n elk
NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)                         AGE
es-cluster            ClusterIP      None                     9200/TCP9300/TCP               44s
es-cluster-nodeport   NodePort       172.17.63.138            9200:31200/TCP9300:31300/TCP   44s
kb-single-svc         LoadBalancer   172.17.183.59   117.50.92.74   5601:32782/TCP 

二、部署FileBeat

在進(jìn)行日志收集的過(guò)程中,我們首先想到的是使用Logstash,因?yàn)樗荅LK stack中的重要成員,但是在測(cè)試過(guò)程中發(fā)現(xiàn),Logstash是基于JDK的,在沒(méi)有產(chǎn)生日志的情況單純啟動(dòng)Logstash就大概要消耗500M內(nèi)存,在每個(gè)Pod中都啟動(dòng)一個(gè)日志收集組件的情況下,使用logstash有點(diǎn)浪費(fèi)系統(tǒng)資源,因此我們更推薦一個(gè)輕量級(jí)的日志采集工具Filebeat,經(jīng)測(cè)試多帶帶啟動(dòng)Filebeat容器大約只會(huì)消耗12M內(nèi)存。
具體的編排文件可以參考filebeat.yaml,本例采用DaemonSet的方式編排。

bash-4.4# kubectl apply -f filebeat.yaml
configmap/filebeat-config created
daemonset.extensions/filebeat created
clusterrolebinding.rbac.authorization.k8s.io/filebeat created
clusterrole.rbac.authorization.k8s.io/filebeat created
serviceaccount/filebeat created

編排文件中將filebeat使用到的配置ConfigMap掛載到/home/uk8s-filebeat/filebeat.yaml,實(shí)際啟動(dòng)filebeat時(shí)使用該自定義配置。有關(guān)filebeat的配置可以參見(jiàn) Configuring Filebeat中相應(yīng)的說(shuō)明。

Filebeat命令行參數(shù)可以參考 Filebeat Command Reference,本例中使用到的參數(shù)說(shuō)明如下:

  • -c --c FILE
指定Filebeat使用的配置文件,如果不指定則使用默認(rèn)的配置文件/usr/share/filebeat/filebeat.yaml
  • -d --d SELECTORS
為指定的selectors打開(kāi)調(diào)試模式, selectors是以逗號(hào)分隔的列表,-d "*" 表示對(duì)所有組件進(jìn)行調(diào)試。在實(shí)際生產(chǎn)環(huán)境中請(qǐng)關(guān)閉該選項(xiàng),初次配置時(shí)打開(kāi)可以有效排錯(cuò)。
  • -e --e
指定日志輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出,關(guān)閉默認(rèn)的syslog/file輸出

三、部署Logstash(可選)

由于Filebeat對(duì)message的過(guò)濾功能有限,在實(shí)際生產(chǎn)環(huán)境中通常會(huì)結(jié)合logstash。這種架構(gòu)中Filebeat作為日志收集器,將數(shù)據(jù)發(fā)送到Logstash,經(jīng)過(guò)Logstash解析、過(guò)濾后,將其發(fā)送到Elasticsearch存儲(chǔ),并由Kibana呈獻(xiàn)給用戶(hù)。

1、創(chuàng)建配置文件

創(chuàng)建Logstash的配置文件,可以參考elk-log.conf,更詳細(xì)的配置信息見(jiàn)Configuring Logstash。大部分Logstash配置文件都可以分為3部分:input filter 和 output,示例配置文件中指定Logstash從Filebeat獲取數(shù)據(jù),并輸出到Elasticsearch。

2、根據(jù)配置文件創(chuàng)建一個(gè)名為elk-pipeline-config的ConfigMap,如下:

bash-4.4# kubectl create configmap elk-pipeline-config --from-file=elk-log.conf --namespace=elk
configmap/elk-pipeline created
bash-4.4# kubectl get configmap -n elk
NAME                  DATA   AGE
elk-pipeline-config   1      9s
filebeat-config       1      21m

3、在K8S集群部署logstash。

編寫(xiě) logstash.yaml ,在yaml文件中掛載之前創(chuàng)建的ConfigMap。需要注意的是,此處使用了logstash-oss鏡像,關(guān)于oss和non-oss版本的區(qū)別請(qǐng)參考鏈接。

bash-4.4# kubectl apply -f logstash.yaml
deployment.extensions/elk-log-pipeline created
service/elk-log-pipeline created
bash-4.4# kubectl get po -n elk
NAME                                READY   STATUS    RESTARTS   AGE
elk-log-pipeline-55d64bbcf4-9v49w   1/1     Running   0          50m

4、查看logstash是否正常工作,出現(xiàn)如下內(nèi)容,則表明logstash正常工作

bash-4.4# kubectl logs -f elk-log-pipeline-55d64bbcf4-9v49w -n elk
[2019-03-19T08:56:03631][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
...
[2019-03-19T08:56:09845][INFO ][logstash.inputs.beats    ] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
[2019-03-19T08:56:09934][INFO ][logstash.pipeline        ] Pipeline started succesfully {:pipeline_id=>"main" :thread=>"#"}
[2019-03-19T08:56:10034][INFO ][org.logstash.beats.Server] Starting server on port: 5044

5、修改 filebeat.yaml的output參數(shù),將其輸出指向Logstash

items:
- apiVersion: v1
  kind: ConfigMap
  metadata:
    ...
  data:
    filebeat.yml: |
     ...
      output.logstash:
        hosts: ["elk-log-pipeline:5044"]
     ...

四、收集應(yīng)用日志

前面我們已經(jīng)部署好了Filebeat用于采集應(yīng)用日志,并將采集到的日志輸出到Elasticsearch,下面我們以一個(gè)nginx應(yīng)用為例,來(lái)測(cè)試日志能否正常采集、索引、展示。

1、部署nginx應(yīng)用

創(chuàng)建一個(gè)Nginx的部署和LoadBalancer服務(wù),這樣可以通過(guò)eip訪問(wèn)Nginx。配置文件請(qǐng)參考nginx.yaml,我們將Nginx訪問(wèn)日志的輸出路徑以hostPath的形式掛載到宿主的/var/log/nginx/路徑下。

bash-4.4# kubectl apply -f nginx.yaml
deployment.apps/nginx-deployment unchanged
service/nginx-cluster configured
bash-4.4# kubectl get svc -n elk nginx-cluster
NAME            TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)          AGE
nginx-cluster   LoadBalancer   172.17.153.144   117.50.25.74   5680:48227/TCP   19m
bash-4.4# kubectl get po -n elk -l app=nginx
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-6c858858d5-7tcbx   1/1     Running   0          36m
nginx-deployment-6c858858d5-9xzh8   1/1     Running   0          36m

2、Filebeat配置

在之前部署Filebeat時(shí),由于我們已經(jīng)將/var/log/nginx/加入到inputs.paths中,F(xiàn)ilebeat已經(jīng)可以對(duì)nginx的日志實(shí)現(xiàn)監(jiān)控采集。

 filebeat.modules:
      - module: system
      filebeat.inputs:
      - type: log
        paths:
          - /var/log/containers/*.log
          - /var/log/messages
          - /var/log/nginx/*.log
          - /var/log/*
        symlinks: true
        include_lines: [hyperkube]
      output.logstash:
        hosts: ["elk-log-pipeline:5044"]
      logging.level: info
      index: filebeat-

3、通過(guò)公網(wǎng)訪問(wèn)nginx服務(wù),產(chǎn)生訪問(wèn)日志

4、通過(guò)Kibana驗(yàn)證日志的采集情況

實(shí)時(shí)文檔歡迎訪問(wèn)https://docs.ucloud.cn/uk8s/log/elastic_filebeat_kibana_solution

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/126275.html

相關(guān)文章

  • 容器UK8S】新手指導(dǎo)

    摘要:詳細(xì)請(qǐng)見(jiàn)產(chǎn)品價(jià)格產(chǎn)品概念使用須知名詞解釋漏洞修復(fù)記錄集群節(jié)點(diǎn)配置推薦模式選擇產(chǎn)品價(jià)格操作指南集群創(chuàng)建需要注意的幾點(diǎn)分別是使用必讀講解使用需要賦予的權(quán)限模式切換的切換等。UK8S概覽UK8S是一項(xiàng)基于Kubernetes的容器管理服務(wù),你可以在UK8S上部署、管理、擴(kuò)展你的容器化應(yīng)用,而無(wú)需關(guān)心Kubernetes集群自身的搭建及維護(hù)等運(yùn)維類(lèi)工作。了解使用UK8S為了讓您更快上手使用,享受UK...

    Tecode 評(píng)論0 收藏0
  • 容器 UK8S日志監(jiān)控方案使用UK8S日志插件功能

    摘要:使用日志插件功能推出了一個(gè)新的插件功能,旨在幫助用戶(hù)快速部署集群所需要的相關(guān)插件。安裝完成后可以在控制臺(tái)看到日志儀表盤(pán),查看組件健康狀態(tài)日志信息統(tǒng)計(jì)。安裝完成后可以在中進(jìn)行集群內(nèi)部日志查詢(xún),集群其他日志查詢(xún)請(qǐng)至集群提供的進(jìn)行查詢(xún)。使用UK8S日志插件功能UK8S推出了一個(gè)新的插件功能,旨在幫助用戶(hù)快速部署UK8S集群所需要的相關(guān)插件。使用須知支持UK8S版本:1.15.5、1.14.6(20...

    Tecode 評(píng)論0 收藏0
  • 樂(lè)心醫(yī)療的 Kubernetes平臺(tái)建設(shè)實(shí)踐

    摘要:宋體自年被開(kāi)源以來(lái),很快便成為了容器編排領(lǐng)域的標(biāo)準(zhǔn)。宋體年月,樂(lè)心醫(yī)療的第一個(gè)生產(chǎn)用集群正式上線(xiàn)。所以于年推出后,樂(lè)心醫(yī)療的運(yùn)維團(tuán)隊(duì)在開(kāi)會(huì)討論之后一致決定盡快遷移到。Kubernetes 自 2014 年被 Google 開(kāi)源以來(lái),很快便成為了容器編排領(lǐng)域的標(biāo)準(zhǔn)。因其支持自動(dòng)化部署、大規(guī)??缮炜s和容器化管理等天然優(yōu)勢(shì),已經(jīng)被廣泛接納。但由于 Kubernetes 本身的復(fù)雜性,也讓很多企業(yè)的...

    testHs 評(píng)論0 收藏0
  • 拉勾網(wǎng)基于 UK8S平臺(tái)的容器化改造實(shí)踐

    摘要:宋體本文從拉勾網(wǎng)的業(yè)務(wù)架構(gòu)日志采集監(jiān)控服務(wù)暴露調(diào)用等方面介紹了其基于的容器化改造實(shí)踐。宋體此外,拉勾網(wǎng)還有一套自研的環(huán)境的業(yè)務(wù)發(fā)布系統(tǒng),不過(guò)這套發(fā)布系統(tǒng)未適配容器環(huán)境。寫(xiě)在前面 拉勾網(wǎng)于 2019 年 3 月份開(kāi)始嘗試將生產(chǎn)環(huán)境的業(yè)務(wù)從 UHost 遷移到 UK8S,截至 2019 年 9 月份,QA 環(huán)境的大部分業(yè)務(wù)模塊已經(jīng)完成容器化改造,生產(chǎn)環(huán)境中,后臺(tái)管理服務(wù)已全部遷移到 UK8...

    CoorChice 評(píng)論0 收藏0
  • 容器 UK8S日志監(jiān)控方案監(jiān)控中心操作指南之監(jiān)控中心概述,開(kāi)啟監(jiān)控中心,添加監(jiān)控目標(biāo)和添加接

    摘要:添加接收人監(jiān)控中心支持添加郵箱及微信兩種告警,需要注意的是,添加郵箱告警的話(huà),需要預(yù)先配置發(fā)件服務(wù)器。由于監(jiān)控中心配置了一條告警規(guī)則,只要企業(yè)微信的信息填寫(xiě)正確,一般分鐘以?xún)?nèi)均可從企業(yè)微信中獲取到告警信息。監(jiān)控中心概述監(jiān)控中心是UK8S提供的產(chǎn)品化監(jiān)控方案,提供基于Prometheus的產(chǎn)品解決方案,涵蓋Prometheus集群的全生命周期管理,以及告警規(guī)則配置、報(bào)警設(shè)置等功能,省去了自行搭...

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<