小阿轩yx-案例:Zabbix监控kubernetes云原生环境
前言
传统监控的本质
- 就是收集、分析和使用信息来观察一段时间内监控对象的运行进度,并且进行相应的决策管理的过程,监控侧重于观察特定指标。
随着云原生时代的到来
- 我们对监控的功能提出了更多的要求,要实现这些功能,就要实现的云原生的“可观测性”。
- 可观测性是云原生时代必须具备的能力。
目前,“可观测性” 逐渐取代 “监控”,成为云原生技术领域最热门的话题之一。
Zabbix 新版本功能介绍
zabbix 新功能
- 是一个基于 web 界面的分布式系统监控的企业级开源软件。
- 可以监视各种系统与设备的参数,保障服务器及设备的安全运营。
Zabbix 6.0 LTS
- 新增 Kubernetes 监控功能,可以在 Kubernetes 系统从多个维度采集指标。
zabbix 特点
- 安装与配置简单。
- 可视化 web 管理界面。
- 免费开源。
- 支持中文。
- 自动发现。
- 分布式监控。
- 实时绘图。
zabbix 的主要功能
硬件监控
- 如交换机、路由器、打印机等。
系统监控
- 如 CPU、内存,磁盘。硬盘 IO,系统负载等。
服务监控
- 如 apache、nginx、tomcat、redis、TCP 连接数等。
性能监控
- 如网站性能,服务器性能,数据库性能。
日志监控
- 如访问日志,错误日志。
安全监控
- 如用户登录数,本地文件改动,passwd 文件变化。
网络监控
- 如端口,SMTP,网络使用率,网络入流量,网络出流量。
kubernetes 集群及组件监控模板
新版本的 zabbix 中
- 提供了专门针对 kubernetes 原生架构的监控模板,用户可以直接使用这些模板对 kubernetes 的原生组件进行监控。
模板名称 | 备注 |
Kubernetes API server by HTTP | K8S ApiServer 组件指标模板 |
Kubernetes cluster state by HTTP | k8S 集群指标模板 |
Kubernetes controller manager by HTTP | K8S ControllerManager 组件指标模板 |
Kubernetes kubelet by HTTP | K8S Kubelet 组件指标模板 |
Kubernetes nodes by HTTP | K8S 集群节点发现以及状态指标模板 |
Kubernetes scheduler by HTTP | K8S Scheduler 组件指标模板 |
K8S 节点基础信息指标模板
- 对 kubernetes 的主机进行监控的时候,仍然可以使用 Linux by zabbix agent 模板对集群中的各个主机进行晚上的监控。
模板名称 | 备注 |
Linux by Zabbix agent | OS Linux 系统监控模板 |
监控指标
- 云原生环境中,需要监控的指标很多
监控名称 | 监控对象 |
节点基础信息 | CPU、内存,磁盘 ,IO ,网络,system info等 |
集群指标 [组件] | Api Server 、controllerManage、SchedulerServer,、kubelet等 |
资源对象指标 | Daemonset、Deployment、Replicaset,Endpoint,Pod等 |
Pod 容器指标 | Container:Menory max usage,Pod CpU:User seconds等 |
Agentless
- 通过 Zabbix 内置的 “HTTP agent”,“Script” 两种类型的监控项,无需安装客户端,通过访问被监控端的 API 接口即可采集监控指标数据,主要用于K8S 集群、服务组件、pod 容器状态及性能指标的采集。
项目环境
设备列表
主机 | IP |
k8s-master | 192.168.10.101 |
k8s-node01 | 192.168.10.102 |
k8s-node02(zabbix server) | 192.168.10.103 |
mariadb-10、NFS | 192.168.10.108 |
案例拓扑图
数据库配置
关闭防火墙、内核机制(在108主机上)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/selinux
##修改为永久关闭
SELINUX=disabled
将 mysql-8.0.31-linux 的源码包通过 Xftp 上传至主机108
用 bash 快速部署 mysql
[root@localhost ~]# bash mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
NFS 配置
开启会话同步(101、102、103)
创建 NFS 存储目录
[root@k8s-master ~]# mkdir -p /nfs
[root@k8s-node01 ~]# mkdir -p /nfs
[root@k8s-node02 ~]# mkdir -p /nfs
安装 nfs 服务