国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

日志采集工具—VictoriaLogs初體驗

云計算 云原生
VictoriaLogs 是一個日志存儲和查詢的后端,并沒有提供直接的日志采集功能,而是兼容其他常見的日志采集工具,比如 fluentbit、filebeat、logstash 等,這里我們使用 fluentbit 來采集日志。

前面我們介紹了 VictoriaMetrics 發(fā)布了其日志解決方案 VictoriaLogs,只是簡單介紹了其特性,但是并沒有介紹其使用方法,本文我們就來體驗下 VictoriaLogs。

VictoriaLogs 是一個日志存儲和查詢的后端,并沒有提供直接的日志采集功能,而是兼容其他常見的日志采集工具,比如 fluentbit、filebeat、logstash 等,這里我們使用 fluentbit 來采集日志。

日志采集

比如現(xiàn)在我們需要采集 Kubernetes 集群的日志,然后將其存入到 VictoriaLogs 中去,我們這里的環(huán)境采用的是 containerd 這種容器運行時,所以在使用的時候需要和 docker 進行區(qū)分,這里我們使用 fluentbit 來采集日志,同樣這里我們也將其部署到我們的 Kubernetes 集群中,完整的部署文件如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: fluent-bit-config
  namespace: monitor
  labels:
    k8s-app: fluentbit-logging
    kubernetes.io/cluster-service: "true"
