kubernetes集群搭建Zabbix监控平台的详细过程

目录
  • 一、zabbix介绍
    • 1.zabbix简介
    • 2.zabbix特点
    • 3.zabbix的主要功能
    • 4.zabbix架构图
  • 二、检查本地k8s环境
    • 1.检查系统pod运行状态
    • 2.检查node节点状态
  • 三、配置nfs共享存储
    • 1.安装nfs
    • 2.创建共享目录
    • 3.配置共享目录
    • 4.启动相关服务
    • 5.使配置生效
    • 6.查看nfs
    • 7.其他节点检查nfs共享
  • 四、安装zabbix-mysql
    • 1.编写zabbix-mysql的yaml文件
    • 2.创建命名空间
    • 3.创建zabbix数据库
    • 4.检查pod状态
  • 五、检查zabbix数据库的service域名
    • 1.运行测试pod
    • 2.进入busybox的pod
    • 3.查看域名解析
  • 六、安装zabbix-server
    • 1.编写zabbix_server.yaml文件
    • 2.给node02节点打上标签
    • 3.安装zabbix-server
    • 4.检查pod状态
  • 七、部署zabbix-web
    • 1.编写zabbix_web.yaml文件
    • 2.安装zabbix-web
    • 3.查看pod状态
  • 八、部署zabbix-agent
    • 1.编辑zabbix_agent.yaml
    • 2.安装zabbix-agent
    • 3.查看pod状态
  • 九、访问zabbix的web
    • 1.查看svc
    • 2.登录web
    • 3.登录zabbix
    • 4.查询zabbix-server的监控项图表

一、zabbix介绍

1.zabbix简介

Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。

2.zabbix特点

(1)安装与配置简单。
(2)可视化web管理界面。
(3)免费开源。
(4)支持中文。
(5)自动发现。
(6)分布式监控。
(7)实时绘图。

3.zabbix的主要功能

1.硬件监控。如交换机、路由器、打印机等。
2.系统监控。如CPU,内存,磁盘。硬盘IO,系统负载等。
3.服务监控。如apache,nginx,tomcat,redis,TCP连接数等。
4.性能监控。如网站性能,服务器性能,数据库性能。
5.日志监控。如访问日志,错误日志。
6.安全监控。如用户登录数,本地文件改动,passwd文件变化。
7.网络监控。如端口,SMTP,网络使用率,网络入流量,网络出流量。

4.zabbix架构图

二、检查本地k8s环境

1.检查系统pod运行状态

[root@k8s-master ~]# kubectl get pods -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
kube-system   calico-kube-controllers-7bc6547ffb-2nf66   1/1     Running   1 (9m28s ago)   2d16h
kube-system   calico-node-8c4pn                          1/1     Running   1 (9m16s ago)   2d16h
kube-system   calico-node-f28qq                          1/1     Running   1 (9m10s ago)   2d16h
kube-system   calico-node-wmc2j                          1/1     Running   1 (9m29s ago)   2d16h
kube-system   coredns-6d8c4cb4d-6gm4x                    1/1     Running   1 (9m28s ago)   2d16h
kube-system   coredns-6d8c4cb4d-7vxlz                    1/1     Running   1 (9m29s ago)   2d16h
kube-system   etcd-k8s-master                            1/1     Running   1 (9m30s ago)   2d16h
kube-system   kube-apiserver-k8s-master                  1/1     Running   1 (9m29s ago)   2d16h
kube-system   kube-controller-manager-k8s-master         1/1     Running   1 (9m30s ago)   2d16h
kube-system   kube-proxy-8dfw8                           1/1     Running   1 (9m29s ago)   2d16h
kube-system   kube-proxy-ghzrv                           1/1     Running   1 (9m9s ago)    2d16h
kube-system   kube-proxy-j867z                           1/1     Running   1 (9m15s ago)   2d16h
kube-system   kube-scheduler-k8s-master                  1/1     Running   1 (9m28s ago)   2d16h

