kubernetes集群部署Zabbix监控平台

2024-09-08 15:12

本文主要是介绍kubernetes集群部署Zabbix监控平台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、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-master01 k8s]# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
kube-system   calico-kube-controllers-66df9cd554-c5vwx   1/1     Running   2 (13h ago)     13h
kube-system   calico-node-2vjdd                          1/1     Running   1 (13h ago)     13h
kube-system   calico-node-qfrx8                          1/1     Running   0               13h
kube-system   calico-node-wbg8l                          1/1     Running   1 (13h ago)     13h
kube-system   calico-typha-5c7749d78b-79wcb              1/1     Running   0               13h
kube-system   coredns-6d86b45487-9cpdc                   1/1     Running   5 (14h ago)     9d
kube-system   metrics-server-6d9df85947-c65n6            1/1     Running   31 (14h ago)    9d
zabbix        zabbix-agent-9q2qw                         1/1     Running   0               10h
zabbix        zabbix-agent-mpb49                         1/1     Running   0               10h
zabbix        zabbix-agent-qzf6w                         0/1     Evicted   0               30s
zabbix        zabbix-server-85b4c47d86-79c8c             1/1     Running   0               7h47m
zabbix        zabbix-web-7bc588854c-t98kt                1/1     Running   0               10h
zabbix        zabbixdb-549c997ff4-dcd5d                  1/1     Running   3 (7h47m ago)   10h
 

2.检查node节点状态

[root@k8s-master01 k8s]# kubectl get node
NAME           STATUS   ROLES    AGE   VERSION
k8s-master01   Ready    <none>   14d   v1.24.2
k8s-worker01   Ready    <none>   14d   v1.24.2
k8s-worker02   Ready    <none>   14d   v1.24.2
 

三、配置nfs共享存储

1.安装nfs

1

yum install -y nfs-utils

2.创建共享目录

1

mkdir -p /nfs/data

3.配置共享目录

1

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

4.启动相关服务

1

2

3

systemctl enable rpcbind

systemctl enable nfs-server

systemctl start rpcbind nfs

5.使配置生效

1

exportfs -r

6.查看nfs

[root@k8s-master01 k8s]# exportfs
 

7.其他节点检查nfs共享

[root@k8s-worker01 zabbix]# showmount -e 192.168.204.129

四、安装zabbix-mysql

1.编写zabbix-mysql的yaml文件

[root@k8s-worker01 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.204.130
  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: registry.cn-hangzhou.aliyuncs.com/qingyuannan/mysql:8.0
        name: mysql
        imagePullPolicy: IfNotPresent
        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
  type: NodePort
status:
  loadBalancer: {}
 

2.创建命名空间

[root@k8s-master01 k8s]# kubectl create namespace zabbix
 

3.创建zabbix数据库

1

kubectl apply -f zabbix_mysql.yaml

[root@k8s-master01 k8s]# kubectl get pods -n zabbix

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

1.运行测试pod

[root@k8s-master01 k8s] 

kubectl run busybox --image=busybox:1.28 -- sleep 3600

2.进入busybox的pod 

[root@k8s-master01 k8s] kubectl exec -it busybox -- /bin/sh

3.查看域名解析

[root@k8s-master01 k8s] kubectl exec -it busybox -- /bin/sh

六、安装zabbix-server

1.编写zabbix_server.yaml文件

[root@k8s-worker01 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: registry.cn-hangzhou.aliyuncs.com/qingyuannan/zabbix-server-mysql:6.0-alpine-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.给master01节点打上标签

[root@k8s-master01 k8s] 

kubectl label nodes k8s-master01  zabbix-server=true

3.安装zabbix-server

[root@k8s-worker01 zabbix]kubectl apply -f zabbix_server.yaml

4.检查pod状态

[root@k8s-master01 k8s] kubectl get pods -n zabbix

七、部署zabbix-web

1.编写zabbix_web.yaml文件

[root@k8s-worker01 zabbix][root@k8s-worker01 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: registry.cn-hangzhou.aliyuncs.com/qingyuannan/zabbix-web-nginx-mysql:6.0-alpine-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.204.129
        - 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-worker01 zabbix]kubectl apply -f zabbix_web.yaml

3.查看pod状态

[root@k8s-master01 k8s]kubectl get pods -n zabbix

八、部署zabbix-agent

1.编辑zabbix_agent.yaml

[root@k8s-worker01 zabbix][root@k8s-worker01 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: registry.cn-hangzhou.aliyuncs.com/qingyuannan/zabbix-agent:6.0-alpine-latest
        name: zabbix-agent
        env:
        - name: ZBX_SERVER_HOST
          value: 192.168.204.129
        resources: {}
 

2.安装zabbix-agent

1

kubectl apply -f zabbix_agent.yaml

3.查看pod状态

kubectl get pods -n zabbix

九、访问zabbix的web

1.查看svc

kubectl get svc -n zabbix

NAME         TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
zabbix-web   NodePort   10.111.44.46   <none>        8080:31681/TCP   6d9h
zabbixdb     NodePort   10.96.1.99     <none>        3306:30184/TCP   6d12h

2.登录web

http://192.168.204.131:31681

配置zabbix前端 遇到报错

MySQL数据库和zabbix服务都已准备就绪,在配置zabbix前端的时候,报错故障:没有可用的配置。查看日志,找出报错原因(Tip : cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?))

再次使用zcat 从新将create.sql.gz 导入到zabbix databases,还是没有效果,user表仍然为空

问题原因1:create.sql.gz 包有SQL语法错误,导致部分表格未导入成功,用户无法连接数据库,zabbix版本6.0 

问题原因2:在添加主机时,提示没有查询到主机库存,经过show tables;数据库没有此表,在数据库下执行单个表导入时依然报错:line 255 error; 字段太长。

解决方法:

问题原因1:

  1. 进入zabbixdb容器mysqladmin -uroot -p ,drop database zabbix;CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%';flush privileges;
  2. gzip -d create.sql
  3. mysql -uroot -p -e "use zabbix;source /usr/share/doc/zabbix-server-mysql/create.sql;"
  4. 或者通过navicatl连接数据库zabbix,执行create.sql,这样数据表中就有了原始数据

问题原因2:

  1. 通过查看create 的语法,将InnoDB改成Myisam成功导入。

这篇关于kubernetes集群部署Zabbix监控平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1148455

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影