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

 更新时间:2022年07月06日 11:52:38   作者:江湖有缘  
Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营,这篇文章主要介绍了kubernetes集群搭建Zabbix监控平台,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

一、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监控内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • Linux shell环境下Zabbix Api的使用

    Linux shell环境下Zabbix Api的使用

    今天小编就为大家分享一篇关于Linux shell环境下Zabbix Api的使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • ubuntu系统下部署zabbix服务器监控的方法教程

    ubuntu系统下部署zabbix服务器监控的方法教程

    这篇文章主要给大家介绍了在ubuntu系统下部署zabbix服务器监控的方法教程,文中将步骤介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
    2017-06-06
  • zabbix redis自动发现端口的脚本返回json格式

    zabbix redis自动发现端口的脚本返回json格式

    zabbix([`z&aelig;biks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。这篇文章主要介绍了zabbix redis自动发现端口的脚本,返回json格式,需要的朋友可以参考下
    2019-11-11
  • Zabbix SAML SSO 登录绕过漏洞的操作流程

    Zabbix SAML SSO 登录绕过漏洞的操作流程

    这篇文章主要介绍了Zabbix SAML SSO 登录绕过漏洞的操作方法,该漏洞源于在启用?saml?SSO 身份验证(非默认)的情况下,未身份验证的攻击者可以修改会话数据,成功绕过前台进入后台,因为存储在会话中的用户登录未经过验证,具体实现流程跟随小编一起看看吧
    2022-03-03
  • 基于zabbix实现监控Jenkins过程详解

    基于zabbix实现监控Jenkins过程详解

    这篇文章主要介绍了基于zabbix实现监控Jenkins过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据的原理解析

    分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据的原理解析

    这篇文章主要介绍了分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据,本文给大家介绍的非常详细,对大家的学习或工作就有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • zabbix?代理服务器的部署与?zabbix-snmp?监控问题

    zabbix?代理服务器的部署与?zabbix-snmp?监控问题

    这篇文章主要介绍了zabbix?代理服务器?与?zabbix-snmp?监控,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 在centos7安装zabbix3.0的超详细步骤记录

    在centos7安装zabbix3.0的超详细步骤记录

    这篇文章主要给大家介绍了关于在centos7安装zabbix3.0的超详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • 解决zabbix监控因php问题导致图形界面中文乱码方法

    解决zabbix监控因php问题导致图形界面中文乱码方法

    解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-10-10
  • zabbix agent2 监控oracle数据库的方法

    zabbix agent2 监控oracle数据库的方法

    这篇文章主要介绍了zabbix agent2 监控oracle数据库的方法,本文给大家介绍的非常详细,对大家的学习或工作具体一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05

最新评论

?


http://www.vxiaotou.com