2.检查node节点状态

[root@k8s-master ~]# kubectl get nodes -owide
NAME         STATUS   ROLES                  AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
k8s-master   Ready    control-plane,master   2d16h   v1.23.1   192.168.3.201   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   containerd://1.6.6
k8s-node01   Ready    <none>                 2d16h   v1.23.1   192.168.3.202   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   containerd://1.6.6
k8s-node02   Ready    <none>                 2d16h   v1.23.1   192.168.3.203   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   containerd://1.6.6

三、配置nfs共享存储

1.安装nfs

 yum install -y nfs-utils

2.创建共享目录

mkdir -p /nfs/data

3.配置共享目录

echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports

4.启动相关服务

systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind

5.使配置生效

exportfs -r

6.查看nfs

[root@k8s-master ~]# exportfs
/nfs/data     	<world>

7.其他节点检查nfs共享

[root@k8s-node01 ~]#  showmount -e 192.168.3.201
Export list for 192.168.3.201:
/nfs/data *

四、安装zabbix-mysql

1.编写zabbix-mysql的yaml文件

[root@k8s-master zabbix]# cat zabbix_mysql.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: zabbixdb-pv
spec:
  capacity:   #创建存储的大小
    storage: 10Gi
  volumeMode: Filesystem  #存储的类型
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /nfs/data/zabbix
    server: 192.168.3.201
  mountOptions:
    - hard
    - nfsvers=4.1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: zabbixdb-pvc
  namespace: zabbix
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem   #存储类型 ,块存储Block
  resources:
    requests:
      storage: 8Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: zabbixdb
  name: zabbixdb
  namespace: zabbix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zabbixdb
  strategy: {}
  template:
    metadata:
      labels:
        app: zabbixdb
    spec:
      volumes:
      - name: zabbixdb-data
        persistentVolumeClaim:
          claimName: zabbixdb-pvc
      containers:
      - image: mysql:8.0
        name: mysql
        ports:
        - name: mysql
          containerPort: 3306
          protocol: TCP
        volumeMounts:
        - name: zabbixdb-data
          mountPath: /var/lib/mysql
        env:
        - name: MYSQL_DATABASE
          value: 'zabbix'
        - name: MYSQL_USER
          value: 'zabbix'
        - name: MYSQL_PASSWORD
          value: 'zabbix'
        - name: MYSQL_ROOT_PASSWORD
          value: 'zabbix'
        resources:
          requests:
             cpu: 0.1
             memory: 128Mi
          limits:
             cpu: 0.3
             memory:  512Mi
---

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: zabbixdb
  name: zabbixdb
  namespace: zabbix
spec:
  clusterIP: 10.96.1.99
  ports:
  - name: 3306-3306
    port: 3306
    protocol: TCP
    targetPort: 3306
  selector:
    app: zabbixdb
  type: ClusterIP
status:
  loadBalancer: {}

2.创建命名空间

[root@k8s-master zabbix]# kubectl create namespace zabbix
namespace/zabbix created

3.创建zabbix数据库

kubectl apply -f zabbix_mysql.yaml

4.检查pod状态

[root@k8s-master zabbix]# kubectl get pods -n zabbix
NAME                        READY   STATUS    RESTARTS   AGE
zabbixdb-69b7cd8dff-jnpjd   1/1     Running   0          11m

五、检查zabbix数据库的service域名

1.运行测试pod

[root@k8s-master ~]# kubectl run busybox --image=busybox:1.28 -- sleep 3600
pod/busybox created

2.进入busybox的pod

[root@k8s-master ~]# kubectl exec -it busybox -- /bin/sh
/ # 

3.查看域名解析

[root@k8s-master ~]# kubectl exec -it busybox -- /bin/sh
/ # nslookup zabbixdb.zabbix.svc.cluster.local
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      zabbixdb.zabbix.svc.cluster.local
Address 1: 10.96.1.99 zabbixdb.zabbix.svc.cluster.local
/ # 

