当前位置:网站首页>kubernetes集群搭建Zabbix监控平台
kubernetes集群搭建Zabbix监控平台
2022-07-06 06:43:00 【江湖有缘】
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运行状态
[[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
1
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的监控项图表
边栏推荐
- ROS学习_基础
- PCL实现选框裁剪点云
- In English translation of papers, how to do a good translation?
- It is necessary to understand these characteristics in translating subtitles of film and television dramas
- Market segmentation of supermarket customers based on purchase behavior data (RFM model)
- Delete external table source data
- CS certificate fingerprint modification
- Redis Foundation
- 金融德语翻译,北京专业的翻译公司
- P5706 [deep foundation 2. Example 8] redistributing fat house water -- February 13, 2022
猜你喜欢
My creation anniversary
AI on the cloud makes earth science research easier
It is necessary to understand these characteristics in translating subtitles of film and television dramas
Attributeerror: can 't get attribute' sppf 'on < module' models. Common 'from' / home / yolov5 / Models / comm
In English translation of papers, how to do a good translation?
英语论文翻译成中文字数变化
L'Ia dans les nuages rend la recherche géoscientifique plus facile
机器人类专业不同层次院校课程差异性简述-ROS1/ROS2-
How to translate professional papers and write English abstracts better
Practical guidance for interface automation testing (Part I): what preparations should be made for interface automation
随机推荐
AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘/home/yolov5/models/comm
简单描述 MySQL 中,索引,主键,唯一索引,联合索引 的区别,对数据库的性能有什么影响(从读写两方面)
Fedora/REHL 安装 semanage
中英对照:You can do this. Best of luck祝你好运
[ 英语 ] 语法重塑 之 英语学习的核心框架 —— 英语兔学习笔记(1)
26岁从财务转行软件测试,4年沉淀我已经是25k的测开工程师...
电子书-CHM-上线CS
AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘/home/yolov5/models/comm
L'Ia dans les nuages rend la recherche géoscientifique plus facile
P5706 [deep foundation 2. Example 8] redistributing fat house water -- February 13, 2022
CS通过(CDN+证书)powershell上线详细版
Machine learning plant leaf recognition
英语论文翻译成中文字数变化
When my colleague went to the bathroom, I helped my product sister easily complete the BI data product and got a milk tea reward
How to translate biomedical instructions in English
详解SQL中Groupings Sets 语句的功能和底层实现逻辑
【软件测试进阶第1步】自动化测试基础知识
My creation anniversary
MySQL5.72. MSI installation failed
Pymongo gets a list of data