专栏名称: 院长技术
《院长技术》专注于DevOps技术栈研究,云原生、Istio,CICD、Docker、Prometheus、K8s、ServiceMesh、Jenkins、Linux、微服务、分布式存储、监控、日志收集、安全渗透、虚拟化等技术栈。
目录
相关文章推荐
卤猫  ·  夜晚跳舞的水仙个展见面会 ·  昨天  
长沙县行政执法局  ·  40天坚守,护平安归途!2025年春运执法保 ... ·  2 天前  
长沙县行政执法局  ·  40天坚守,护平安归途!2025年春运执法保 ... ·  2 天前  
51好读  ›  专栏  ›  院长技术

完善生产版:使用Shell脚本对K8s集群的服务进行日志查询提取

院长技术  · 公众号  ·  · 2024-11-06 23:43

正文

服务获取通过标签: app= $

自己改为实际情况的标签

代码如下:

#!/bin/bash
read -p "请输入服务名: " SERVICE_NAMESERVICE_NAME=$SERVICE_NAME
read -p "请输入命名空间: " NAMESPACENAMESPACE=$NAMESPACE

# 提示用户输入选项 echo '''1. 全部 2. 指定小时3. 开始时间''' # 读取用户输入 read -p "请输入编号: " choice # 根据用户输入执行相应的操作 case $choice in 1) # 获取Pod列表 PODS=$(kubectl get pods -n $NAMESPACE -l app=$SERVICE_NAME -o jsonpath='{.items[*].metadata.name}')
if [ -z "$PODS" ]; then echo "在【$NAMESPACE】命名空间下没有找到服务为:【$SERVICE_NAME】,可用的Pod" exit 1 fi
# 遍历每个Pod并获取日志 for POD in $PODS; do echo "开始获取Pod日志 $POD" kubectl logs -n $NAMESPACE $POD --tail=-1 >/tmp/$POD.logs echo "----- 获取Pod日志结束 $POD -----" echo "" # 空行分隔不同Pod的日志 done ;; 2) read -p "请输入取几个小时前的日志: " TimeHour # 获取Pod列表 PODS=$(kubectl get pods -n $NAMESPACE -l app=$SERVICE_NAME -o jsonpath='{.items[*].metadata.name}')
if [ -z "$PODS" ]; then echo "在【$NAMESPACE】命名空间下没有找到服务为:【$SERVICE_NAME】,可用的Pod" exit 1 fi
# 遍历每个Pod并获取日志 for POD in $PODS; do echo "开始获取Pod日志 $POD" kubectl logs -n $NAMESPACE $POD --since=${TimeHour}h >/tmp/$POD.logs echo "----- 获取Pod日志结束 $POD -----" echo "" # 空行分隔不同Pod的日志 done ;; 3) echo "开始时间:'2024-11-05T00:00:00Z'" read -p "请输入开始时间: " START_TIME # 获取Pod列表 PODS=$(kubectl get pods -n $NAMESPACE -l app=$SERVICE_NAME -o jsonpath='{.items[*].metadata.name}')
if [ -z "$PODS" ]; then echo "在【$NAMESPACE】命名空间下没有找到服务为:【$SERVICE_NAME】,可用的Pod" exit 1 fi
# 遍历每个Pod并获取日志 for POD in $PODS; do echo "开始获取Pod日志 $POD" kubectl logs -n $NAMESPACE $POD --since-time=$START_TIME >/tmp/$POD.logs echo "----- 获取Pod日志结束 $POD -----" echo "" # 空行分隔不同Pod的日志 done ;;
*) echo "无效的选项,程序退出!!!" exit 1 ;; esac echo "查询日志程序执行完毕。"

执行效果:

[root@k8s-master tmp]# sh Q.sh 请输入服务名:  myapp请输入命名空间:  myapp-uat
1. 全部 2. 指定小时3. 开始时间
请输入编号: 1开始获取Pod日志 myapp-6d7f8d4459-862xs----- 获取Pod日志结束 myapp-6d7f8d4459-862xs -----
开始获取Pod日志 myapp-6d7f8d4459-blkr7----- 获取Pod日志结束 myapp-6d7f8d4459-blkr7 -----
开始获取Pod日志 myapp-6d7f8d4459-hv4gw----- 获取Pod日志结束 myapp-6d7f8d4459-hv4gw -----
查询日志程序执行完毕。

脚本比较简陋,生产临时用,大佬可以拿着美化,加一些其他功能~

招贤纳士

欢迎👏关注《院长技术》,只做原创,干货~~~

更多技术干货持续输出中......


【院长技术创始记录】

在互联网的浩瀚星空中,有一颗独特的星辰,它以“院长技术”为名,照亮了运维开发与技术创新的新航道。这颗星辰的创始人,便是一位自号“院长”的男生,他不仅在技术的海洋里游刃有余,更以一颗不断探索与创新的心,引领着团队破浪前行。

院长,本名虽隐于幕后,但他的技术热情与卓越才能却如同璀璨星光,无法被忽视。自幼对技术充满好奇的他,随着年岁的增长,这份热爱逐渐转化为对运维开发领域的深入钻研。在无数个日夜的编码与调试中,院长不仅积累了丰富的实战经验,更形成了自己独特的技术视角与解决之道。

2017年,一个怀揣梦想与激情的时刻,院长决定创立“院长技术”这一品牌,旨在汇聚志同道合的技术人才,共同探索运维开发的新边界。他相信,技术的力量能够改变世界,而一个优秀的团队则是实现这一愿景的基石。于是,他凭借自己在业界的良好口碑与深厚的技术底蕴,吸引了众多同样热爱技术、追求卓越的伙伴加入。

“院长技术”自诞生之日起,便秉持着开放、共享、创新的理念,致力于打造一个集技术研发、知识分享、项目实践于一体的综合性技术平台。在这里,每一位成员都能找到属于自己的舞台,无论是深入研究底层技术原理,还是探索前沿技术应用,都能得到充分的支持与鼓励。

院长作为团队的灵魂人物,更是以身作则,不断挑战技术极限,带领团队攻克了一个又一个技术难题。他不仅是一位技术大师,更是一位智慧的导师,善于激发团队成员的潜能,引导他们共同成长。在他的带领下,“院长技术”迅速成长为业界知名的技术品牌,其影响力逐渐跨越国界,吸引了全球技术爱好者的关注与参与。

如今,“院长技术”已成为运维开发领域的一面旗帜,它不仅代表着技术创新的高度,更象征着对技术梦想的执着追求。而这一切的起点,正是那位自号“院长”的男生,以一颗热爱技术的心,书写下的这段创始记录。未来,“院长技术”将继续在院长的引领下,向着更加辉煌的明天进发,用技术的力量,点亮更多人的梦想之光。




知识星球,试运营中,

原价188¥在不断上涨, 现加入仅需139¥ ,文档正逐渐上传!

欢迎加入 QQ-4 群:【

1群-2群-3群已满







请到「今天看啥」查看全文