容器监控
监控方案
主要分三个层次对应用进行监控。
- 主机资源监控和应用监控
- k8s集群监控
- 日志监控
主机资源监控和应用监控
主机资源主要通过zabbix进行监控报警。
-
使用zabbix自带监控模板监控服务器主机基本性能指标情况
模板地址 -
使用脚本探测方式添加对容器应用和非容器应用的健康状态监控和报警
例:
(1)端口探测net.tcp.listen[873]
(2)写python或shell自定义脚本spark.job[sparkConsumerLevel2]
zabbix客户端添加UserParameter=spark.job[*],/bin/python /usr/share/zabbix/check_spark.py $1
k8s集群监控
-
指标数据收集工具:kube-state-metrics(主要针对k8s中的一些概念进行监控,deploy、ds、rs等)、cadvisor(主要监控容器的资源使用率(单个pod),会使dockerd产生大量无用日志,有时会使cpu负载增高,可适当减少监控项、调整收集时间间隔)、telegraf(类似cadvisor,性能未比较过)等
(cadvisor界面)
-
数据存储工具:prometheus(使用较多,和alertmanager一起使用,可自定义邮件报警格式)、influxdb、graphite等
-
展示工具:grafana(展示界面丰富,可找到相关模板,支持邮件报警)等
-
容器健康探测:sidecar、业务接口等
使用readinessProbe和livenessProbe探针对容器业务是否正常进行简单的监控
readinessProbe:
httpGet:
path: /test
port: 8080
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 15
timeoutSeconds: 10
日志监控
日志系统大致架构如下:
日志收集后,可通过kibana设置watcher,实现日志告警