六、安装zabbix-server

1.编写zabbix_server.yaml文件

[root@k8s-master zabbix]# cat zabbix_server.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: zabbix-server
  name: zabbix-server
  namespace: zabbix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zabbix-server
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: zabbix-server
    spec:
      volumes:
      - name: zabbix-scripts
        hostPath:
          path: /usr/lib/zabbix/
      - name: zabbix-file
        hostPath:
          path: /var/lib/zabbix
      nodeSelector:
        zabbix-server: "true"
      hostNetwork: true
      containers:
      - image: zabbix/zabbix-server-mysql:6.0-ubuntu-latest
        name: zabbix-server-mysql
        env:
        - name: DB_SERVER_HOST
          value:  10.96.1.99
        - name: MYSQL_USER
          value: zabbix
        - name: MYSQL_PASSWORD
          value: zabbix
        resources: {}
status: {}

2.给node02节点打上标签

[root@k8s-master zabbix]# kubectl label nodes k8s-node02  zabbix-server=true
node/k8s-node02 labeled

3.安装zabbix-server

[root@k8s-master zabbix]# kubectl apply -f zabbix_server.yaml
deployment.apps/zabbix-server created

4.检查pod状态

[root@k8s-master zabbix]# kubectl get pods -n zabbix
NAME                             READY   STATUS    RESTARTS   AGE
zabbix-server-5f48d9d57d-rkr5p   1/1     Running   0          66s
zabbixdb-69b7cd8dff-krt2w        1/1     Running   0          4m22s

七、部署zabbix-web

1.编写zabbix_web.yaml文件

[root@k8s-master zabbix]# cat zabbix_web.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: zabbix-web
  name: zabbix-web
  namespace: zabbix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zabbix-web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: zabbix-web
    spec:
      containers:
      - image: zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
        name: zabbix-web-nginx-mysql
        env:
        - name: DB_SERVER_HOST
          value: zabbixdb.zabbix.svc.cluster.local
        - name: MYSQL_USER
          value: zabbix
        - name: MYSQL_PASSWORD
          value: zabbix
        - name: ZBX_SERVER_HOST
          value: 192.168.3.201
        - name: PHP_TZ
          value: Asia/shanghai
        resources: {}
status: {}
---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: zabbix-web
  name: zabbix-web
  namespace: zabbix
spec:
  ports:
  - name: 8080-8080
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app: zabbix-web
  type: NodePort
status:
  loadBalancer: {}

2.安装zabbix-web

[root@k8s-master zabbix]# kubectl apply -f zabbix_web.yaml
deployment.apps/zabbix-web created
service/zabbix-web created

3.查看pod状态

[root@k8s-master zabbix]# kubectl get pods -n zabbix
NAME                             READY   STATUS    RESTARTS   AGE
zabbix-server-5f48d9d57d-rkr5p   1/1     Running   0          2m36s
zabbix-web-55cd66f74f-9f284      1/1     Running   0          18s
zabbixdb-69b7cd8dff-krt2w        1/1     Running   0          5m52s

八、部署zabbix-agent

1.编辑zabbix_agent.yaml

[root@k8s-master zabbix]# cat zabbix_agent.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: zabbix-agent
  name: zabbix-agent
  namespace: zabbix
spec:
  selector:
    matchLabels:
      app: zabbix-agent
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: zabbix-agent
    spec:
      hostNetwork: true
      containers:
      - image: zabbix/zabbix-agent:6.0-ubuntu-latest
        name: zabbix-agent
        env:
        - name: ZBX_SERVER_HOST
          value: 192.168.3.201
        resources: {}

2.安装zabbix-agent

 kubectl apply -f zabbix_agent.yaml

3.查看pod状态

