小知识: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架构图

%小知识:kubernetes集群搭建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

%小知识:kubernetes集群搭建Zabbix监控平台的详细过程-1猿站网-插图

3.登录zabbix

初始账号admin/zabbix

%小知识:kubernetes集群搭建Zabbix监控平台的详细过程-2猿站网-插图

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

%小知识:kubernetes集群搭建Zabbix监控平台的详细过程-3猿站网-插图

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

原文链接:https://blog.csdn.net/jks212454/article/details/125624373

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:用自己的电脑做服务器建网站可行吗?

2023-3-11 9:56:20

建站知识

小知识:GPU服务器的多用户配置方法

2023-3-11 10:11:07

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索