• K8S 使用loki 监控 应用日志的搭建办法


    1. 背景

    • 这几天一直在用k8s部署分SU的测试环境,开发反馈看日志比较麻烦. 昨天晚上在家里本来想搭建ELK 发现比较重, 又说有一个比较轻量级的 loki 可以实现使用grafana进行监控和查看日志,所以今天就进行以下简单的尝试.

    2. 搭建步骤

    • 搭建loki
    使用helm 方式搭建还是很简单的, 最近在放国庆节, 公司的网络和docker pull 的次数不多 比较顺利的就完成了
    helm repo add loki https://grafana.github.io/loki/charts && helm repo update
    helm pull loki/loki-stack
    tar xf loki-stack-2.1.2.tgz
    helm install loki loki-stack/
    
    如上四步就可以搭建完loki . 
    然后可以使用 kubectl get pods |grep loki 的方式进行查看.
    
    [root@k8s-master01 deploy]# kubectl get pods |grep loki
    loki-0                           1/1     Running   0          44m
    loki-promtail-xbj4m              1/1     Running   0          44m
    
    • 搭建grafana
    • 需要注意的一点是 虽然 helm install 成功了 但是我没仔细看他的chart文件, 怀疑应该是 没有暴露node节点的端口 所以只允许内部访问.
    • 最简单的办法就是在k8s内部搭建一套grafana进行使用. 反正今天网络好. 就直接开干了.
    • 创建一个 yaml文件. 注意我这边没有修改 kubelet 对应的 port range 所以选择使用 30555 这样比较大的端口号.
    • 搭建好文件直接 kubectl apply -f grafana.yaml 就可以了.
     cat<<EOF > grangfan.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: grafana
      labels:
        app: grafana
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: grafana
      template:
        metadata:
          labels:
            app: grafana
        spec:
          containers:
          - name: grafana
            image: grafana/grafana:latest
            volumeMounts:
            - name: timezone
              mountPath: /etc/localtime
          volumes:
            - name: timezone
              hostPath:
                path: /usr/share/zoneinfo/Asia/Shanghai
    
    ---
    
    apiVersion: v1
    kind: Service
    metadata:
      name: grafana-svc
    spec:
      ports:
      - port: 3000
        targetPort: 3000
        nodePort: 30555
      type: NodePort
      selector:
        app: grafana
    EOF
    
    • 搭建完成之后看一下 相关的 pod信息
    [root@k8s-master01 deploy]# kubectl get pods |grep grafana
    grafana-7b59dc9755-7z9v4         1/1     Running   0          45m
    

    3. 查看日志


    3.1 登录grafana 并且修改密码

    登录 nodeip:30555 打开网页
    输入自己需要设置的密码.
    打开界面即可.
    

    3.2 查看loki的日志信息

    • 注意 这一步好像最开始有一定的延迟存在, 会导致前面五分钟一点日志都看不到, 我一度以为自己弄错了, 但是过了几分钟后自己就好了.
    • 这里面操作就通过截图来说明了.

    3.2.1 打开数据源定义, 添加loki的数据源.

    • 数据源的位置
      image
    • 添加loki的相关信息
      image
    • 注意 k8s内部直接属于 svc的名字既可以访问
      image
    • 相关查询服务的信息语句为:
    [root@k8s-master01 deploy]# kubectl get svc |grep loki
    loki            ClusterIP   10.103.24.66     <none>        3100/TCP         56m
    loki-headless   ClusterIP   None             <none>        3100/TCP         56m
    

    3.2.2 打开explorer 进行相关条件设置

    • 可以使用 admin 或者是后来添加的管理员权限进行处理.
      image
    • 注意 可以点击log browser 选择需要查看的日志信息
      image
    • 可以选中具体的一个pod 然后查看相应的日志, 注意需要选择使用 show log
      image

    3.2.3 过滤日志范围等操作

    • 可以选择live 实时查看
    • 可以查看最近1小时内的日志
    • 没找到如何过滤 我直接使用的 ctrl+f
      image

    3.3 grafana 添加用户 给其他同事使用

    • 可以使用 server admin 来添加用户
      image

    • 然后可以使用 user 给用户添加 admin以及组织权限就可以 使用自定义用户进行查看日志了.

  • 相关阅读:
    leetcode[45]Jump Game II
    leetcode[46]Permutations
    leetcode[47]Permutations II
    leetcode[48]Rotate Image
    手把手一起玩perl安装
    List the Modules in Your System
    oracle之recyclebin
    10g 11g新特性
    RMAN相关操作命令
    手把手一起安装RAC+DataGuard
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15363508.html
Copyright © 2020-2023  润新知