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的数据源.

  • 数据源的位置

  • 添加loki的相关信息

  • 注意 k8s内部直接属于 svc的名字既可以访问

  • 相关查询服务的信息语句为:
[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 或者是后来添加的管理员权限进行处理.

  • 注意 可以点击log browser 选择需要查看的日志信息

  • 可以选中具体的一个pod 然后查看相应的日志, 注意需要选择使用 show log

3.2.3 过滤日志范围等操作

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

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

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

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

K8S 使用loki 监控 应用日志的搭建办法的更多相关文章

  1. 从零开始入门 K8s | 可观测性:监控与日志

    作者 | 莫源  阿里巴巴技术专家 一.背景 监控和日志是大型分布式系统的重要基础设施,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断. 在 Kubernetes 中,监控和日志 ...

  2. .NET Core + K8S + Loki 玩转日志聚合

    1. Intro 最近在了解日志聚合系统,正好前几天看到一篇文章<用了日志系统新贵Loki,ELK突然不香了!>,所以就决定动手体验一下.本文就带大家快速了解下Loki,并简单介绍.NET ...

  3. MS SQL 监控错误日志的告警信息

    SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有16(SQL ...

  4. SQL Server中的事务日志管理(9/9):监控事务日志

    当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...

  5. 2. SQL Server数据库状态监控 - 错误日志

    原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...

  6. rsyslog+mariadb+loganalyzer实现日志服务器搭建

    rsyslog+mariadb+loganalyzer实现日志服务器搭建 一.概述 Linux的日志记录了用户在系统上一切操作,包括系统自身运作产生的日志,这些日志是应使用者了解服务器的情况最好的资料 ...

  7. idou老师教你学Istio :如何用istio实现监控和日志采集

    大家都知道istio可以帮助我们实现灰度发布.流量监控.流量治理等功能.每一个功能都帮助我们在不同场景中实现不同的业务.那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinf ...

  8. flume学习以及ganglia(若是要监控hive日志,hive存放在/tmp/hadoop/hive.log里,只要运行过hive就会有)

    python3.6hdfs的使用 https://blog.csdn.net/qq_29863961/article/details/80291654 https://pypi.org/  官网直接搜 ...

  9. 基于k8s的promethus监控

    没有监控 就没有眼睛. 除了k8s的基本监控外(pod运行状况.占用内存.cpu).为了对微服务项目中的(1)各种参数线程池.QPS.RT.业务指标(2)系统负载.thread.mem.class.t ...

  10. ELK分布式日志收集搭建和使用

    大型系统分布式日志采集系统ELK全框架 SpringBootSecurity1.传统系统日志收集的问题2.Logstash操作工作原理3.分布式日志收集ELK原理4.Elasticsearch+Log ...

随机推荐

  1. 云图说 | 华为云医疗智能体,智联大健康,AI药物研发

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:华为云医疗智能体面 ...

  2. 万字保姆级长文——Linkedin元数据管理平台Datahub离线安装指南

    ​ 元数据管理平台Datahub最近的热度越来越高.已经更新到了0.8.40的版本,来咨询我的小伙伴也越来越多,特别是安装过程有很多问题. ​ 考虑到有些企业部分数据服务是部署在内网的,那么离线安装D ...

  3. Python | 解放双手,用Python实现自动发送邮件

    解放双手,用Python实现自动发送邮件 使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间. Python有两个内置库:smtplib和email,能够实现邮件功能, ...

  4. OpenSCA技术原理之npm依赖解析

    本文主要介绍基于npm包管理器的组件成分解析原理. npm 介绍 npm(全称Node Package Manager)是Node.js的预设软件包管理器. npm的依赖管理文件是package.js ...

  5. 云原生 Serverless Database 使用体验

    作者 | 李欣 近十年来互联网技术得到了飞速的发展,越来越多的行业加入到了互联网的矩阵,由此带来了更为丰富且复杂的业务场景需求,这对于数据应用系统的性能无疑是巨大的挑战.​ 关系型数据库 MySQL ...

  6. uni-app 预览pdf文件

    安卓uni-app实现pdf文件预览功能: 1.https://mozilla.github.io/pdf.js/getting_started/#download下载 放在根目录下, 2.新建一个w ...

  7. 请问Sass/SCSS(with node-sass)和Sass/SCSS(with dart-sass)选哪个?

    node-sass是自动编译实时的,dart-sass需要保存后才会生效. 如果您在Dart-VM内运行Dart-Sass,它的运行速度很快,但它表示可以编译为纯JS,dart-sass只是一个编译版 ...

  8. 扒一扒ProcessOn 新功能——一键编号、图形组合、左侧导航、画布水印、表格组件

    思维导图.一键编号 思维导图新增 多种全新主题风格,让您的创作赏心悦目 思维导图新增 一键编号 功能 流程图.图形组合 自定义组合图形功能:新增流程图 我的图形 功能,用户可以设置或者上传自己的图形 ...

  9. KVM 管理工具:libvirt

    libvirt 简介 libvirt 是目前使用最为广泛的对 KVM 虚拟机进行管理的工具和应用程序接口.  

  10. Feign源码解析7:nacos loadbalancer不支持静态ip的负载均衡

    背景 在feign中,一般是通过eureka.nacos等获取服务实例,但有时候调用一些服务时,人家给的是ip或域名,我们这时候还能用Feign这一套吗? 可以的. 有两种方式,一种是直接指定url: ...