[root@k8s-master zabbix]# kubectl get pods -n zabbix
NAME                             READY   STATUS    RESTARTS   AGE
zabbix-agent-h2qwf               1/1     Running   0          3s
zabbix-agent-plnbd               1/1     Running   0          3s
zabbix-server-5f48d9d57d-rkr5p   1/1     Running   0          3m2s
zabbix-web-55cd66f74f-9f284      1/1     Running   0          44s
zabbixdb-69b7cd8dff-krt2w        1/1     Running   0          6m18s

九、访问zabbix的web

1.查看svc

[root@k8s-master zabbix]#  kubectl get svc -n zabbix
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
zabbix-web   NodePort    10.100.50.7   <none>        8080:30775/TCP   59s
zabbixdb     ClusterIP   10.96.1.99    <none>        3306/TCP         6m33s

2.登录web

http://192.168.3.202:30775

3.登录zabbix

初始账号admin/zabbix

4.查询zabbix-server的监控项图表

到此这篇关于kubernetes集群搭建Zabbix监控平台的文章就介绍到这了,更多相关kubernetes集群搭建Zabbix监控内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • kubernetes存储之GlusterFS集群详解

    目录 1.glusterfs概述 1.1.glusterfs简介 1.2.glusterfs特点 1.3.glusterfs卷的模式 2.heketi概述 3.部署heketi+glusterfs 3.1.准备工作 3.1.1.所有节点安装glusterfs客户端 3.1.2.节点打标签 3.1.3.所有节点加载对应模块 3.2.创建glusterfs集群 3.2.1.下载相关安装文件 3.2.2.创建集群 3.2.3.查看gfs pods 3.3.创建heketi服务 3.3.1.创建heke

  • Kubernetes集群的组成介绍

    Kubernetes集群的组成 我们谈起 Kubernetes 和应用部署时,往往会涉及到容器.节点.Pods 等概念,还有各种术语,令人眼花缭乱.为了更好地摸清 Kubernetes,下面我们将介绍 Kubernetes 中与应用程序部署(deployment)和执行(execution)相关的知识. Kubernetes 集群由多个组件(components).硬件(hardware).软件(software)组成,它们共同工作来管理容器化(containerized)应用的部署和执行,这些

  • zabbix 监控mysql的方法

    zabbix部署文档 zabbix部署完之后 zabbix-agent操作  1.监控mysql,首先要先安装mysql [root@localhost ~]# yum -y install mariadb mariadb-server 2.编写mysql监控项的脚本 在zabbix-agent先授权个用户 不然测试时没有权限 [root@localhost ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g.

  • Minikube搭建Kubernetes集群

    Minikube 打开 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下载最新版本的二进制软件包(deb.rpm包),再使用 apt 或 yum 安装. 或者直接下载 minikube 最新版本二进制文件(推荐). curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.19.0/minikube-linu

  • Kubernetes集群环境初始化

    概念 k8s/kubernetes容器化部署解决容器编排问题,kubernetes为容器编排软件的佼佼者kubernets为一组服务器集群 功能 自我修复 一个容器崩溃,另一个容器起来弹性伸缩 根据需要调整容器数量服务发现 自动发现的形式找到所需依赖负载均衡 一起分担流量版本回退 新版本有问题,立马回退到原来的版本存储编排 可以根据容器自身的需求自动创建存储卷.... k8s组件 k8s为控制节点 和 工作节点组成.master节点的组件负责集群的管理ApiServer:资源操作的唯一路口 接受

  • kubernetes集群搭建Zabbix监控平台的详细过程

    目录 一.zabbix介绍 1.zabbix简介 2.zabbix特点 3.zabbix的主要功能 4.zabbix架构图 二.检查本地k8s环境 1.检查系统pod运行状态 2.检查node节点状态 三.配置nfs共享存储 1.安装nfs 2.创建共享目录 3.配置共享目录 4.启动相关服务 5.使配置生效 6.查看nfs 7.其他节点检查nfs共享 四.安装zabbix-mysql 1.编写zabbix-mysql的yaml文件 2.创建命名空间 3.创建zabbix数据库 4.检查pod状

  • zabbix集群搭建分布式监控的操作步骤

    目录 作用: 环境准备: 操作步骤: 1.关闭某些设置 2.server服务端无需变动,继续运行 3.配置代理服务器 4. 启动数据库 5. 进入数据库 6. 创建数据表 7. 授予所有的权限 8. 刷新mysql权限 9. 导入zabbix_proxy数据库信息 10. 查看数据是否成功导入,看到有很有数据表即为成功 11. 修改zabbix-proxy配置文件,链接数据库的信息 12. 检查代理服务器配置文件 13. 重启服务器 14. 启动代理服务器 设置开机自启 zabbix-serve

  • VirtualBox+Ubuntu16搭建Kubernetes集群的实现

    Kubernetes 运维之路 的开始当然少不了集群环境的搭建,这篇文章记录了我在一台机器使用 VirtualBox + Ubuntu 16 搭建 Kubernetes 的整个过程,包括其中遇到的一些问题以及解决办法. 关于 Kubernetes 下面是一段来自维基百科的关于 Kubernetes 的解释: Kubernetes(常简称为 K8s)是用于自动部署.扩展和管理「容器化(containerized)应用程序」的开源系统.该系统由 Google 设计并捐赠给 Cloud Native

  • Docker微服务的ETCD集群搭建教程详解

    目录 etcd的特性 Etcd构建自身高可用集群主要有三种形式 本次搭建的基础环境 1.将服务器挨个添加进集群 2.将服务器统一添加进集群 etcd api接口 服务注册与发现 etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性.Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的

  • 浅谈实时计算框架Flink集群搭建与运行机制

    一.Flink概述 1.1.基础简介 主要特性包括:批流一体化.精密的状态管理.事件时间支持以及精确一次的状态一致性保障等.Flink不仅可以运行在包括YARN.Mesos.Kubernetes在内的多种资源管理框架上,还支持在裸机集群上独立部署.在启用高可用选项的情况下,它不存在单点失效问题. 这里要说明两个概念: 边界:无边界和有边界数据流,可以理解为数据的聚合策略或者条件: 状态:即执行顺序上是否存在依赖关系,即下次执行是否依赖上次结果: 1.2.应用场景 Data Driven 事件驱动

  • 在Kubernetes集群中搭建Istio微服务网格的过程详解

    目录 1.使用sealos部署快速部署K8S集群 1.1.基本环境配置 1.2.部署K8S集群 2.在K8S集群中部署Istio网格服务 2.1.下载Istio安装包 2.2.查看Istio可用的配置列表 2.3.展示Istio配置档的配置信息 2.4.查看Istio在k8s集群部署使用的YAML文件内容 1.使用sealos部署快速部署K8S集群 1.1.基本环境配置 1.设置主机名 hostnamectl set-hostname k8s-master hostnamectl set-hos

  • mongodb3.4集群搭建实战之高可用的分片+副本集

    前言 最近因为工作的原因,在学习使用mongodb数据库,mongodb是最常用的nodql数据库,在数据库排名中已经上升到了前六.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等. 相关概念 先来看一张图: 从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,

  • 使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法

    本文参考kubernetes官网文章Installing Kubernetes on Linux with kubeadm在CentOS7.2使用Kubeadm部署Kuebernetes集群,解决了一些在按照该文档部署时遇到的问题. 操作系统版本 # cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 内核版本 # uname -r 3.10.0-327.el7.x86_64 集群节点 192.168.120.122 kube

  • 详解Redis集群搭建的三种方式

    一.单节点实例 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个 Redis 还是很轻松的,做为一个 key/value 数据库也是可以胜任的 二.主从模式(master/slaver) redis 主从模式配置 主从模式: redis 的主从模式,使用异步复制,slave 节点异步从 master 节点复制数据,master 节点提供读写服务,slave 节点只提供读服务(这个是默认配置,可以通过修改配置文件 slave-read-only 控制).master

随机推荐