首页 > 其他分享 >k8s - Promtail 重写日志标签名

k8s - Promtail 重写日志标签名

时间:2024-01-24 21:24:12浏览次数:29  
标签:__ promtail 192.168 loki Promtail 日志 k8s Pod pod

1. Promtail 重写日志标签名

默认Promtail会导出Pod中的一些元数据,可以通过访问Promtail的web界面,获取可以拿到的原始标签

# 获取 promtail Pod的Pod IP地址
kubectl get po -A -o wide|grep promtail
# 输出
# loki               promtail-s2c2x                                                    1/1     Running            0                 23m     172.18.77.11     192.168.1.147   <none>           <none>
# loki               promtail-xl5np                                                    1/1     Running            0                 23m     172.18.168.173   192.168.1.146   <none>           <none>

# 获取当前节点的IP
ip a|grep inet|grep global|head 1
# 输出:inet 192.168.1.146/23 brd 192.168.1.255 scope global noprefixroute eth0

# 转发当前节点的某个端口的流量到promtail的Pod中,5431是监听端口,172.18.77.11是promtail Pod的IP地址,root是登录的用户身份,192.168.1.146是宿主机IP
ssh -fNg -L  5431:172.18.77.11:80 [email protected]

# 通过浏览器访问: http://192.168.1.146:5431

image

# 修改promtail的配置文件,保存在k8s的configmap中
# 先查询出对饮的comfigmap,找出configmap资源所在的名称空间与名字
kubectl get cm -A|grep promtail
# 输出: loki               promtail                               1      15d

# 编译该comfigmap
kubectl  edit cm -n loki               promtail