data:
  fluent-bit.conf: |
    [SERVICE]
        Flush         1
        Log_Level     info
        Daemon        off
        Parsers_File  parsers.conf
        HTTP_Server   On
        HTTP_Listen   0.0.0.0
        HTTP_Port     2020
    @INCLUDE input-kubernetes.conf
    @INCLUDE filter-kubernetes.conf
    @INCLUDE output.conf

  output.conf: |
    # [OUTPUT]
    #     Name            stdout
    #     Match           kube.var.log.containers.*.*
    [OUTPUT]
        Name http
        Match kube.var.log.containers.*.*
        host victorialogs
        port 9428
        compress gzip
        uri /insert/jsonline?_stream_fields=stream&_msg_field=message&_time_field=time
        format json_lines
        json_date_format iso8601
        header AccountID 0
        header ProjectID 0

  input-kubernetes.conf: |
    [INPUT]
        Name              tail
        Tag               kube.*
        Path              /var/log/containers/*.log
        Parser            cri
        DB                /var/log/flb_kube.db
        Mem_Buf_Limit     5MB
        Skip_Long_Lines   On
        Refresh_Interval  10

  filter-kubernetes.conf: |
    [FILTER]
        Name                kubernetes
        Match               kube.*
        Kube_URL            https://kubernetes.default.svc:443
        Kube_CA_File        /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        Kube_Token_File     /var/run/secrets/kubernetes.io/serviceaccount/token
        Kube_Tag_Prefix     kube.var.log.containers.
        Merge_Log           On
        Merge_Log_Trim      On
        Keep_Log            Off
        K8S-Logging.Parser  On
        K8S-Logging.Exclude Off
        Annotations         Off
        Labels              On

    [FILTER]
        Name          nest
        Match         kube.*
        Operation     lift
        Nested_under  kubernetes
        Add_prefix    kubernetes_

    [FILTER]
        Name          nest
        Match         kube.*
        Operation     lift
        Nested_under  kubernetes_labels
        Add_prefix    kubernetes_labels_

  parsers.conf: |
    [PARSER]
        Name        json
        Format      json
        Time_Key    time
        Time_Format %d/%b/%Y:%H:%M:%S %z
        Time_Keep   Off

    [PARSER]
        Name docker
        Format json
        Time_Key time
        Time_Format %Y-%m-%d %H:%M:%S
        Time_Keep Off

    [PARSER]
        Name        cri
        Format      regex
        Regex       ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>[^ ]*) (?<log>.*)$
        Time_Key    time
        Time_Format %Y-%m-%d %H:%M:%S

---
# fluentbit rbac
apiVersion: v1
kind: ServiceAccount
metadata:
  name: fluentbit
  namespace: monitor
  labels:
    k8s-app: fluentbit-logging
    kubernetes.io/cluster-service: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: fluentbit
  namespace: monitor
  labels:
    k8s-app: fluentbit-logging
    kubernetes.io/cluster-service: "true"
rules:
  - apiGroups: [""]
    resources:
      - namespaces
      - pods
      - pods/log
    verbs: ["get", "list", "watch"]
  - apiGroups: ["extensions", "apps"]
    resources:
      - deployments
      - replicasets
    verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: fluentbit
  namespace: monitor
  labels:
    k8s-app: fluentbit-logging
    kubernetes.io/cluster-service: "true"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: fluentbit
subjects:
  - kind: ServiceAccount
    name: fluentbit
    namespace: monitor
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit
  namespace: monitor
  labels:
    k8s-app: fluentbit-logging
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      k8s-app: fluentbit-logging
  template:
    metadata:
      labels:
        k8s-app: fluentbit-logging
    spec:
      serviceAccount: fluentbit
      serviceAccountName: fluentbit
      tolerations:
        - key: node-role.kubernetes.io/control-plane
          operator: Exists
          effect: NoSchedule
      containers:
        - name: fluentbit
          image: cr.fluentbit.io/fluent/fluent-bit:2.1.4
          imagePullPolicy: Always
          ports:
            - containerPort: 2020
          volumeMounts:
            - name: varlog
              mountPath: /var/log
            - name: fluent-bit-config
              mountPath: /fluent-bit/etc/fluent-bit.conf
              subPath: fluent-bit.conf
            - name: fluent-bit-config
              mountPath: /fluent-bit/etc/input-kubernetes.conf
              subPath: input-kubernetes.conf
            - name: fluent-bit-config
              mountPath: /fluent-bit/etc/filter-kubernetes.conf
              subPath: filter-kubernetes.conf
            - name: fluent-bit-config
              mountPath: /fluent-bit/etc/output.conf
              subPath: output.conf
      volumes:
        - name: varlog
          hostPath:
            path: /var/log
        - name: fluent-bit-config
          configMap:
            name: fluent-bit-config

首先在 ConfigMap 中我們配置了要采集的日志,日志源路徑為 /var/log/containers/*.log,這是默認(rèn)的容器日志路徑,我們可以在節(jié)點上去查看,但是需要注意的是該路徑下面的日志只是一個軟連接,真正的日志路徑在 /var/log/pods 下面,所以我們在 fluentbit 的 pod 中需要掛載宿主機的 /var/log 目錄,只掛載 /var/log/containers/ 目錄則無法獲取到真正的日志。

此外我們還為日志打上了 kube.* 標(biāo)簽,這是為了方便后續(xù)的日志過濾,我們可以根據(jù)標(biāo)簽來過濾日志進行相應(yīng)的處理。

日志經(jīng)過各種處理后,最重要的就是 OUTPUT 輸出源的配置,在調(diào)試階段我們可以先配置一個 stdout 的輸出源。

[OUTPUT]
    Name            stdout
    Match           kube.var.log.containers.*.*

這樣我們就可以通過 fluentbit 的 pod 日志來查看日志是否被采集到了。

如果采集到了,那么我們就可以配置其他的輸出源了,比如 elasticsearch、kafka、redis 等等,當(dāng)然我們這里是要將日志輸出到 VictoriaLogs 中,所以我們需要配置 VictoriaLogs 的輸出源,如下所示:

[OUTPUT]
    Name http
    Match kube.var.log.containers.*.*
    host victorialogs
    port 9428
    compress gzip
    uri /insert/jsonline?_stream_fields=stream&_msg_field=message&_time_field=time
    format json_lines
    json_date_format iso8601
    header AccountID 0
    header ProjectID 0

這里我們配置了 VictoriaLogs 的 host 和 port,其中最重要的是 uri 參數(shù),這個參數(shù)是 VictoriaLogs 的插入接口 /insert/jsonline?_stream_fields=stream&_msg_field=message&,這里我們需要注意的是 uri 參數(shù)中的 _stream_fields、_msg_field、_time_field 這三個參數(shù),這三個參數(shù)是 VictoriaLogs 的插入接口所必須的,其中 _stream_fields 是指定日志流的字段,這里我們指定為 stream,_msg_field 是指定日志內(nèi)容的字段,這里我們指定為 message,_time_field 是指定日志時間的字段,這里我們指定為 time,具體要取什么字段需要根據(jù)我們的日志來決定,這樣我們就可以將日志采集到 VictoriaLogs 中了。當(dāng)然還有兩個字段 AccountID 和 ProjectID,可以用來區(qū)分不同的租戶,這里我們暫時不用,所以設(shè)置為 0。

直接部署上面的資源清單即可,部署完成后我們可以查看 fluentbit 的 pod 日志,如果日志中沒有報錯,那么就說明我們的 fluentbit 部署成功了,接下來就可以部署 VictoriaLogs 了。

安裝 VictoriaLogs

由于 VictoriaLogs 目前預(yù)覽版本僅僅是一個單節(jié)點的應(yīng)用,所以我們只需要部署一個 Deployment 即可,如下所示:

# deploy victorialogs
apiVersion: apps/v1
kind: Deployment
metadata:
  name: victorialogs
  namespace: monitor
  labels:
    app: victorialogs
spec:
  selector:
    matchLabels:
      app: victorialogs
  template:
    metadata:
      labels:
        app: victorialogs
    spec:
      containers:
        - name: victorialogs
          image: victoriametrics/victoria-logs:latest
          # command:
          #   - -storageDataPath=/vlogs  # 指定日志存儲路徑
          ports:
            - containerPort: 9428
          volumeMounts:
            - name: logs
              mountPath: victoria-logs-data # 默認(rèn)日志存儲路徑
      volumes:
        - name: logs
          persistentVolumeClaim:
            claimName: victorialogs-pvc
---
# deploy victorialogs service
apiVersion: v1
kind: Service
metadata:
  name: victorialogs
  namespace: monitor
  labels:
    app: victorialogs
spec:
  ports:
    - port: 9428
      targetPort: 9428
  type: NodePort
  selector:
    app: victorialogs
---
# deploy victorialogs pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: victorialogs-pvc
  namespace: monitor
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: cfsauto
  resources:
    requests:
      storage: 10Gi

這里我們需要注意的是 VictoriaLogs 的存儲路徑,VictoriaLogs 默認(rèn)的存儲路徑是 victoria-logs-data,可以通過參數(shù) -storageDataPath 進行指定,如果想要持久化日志數(shù)據(jù),則需要將該路徑進行掛載,比如我們這里就指定了一個 PVC 進行關(guān)聯(lián)。另外由于上面 fluentbit 我們輸出到了 VictoriaLogs 的 host 地址為 victorialogs,所以我們還需要創(chuàng)建名為 victorialogs 的 Service 對象將其暴露出去,并且要和 fluentbit 在同一個命名空間下,此外 VictoriaLogs 本身還自帶一個 Web 界面,這里我們通過 NodePort 來對外進行暴露,這樣我們就可以通過 NodeIP:NodePort 來訪問 VictoriaLogs 了。

同樣直接部署上面的資源清單即可,部署完成后我們可以查看 VictoriaLogs 的 pod 日志,如果日志中沒有報錯,那么就說明我們的 VictoriaLogs 部署成功了。

$ kubectl get pods -n monitor
NAME                            READY   STATUS    RESTARTS   AGE
fluentbit-6rmp8                 1/1     Running   0          28m
fluentbit-bbgxb                 1/1     Running   0          28m
fluentbit-xwrzs                 1/1     Running   0          28m
victorialogs-5856895b4c-mcffw   1/1     Running   0          41m
$ kubectl get svc -n monitor
NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
victorialogs   NodePort    10.101.31.122   <none>        9428:30694/TCP      48m

部署完成后我們就可以通過 NodeIP:30694 來訪問 VictoriaLogs 如下所示:

點擊 select/vmui 就可以跳轉(zhuǎn)到 VictoriaLogs 的 Logs Explorer 界面了,如下所示:

然后我們就可以根據(jù)自己的需求來進行日志的查詢了,比如查詢?nèi)罩局邪?span> alog 關(guān)鍵字的日志:

此外還有 Table 和 JSON 兩種展示模式:

日志查詢使用的是 VictoriaLogs 的 LogsQL 語法,具體語法可以參考官方文檔: https://docs.victoriametrics.com/VictoriaLogs/LogsQL.html。

目前 VictoriaLogs 還處于預(yù)覽版本,所以還有很多功能沒有完善,只有簡單的日志查詢功能,比如目前還不支持日志的告警,可視化圖表等等功能,但是 VictoriaLogs 的開發(fā)者已經(jīng)在開發(fā)中了,相信很快就會支持了。

責(zé)任編輯:姜華 來源: k8s技術(shù)圈
相關(guān)推薦

2023-07-10 08:42:36

Loggie監(jiān)控項目

2012-05-16 10:50:17

Windows Pho

2009-03-09 15:12:39

XenServer安裝

2009-08-01 09:06:35

UbuntuOneLinux開源操作系統(tǒng)

2021-07-04 07:24:48

GitOps 工具 Argo CD

2023-07-15 08:01:38

2011-05-30 15:12:10

App Invento 初體驗

2010-11-22 10:31:17

Sencha touc

2009-11-30 10:09:02

谷歌Chrome OS

2011-11-01 10:30:36

Node.js

2025-03-18 07:30:41

2011-09-15 15:03:10

2010-12-13 11:39:39

2013-06-08 10:15:29

Outlook 201Outlook 201

2011-08-02 10:26:59

iOS 多線程 線程

2013-05-28 10:22:03

2009-07-21 13:08:08

iBATIS DAO

2011-09-05 10:20:21

Sencha ToucAPP

2017-09-05 05:55:24

AWS ES集群大數(shù)據(jù)

2024-12-23 07:00:00

FastExcelEasyExcel開源框架
點贊
收藏

51CTO技術(shù)棧公眾號

成人99免费视频| 日韩一区二区av| 国产尤物一区二区在线| 91福利社在线观看| 成人免费自拍视频| 亚洲美女在线免费观看| 中文字幕桃花岛| 国产成人福利av| 国产日韩三级在线| 欧美激情中文网| 热99在线观看| 成人禁用看黄a在线| 亚洲成人自拍视频| 久草免费在线视频| 久久综合精品国产一区二区三区 | 成人日日夜夜| 天堂影院一区二区| 亚洲精品美女在线观看播放| 99中文字幕在线观看| 国产精品中文| 亚洲日本乱码在线观看| 亚洲精品免费网站| 黄频免费在线观看| 91在线小视频| 国产精品一香蕉国产线看观看| 免费在线黄色网址| 久久一区二区三区超碰国产精品| 91手机在线观看| 黄在线观看免费网站ktv| 亚洲国产一区自拍| 午夜免费福利在线| 91av精品| 亚洲国产日韩欧美在线动漫| 男人和女人做事情在线视频网站免费观看 | 国产精品一区在线观看你懂的| 久久久国产成人精品| 成人网18入口| 18涩涩午夜精品.www| 国产精品一区二区三区精品| 暖暖在线中文免费日本| 老司机激情视频| 欧美美女黄色网| av片在线观看永久免费| 国产黄在线播放| 97av视频在线观看| 91精品一区二区| 国产av国片精品| 91精选在线| 亚洲精品中文在线观看| 亚洲国产中文字幕在线视频综合| 亚洲精品中文字幕乱码| 制服诱惑亚洲| 亚洲一区欧美二区| 国产成人精品免费一区二区| 国产欧美一区二区三区鸳鸯浴| 日韩在线观看视频免费| 精品一区二区中文字幕| 国产日韩高清在线| 精东影业在线观看| 寂寞少妇一区二区三区| 国产精品日韩久久久久| 中文字幕资源网在线观看免费| 亚洲人成网站在线| 国产小视频福利在线| 精品国产一区二区国模嫣然| 成人免费网站视频www| 亚洲444eee在线观看| 人人干视频在线| 在线综合亚洲| 国产人妖伪娘一区91| 伦一区二区三区中文字幕v亚洲| 91黄色小视频| 国产v综合v| 国产精品久久久久久久美男| 日韩av中文在线观看| 日韩av免费看网站| 男人皇宫亚洲男人2020| 精品女同一区二区三区在线播放| 日韩视频免费播放| 婷婷国产v国产偷v亚洲高清| 欧美日韩第二页| 亚欧成人精品| 日本老熟妇毛茸茸| 成人免费视频视频| 亚洲日本无吗高清不卡| 亚洲国产高清视频| 国产精品久久综合av爱欲tv| 蜜桃久久久久久久| 久久久水蜜桃| 99久久影视| 456亚洲影院| 久久精品黄色| 亚洲xxxxx| 国产欧美一区在线| 黄污视频在线观看| 日韩丝袜美女视频| 在线观看免费黄色| 婷婷亚洲久悠悠色悠在线播放| 成人免费图片免费观看| 国产精品入口尤物| av中文字幕不卡| 日本中文字幕在线视频观看| 国产日产高清欧美一区二区三区| 成人黄色免费看| 成人福利视频网站| 操你啦在线视频| 91情侣偷在线精品国产| 久久久.com| 蜜臀av免费观看| 精品国产伦一区二区三区观看方式 | 自拍偷拍亚洲综合| 国产精品无码久久久久| 久久视频在线观看中文字幕| 免费视频成人| 蜜桃视频成人| 色婷婷一区二区三区四区| 狠狠v欧美ⅴ日韩v亚洲v大胸| 午夜精品免费在线| 91夜夜蜜桃臀一区二区三区| 97人洗澡人人免费公开视频碰碰碰| 国产亚洲人成a在线v网站| 欧美大香线蕉线伊人久久| 麻豆国产精品官网| 久久香蕉视频网站| 日韩欧美一级二级三级久久久| 国产传媒在线| 九九久久99| 欧美午夜精品久久久久久孕妇| 九七久久人人| 亚洲欧美成人精品| 爱情电影网av一区二区| 伦伦影院午夜日韩欧美限制| 综合欧美亚洲| 国产日韩欧美视频在线| 日本一区二区三区在线不卡 | 欧美日韩激情电影| 裸体大乳女做爰69| 91麻豆免费观看| 四虎免费av| 亚洲成a人v欧美综合天堂下载| 亚洲一区二区电影| 精品久久久噜噜噜噜久久图片| 久久亚洲精品国产亚洲老地址| 91亚洲精品一区二区乱码| 亚洲精品大全| 色总=综合色| 欧美美女网站色| 欧美综合影院| 91免费看片在线| 色哟哟精品一区| 欧美黄色免费| 成年人午夜免费视频| 日韩在线视频观看正片免费网站| 9i在线看片成人免费| 成人亚洲精品| 秋霞在线观看av| 亚洲第一视频网| 日韩啪啪网站| 免费电影一区| 亚洲乱码国产乱码精品精| 九九热在线视频观看这里只有精品| 激情 小说 亚洲 图片: 伦| 2021国产精品视频| 欧美日韩亚洲91| 久久视频一区| 日韩一级视频| 高清欧美精品xxxxx在线看| 日韩一级片网址| 精品一区二区三区在线观看国产 | 久久久久久久性潮| 性生活免费在线观看| 欧美日韩精品一区二区三区四区 | 亚洲激情一区二区| 在线看国产精品| 国产综合亚洲精品一区二| 欧美xxxxx在线视频| 欧美日韩一区 二区 三区 久久精品 | 国产激情久久久久| 久久精品国产99国产| 91九色综合| 好吊色欧美一区二区三区视频| 99国产一区二区三精品乱码| 岛国av一区| 免费在线你懂的| 精品久久久久久久免费人妻| 日本欧美精品在线| 日韩精品中文字幕在线不卡尤物| 99久久伊人网影院| 欧美777四色影| 日韩久久99| 国产一区二区影视| 91传媒久久久| 动漫美女被爆操久久久| 国产欧美日韩在线观看| 色偷偷综合网| 日韩精品视频一二三| 精品乱码一区二区三区| 久久综合88中文色鬼| 欧美日本韩国一区二区三区视频 | 成人黄色免费观看|