当前位置:网站首页>Build Zabbix Kubernetes cluster monitoring platform
Build Zabbix Kubernetes cluster monitoring platform
2022-08-11 03:27:00 【Zabbix_China】
目 录
一、检查本地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的监控项图表
一、检查本地k8s环境
1.检查系统pod运行状态
[[email protected]-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节点状态
[[email protected]-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
[[email protected]-master ~]# exportfs
/nfs/data <world>
7.其他节点检查nfs共享
[[email protected]-node01 ~]# showmount -e 192.168.3.201
Export list for 192.168.3.201:
/nfs/data *
三、安装zabbix-mysql
1.编写zabbix-mysql的yaml文件
[[email protected]-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.创建命名空间
[[email protected]-master zabbix]# kubectl create namespace zabbix
namespace/zabbix created
3.创建zabbix数据库
kubectl apply -f zabbix_mysql.yaml
4.检查pod状态
[[email protected]-master zabbix]# kubectl get pods -n zabbix
NAME READY STATUS RESTARTS AGE
zabbixdb-69b7cd8dff-jnpjd 1/1 Running 0 11m
四、检查zabbix数据库的service域名
1.运行测试pod
[[email protected]-master ~]# kubectl run busybox --image=busybox:1.28 -- sleep 3600
pod/busybox created
2.进入busybox的pod
[[email protected]-master ~]# kubectl exec -it busybox -- /bin/sh
/ #
3.查看域名解析
[[email protected]-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文件
[[email protected]-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节点打上标签
[[email protected]-master zabbix]# kubectl label nodes k8s-node02 zabbix-server=true
node/k8s-node02 labeled
3.安装zabbix-server
[[email protected]-master zabbix]# kubectl apply -f zabbix_server.yaml
deployment.apps/zabbix-server created
4.检查pod状态
[[email protected]-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文件
[[email protected]-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
[[email protected]-master zabbix]# kubectl apply -f zabbix_web.yaml
deployment.apps/zabbix-web created
service/zabbix-web created
3.查看pod状态
[[email protected]-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
[[email protected]-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状态
[[email protected]-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
[[email protected]-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的监控项图表


转载自:https://blog.csdn.net/jks212454/article/details/125624373
边栏推荐
- [DB operation management/development solution] Shanghai Daoning provides you with an integrated development tool to improve the convenience of work - Orange
- A Practical Arrangement of Map GIS Development Matters (Part 1)
- 怎么删除语句审计日志?
- When EasyCVR is connected to the GB28181 device, what is the reason that the device is connected normally but the video cannot be played?
- CSDN 博客更换皮肤
- FTP错误代码列表
- How does MSP430 download programs to the board?(IAR MSPFET CCS)
- EasyCVR接入GB28181设备时,设备接入正常但视频无法播放是什么原因?
- 【ADI低功耗2k代码】基于ADuCM4050的ADXL363、TMP75的加速度、温度检测及串口打印、蜂鸣器播放音乐(孤勇者)
- What kind of programming trading strategy types can be divided into?
猜你喜欢

flink The object probably contains or references non serializable fields.

Multi-merchant mall system function disassembly 26 lectures - platform-side distribution settings

STC8H开发(十五): GPIO驱动Ci24R1无线模块

STC8H development (15): GPIO drive Ci24R1 wireless module

互换性测量与技术——偏差与公差的计算,公差图的绘制,配合与公差等级的选择方法

EasyCVR接入GB28181设备时,设备接入正常但视频无法播放是什么原因?

leetcode: 358. Reorder strings at K distance intervals

Unity2D animation (1) introduction to Unity scheme - animation system composition and the function of use

Google search skills - programmer is recommended

CTO说MySQL单表行数不要超过2000w,为啥?
随机推荐
JS-DOM element object
Qnet Weak Network Test Tool Operation Guide
分布式和集群的区别和联系
Paper Accuracy - 2017 CVPR "High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis"
重庆纸质发票再见!开住宿费电子发票即将全面取代酒店餐饮加油站发票
输入起始位置,终止位置截取链表
Roewe imax8ev cube battery security, what blackening and swelling are hidden behind it?
flink The object probably contains or references non serializable fields.
The problem that Merge will be lost again after code Revert has been solved
When EasyCVR is connected to the GB28181 device, what is the reason that the device is connected normally but the video cannot be played?
Detailed explanation of VIT source code
索引的创建、查看、删除
Typescript study notes | Byte Youth Training Notes
watch监听
轮转数组问题:如何实现数组“整体逆序,内部有序”?“三步转换法”妙转数组
什么是三方支付?
AI + medical: for medical image recognition using neural network analysis
What has programmatic trading changed?
聊聊对RPC的理解
Is Redis old?Performance comparison between Redis and Dragonfly