# 配置文件的是Yaml格式,配置在scrape_configs配置下的relabel_configs配置中
# 配置的每一个标签重写,是yaml格式中表示的数组,每一个元素是Yaml格式表示哈希表
# action 指定动作是什么,source_labels指定原始标签,来自于访问promtail web页面中列出的Pod的元数据标签,以 __meta_kubenerts_pod开头
# target_label指定重命名后标签的名称,若重命名多个标签,则需要指定分隔符 separator 字段去拼接原始标签对应的值
		  - action: replace
            source_labels:
              - __meta_kubernetes_pod_name
            target_label: pod
          - action: replace
            source_labels:
              - __meta_kubernetes_pod_ip
            target_label: pod_ip
          - action: replace
            source_labels:
              - __meta_kubernetes_pod_annotation_tenant
            target_label: tenant
          - action: replace
            source_labels:
              - __meta_kubernetes_pod_annotation_cluster
            target_label: cluster
          - action: replace
            source_labels:
              - __meta_kubernetes_pod_container_name
            target_label: container
          - action: replace
            replacement: /var/log/pods/*$1/*.log
            separator: /
            source_labels:
              - __meta_kubernetes_pod_uid
              - __meta_kubernetes_pod_container_name
            target_label: __path__
# 修改完成后重新启动Pod让应用生效
kubectl get po -A|grep promtail
# 输出:
#loki               promtail-s2c2x                                                    1/1     Running            0                  146m
#loki               promtail-xl5np                                                    1/1     Running            0                  146m

# 删除POd,会自动重建,需要指定Pod虽在名称空间与Pod名字
# 原理是:当k8s控制循环监控到定义的daemonset中资源期望状态与集群的状态不同,则新建对应的Pod完成一次调谐
kubectl delete po -n loki   promtail-s2c2x  promtail-xl5np

# 再次查询该Pod,会发现该Pod对应的Pod IP地址有可能发生了变化
kubectl get po -A -o wide|grep promtail
# 输出:
# loki               promtail-68z75                                                    1/1     Running            0                  24s     172.18.77.11     192.168.1.147   <none>           <none>
# loki               promtail-lsp6l                                                    1/1     Running            0                  34s     172.18.168.173   192.168.1.146   <none>           <none>

# 停止原来的转发进程
ss -lntup|grep 5431
# 输出:
#tcp    LISTEN     0      128       *:5431                  *:*                   users:(("ssh",pid=24429,fd=4))
#tcp    LISTEN     0      128      :::5431                 :::*                   users:(("ssh",pid=24429,fd=5))

# 指定进程的IP - pid 杀死进程
kill -9 24429

# 重新在当前节点建立转发,修改pod的IP地址为新的地址
ssh -fNg -L  5431:172.18.168.173:80 [email protected]

# 访问浏览器:http://192.168.1.146:5431

image

2. 解决问题的思路

  1. 应用的配置以yaml格式保存到configmap中,以供多个相同的应用实例使用,应用配置更新只需要更改一次,在所有相同的副本实例生效
  2. 每个应用都会有一个自定义yaml格式文本,需要理解其含义与值的范围,再按照规范进行修改,修改完成后检查其是否生效

标签:__,promtail,192.168,loki,Promtail,日志,k8s,Pod,pod
From: https://www.cnblogs.com/2bjiujiu/p/17985858

相关文章

  • 通过日志恢复MSSQL数据例子
        这段时间看了关于在SQLserver中通过日志和时间点来恢复数据。也看了一些网上的例子,看如何通过日志来恢复数据。    前提条件:数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项如果是简单模式:“完整”   测试环境:          1,建立数据......
  • k8s之dns问题
    问题1:描述:pod新建好后,无法ping通域名(无论是外网域名还是内网域名),但是可以ping通IP(包含外网IP和内网IP),不包括kube-dns的IP,和pod同一网段IP可以ping通#cat/etc/resolv.confsearchkube-system.svc.cluster.localsvc.cluster.localcluster.localnameserver10.96.0.1......
  • 配置日志文件达到一定大小自动压缩
    1工具的安装apt-getinstalllogrotate2修改配置文件在/etc/logrotate.d目录下创建一个新的logrotate的配置文件,touch myapp.conf在该配置文件中添加以下内容:/path/to/your/logfile{size10M#设置日志文件最大大小为10MBrotate5#保存5份日志文件comp......
  • K8s 常用操作备忘
    #查看pod日志kubectllogs-f--tail100admin-center-server-cbd975547-fjlhs-nprod#查看pod重启前的日志kubectllogs-f-p--tail100admin-center-server-cbd975547-fjlhs-nprod#进入pod中kubectlexec-it-nnginxcfhy-prod-front-7d4d58fd4d-pj9lg--bash......
  • 日志工具
    颜色和类别枚举:EnumLogMsgColorpublicenumEnumLogMsgColor{Red,Green,Blue,Orange,Black,}EnumLogMsgLevelpublicenumEnumLogMsgLevel{///<summary>///普通消息///</summary>[Description("[普通日志]")]......
  • k8s 镜像
    目录k8s镜像镜像名称更新镜像镜像拉取策略默认镜像拉取策略ImagePullBackOff使用私有仓库配置节点向私有仓库进行身份验证config.json说明提前拉取镜像在Pod上指定ImagePullSecrets使用DockerConfig创建Secret使用案例k8s镜像镜像名称容器镜像通常会被赋予pause、ex......
  • k8s系列-minikube操作应用之安装篇
    Minikube是一个轻量级的Kubernetes集群,专为本地开发和测试环境设计。Minikube由Kubernetes社区维护,支持macOS、Linux和Windows等多种操作系统平台。它使用Kubernetes的官方稳定版本,并提供了大部分功能,包括容器编排管理、负载均衡、Ingress以及权限控制等高级特性。......
  • k8s~istio的安装与核心组件
    安装istio在线安装:https://istio.io/latest/docs/setup/getting-started/#download或者直接在这里下载:https://github.com/istio/istio/releases/tag/1.20.2$curl-Lhttps://istio.io/downloadIstio|ISTIO_VERSION=1.20.2TARGET_ARCH=x86_64sh-$cdistio-1.20.2$e......
  • Linux计划任务与日志的管理
    1、什么是计划任务我们可以通过一些设置来让电脑定时提醒我们该做什么事了,或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下在我们LINUX中,我们可以通过cront......
  • Oracle12c 数据库 警告日志
    目录一:查看警告日志文件的位置二:警告日志内容三:告警日志监控:方案1:方案2:方案3: 正文 回到顶部一:查看警告日志文件的位置        Oracle12c环境下查询,alert日志并不在bdump目录下,看到网上和书上都写着可以通过初始化参数background_dump_dest来查看......