文章目录
目录
参考
https://help.aliyun.com/document_detail/86552.html?spm=a2c4g.11186623.6.819.db321cb0CDGl4W
版本
Kubernetes版本: 1.16.9-aliyun.1
Elasticsearch版本: 6.8.12
Kibana: 6.8.12
Log-pilot: 0.9.6-filebeat
前提条件
已经拥有一个 kubernetes 集群, 并且创建命名空间 elk
相关技术
- Elasticsearch
- Kibana
- Log-pilot
部署 elasticsearch
kubectl apply -f http://qiniuyun.eddilee.cn/elasticsearch.yaml
部署 log-pilot
日志采集工具
kubectl apply -f http://qiniuyun.eddilee.cn/log-pilot.yaml
TIPS
Log-pilot 修改filebeat.tpl文件,日志多行日志输出修改.
1、进入pod
2、修改文件
vi /pilot/filebeat.tpl
...
- {{ .HostDir }}/{{ .File }} # 追加下面的
multiline.pattern: '^\s*(\d{4}|\d{2})\-(\d{2}|[a-zA-Z]{3})\-(\d{2}|\d{4})'
multiline.negate: true
multiline.match: after
multiline.max_lines: 10000
multiline.timeout: 15s
scan_frequency: 10s # 追加上面的
...
之后可以自己构建docker镜像,本章没有构建这部分,读者手动吧!
部署 kibana
UI页面操作
kubectl apply -f http://qiniuyun.eddilee.cn/kibana.yaml
使用Dockfile构建测试镜像
FROM registry.cn-shenzhen.aliyuncs.com/open-image/centos7_jdk8_maven:v1.0
MAINTAINER eddie.lee
VOLUME /tmp
ADD ./target/eddie.jar /api.jar
#EXPOSE 8080
ENTRYPOINT ["sh" , "/exec.sh", "restart"]
TIPS 若用 nohup java jar api.jat >> /var/log/api.log 2>&1 & 在Dockerfile标准输出不成功
建立测试Pod
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: java-eddie-prod
spec:
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
selector:
matchLabels:
app: java-eddie-prod
replicas: 3
template:
metadata:
labels:
app: java-eddie-prod
spec:
containers:
- name: java-eddie-prod
image: ${ORIGIN_REPO}/${REPO}:${IMAGE_TAG}
imagePullPolicy: Always
ports:
- containerPort: 8080
resources:
requests:
memory: 1024Mi
limits:
memory: 2048Mi
env:
- name: aliyun_logs_catalina
value: "stdout"
- name: aliyun_logs_prod-eddie-roll
value: "/var/log/*.log"
volumeMounts:
- mountPath: /var/log/
name: java-eddie-prod
volumes:
- name: java-eddie-prod
emptyDir: {}
elasticsearch 自动创建索引
- aliyun_logs_catalina=stdout表示要收集容器的 stdout 日志
- aliyun_logs_prod-eddie-roll="/var/log/.log"表示要收集容器内"/var/log/"目录下所有名字匹配.log的文件日志
调式
进入ES容器查看
[root@eddie logs]# kubectl exec -it elasticsearch-1 bash -n elk
[root@elasticsearch-1 elasticsearch]# curl 'localhost:9200/_cat/indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open prod-eddie-roll-2020.09.03 _xRmIw0kSyqPQZ0KKP2YNA 5 1 16404 0 13.1mb 6.5mb
green open .kibana_task_manager 5H0qXxNDTvmaq3ulakyP8w 1 1 2 0 19.3kb 12.5kb
green open .kibana_1 iDBJgUgYRzyGJhUr31goyw 1 1 11 2 73.1kb 36.5kb
登录 Kibana
- kibana.eddilee.cn
1、查看索引是否与ES容器建立的一致
2、创建 index pattern
3、点击左边按钮“Discover” 即刻查看日志
结束
感谢观看,文章始于原创,转载请备注作者 eddie.lee 与博客连接。