广告位联系
返回顶部
分享到

kubernetes集群搭建Zabbix监控平台的过程方法

zabbix 来源:互联网 作者:酷站 发布时间:2022-08-10 12:11:08 人浏览
摘要

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简

一、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运行状态

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[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节点状态

1

2

3

4

5

[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

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

5.使配置生效

1

exportfs -r

6.查看nfs

1

2

[root@k8s-master ~]# exportfs

/nfs/data       <world>

7.其他节点检查nfs共享

1

2

3

[root@k8s-node01 ~]#  showmount -e 192.168.3.201

Export list for 192.168.3.201:

/nfs/data *

四、安装zabbix-mysql

1.编写zabbix-mysql的yaml文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

[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.创建命名空间

1

2

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

namespace/zabbix created

3.创建zabbix数据库

1

kubectl apply -f zabbix_mysql.yaml

4.检查pod状态

1

2

3

[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

1

2

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

pod/busybox created

2.进入busybox的pod

1

2

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

/ #

3.查看域名解析

1

2

3

4

5

6

7

8

[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文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

[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节点打上标签

1

2

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

node/k8s-node02 labeled

3.安装zabbix-server

1

2

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

deployment.apps/zabbix-server created

4.检查pod状态

1

2

3

4

[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文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

[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

1

2

3

[root@k8s-master zabbix]# kubectl apply -f zabbix_web.yaml

deployment.apps/zabbix-web created

service/zabbix-web created

3.查看pod状态

1

2

3

4

5

[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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

[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

1

kubectl apply -f zabbix_agent.yaml

3.查看pod状态

1

2

3

4

5

6

7

[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

1

2

3

4

[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的监控项图表


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/jks212454/article/details/125624373
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计