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以及组织权限就可以 使用自定义用户进行查看日志了.