Loki日志持久化

Loki日志持久化

前言:

基于当前生产环境及测试环境的Loki服务升级或重启后,历史的日志信息会丢失,因此需要做Loki日志持久化

Loki介绍:

Loki是一款同类于elk的日志收集系统,相较于elk日志收集系统,Loki更加的轻便,它的设计非常经济高效且易于操作,官方介绍说到:Like Prometheus, but for logs.

Loki由3个组成部分组成:

  • loki 是主服务器,负责存储日志和处理查询。
  • promtail 是代理,负责收集日志并将其发送给loki。
  • 用户界面的Grafana。

一、Loki部署

1.helm安装

wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
tar xf helm-v3.2.4-linux-amd64.tar.gz && mv linux-amd64/helm /usr/local/bin
helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}

2.loki安装

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update  
helm upgrade --install loki --namespace=monitoring loki/loki-stack

二、Loki日志持久化

基于helm安装的没有数据持久化, 可以直接更改statefulset里面的数据卷挂载。

持久化前准备工作

1.nfs-server端搭建

sudo apt-get install nfs-kernel-server
sudo systemctl restart    nfs-kernel-server.service
sudo mkdir -R  /data/nfs_service
sudo chown -R nobody.nogroup  /data/nfs-service
sudo vim  /etc/exports
     /nfs/loki_data 172.16.0.0/12(rw,sync,no_subtree_check)   #添加授权网段的权限
sudo /etc/init.d/rpcbind restart
sudo systemctl status  nfs-kernel-server.service

2.nfs-client端搭建

sudo apt-get  install  nfs-common
sudo mkdir  /data/nfs-client
sudo showmount -e  172.21.12.24  查看nfs-server
sudo mount -t  nfs  172.21.12.24:/data/nfs_service    /data/nfs_service  #临时挂载
sudo vim /etc/fstab  
172.16.189.101:/nfs/loki_data    /data/nfs-client      nfs  defaults,_rnetdev   1  1  #开机自动挂载 , _rnetdev 表示主机无法挂载直接跳过
mount -a  #fstab文件书写是否正确

3.本地数据目录及用户的创建 ------------ 重要(不更改目录所属用户会提示权限拒绝错误)

mkdir /nfs/loki_data
useradd loki -u 10001  
chown -R loki:loki /nfs

4.创建pv及pvc

cat > loki-pv-pvc.yaml << 'EOF'
apiVersion: v1
kind: PersistentVolume
metadata:
  name: loki-log-nfs
  namespace: loki
  annotations:
    volume.beta.kubernetes.io/storage-class: "loki-log"
spec:
  capacity:
    storage: 300Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 172.16.189.101
    path: "/nfs/loki_data"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: loki-log-nfs
  namespace: loki
  annotations:
    volume.beta.kubernetes.io/storage-class: "loki-log"
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 300Gi
EOF
kubectl apply -f loki-pv-pvc.yaml

5.statefulset控制器yaml文件重写

kubectl get  statefulset loki -n loki -o yaml > loki.yaml
vim loki.yaml
...
      volumes:
      - name: config
        secret:
          defaultMode: 420
          secretName: loki
      - name: storage
          persistentVolumeClaim:  ## 将emtypDir改成pvc, 名称是上面创建的。
          claimName: loki

...
kubectl apply -f loki.yaml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向 着 太 阳 出 发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值