当前位置:网站首页>Kubernetes cluster builds ZABBIX monitoring platform
Kubernetes cluster builds ZABBIX monitoring platform
2022-07-06 06:56:00 【Fate in the Jianghu】
kubernetes Cluster building Zabbix Monitoring platform
- One 、zabbix Introduce
- Two 、 Check local k8s Environmental Science
- 3、 ... and 、 To configure nfs Shared memory
- Four 、 install zabbix-mysql
- 5、 ... and 、 Check zabbix Database service domain name
- 6、 ... and 、 install zabbix-server
- 7、 ... and 、 Deploy zabbix-web
- 8、 ... and 、 Deploy zabbix-agent
- Nine 、 visit zabbix Of web
One 、zabbix Introduce
1.zabbix brief introduction
Zabbix It's based on Web Enterprise level open source software for distributed system monitoring of interface . It can monitor the parameters of various systems and equipment , Ensure the safe operation of servers and equipment .
2.zabbix characteristic
(1) Simple installation and configuration .
(2) visualization web Management interface .
(3) Free and open source .
(4) Support Chinese .
(5) Auto discovery .
(6) Distributed monitoring .
(7) Real time drawing .
3.zabbix The main function of
1. Hardware monitoring . Such as switch 、 Router 、 Printers, etc .
2. System monitoring . Such as CPU, Memory , disk . Hard disk IO, System load, etc .
3. Service monitoring . Such as apache,nginx,tomcat,redis,TCP Number of connections, etc .
4. Performance monitoring . Such as website performance , Server performance , Database performance .
5. Log monitoring . Such as access log , Error log .
6. Safety monitoring . Such as the number of user logins , Local file changes ,passwd Document changes .
7. network monitoring . Such as port ,SMTP, Network usage , Network traffic , Network traffic .
4.zabbix Architecture diagram
Two 、 Check local k8s Environmental Science
1. Check the system pod Running state
[[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. Check node Node status
[[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
3、 ... and 、 To configure nfs Shared memory
1. install nfs
yum install -y nfs-utils
2. Create shared directory
mkdir -p /nfs/data
3. Configure shared directory
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
4… Start related services
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
5. Make configuration effective
exportfs -r
1
6. see nfs
[[email protected]-master ~]# exportfs
/nfs/data <world>
7. Other node inspection nfs share
[[email protected]-node01 ~]# showmount -e 192.168.3.201
Export list for 192.168.3.201:
/nfs/data *
Four 、 install zabbix-mysql
1. To write zabbix-mysql Of yaml file
[[email protected]-master zabbix]# cat zabbix_mysql.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: zabbixdb-pv
spec:
capacity: # Create storage size
storage: 10Gi
volumeMode: Filesystem # Type of storage
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 # Storage type , Block storage 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. Create a namespace
[[email protected]-master zabbix]# kubectl create namespace zabbix
namespace/zabbix created
3. establish zabbix database
kubectl apply -f zabbix_mysql.yaml
4. Check pod state
[[email protected]-master zabbix]# kubectl get pods -n zabbix
NAME READY STATUS RESTARTS AGE
zabbixdb-69b7cd8dff-jnpjd 1/1 Running 0 11m
5、 ... and 、 Check zabbix Database service domain name
1. Run the test pod
[[email protected]-master ~]# kubectl run busybox --image=busybox:1.28 -- sleep 3600
pod/busybox created
2. Get into busybox Of pod
[[email protected]-master ~]# kubectl exec -it busybox -- /bin/sh
/ #
3. See domain name resolution
[[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
/ #
6、 ... and 、 install zabbix-server
1. To write zabbix_server.yaml file
[[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. to node02 Label nodes
[[email protected]-master zabbix]# kubectl label nodes k8s-node02 zabbix-server=true
node/k8s-node02 labeled
3. install zabbix-server
[[email protected]-master zabbix]# kubectl apply -f zabbix_server.yaml
deployment.apps/zabbix-server created
4. Check pod state
[[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
7、 ... and 、 Deploy zabbix-web
1. To write zabbix_web.yaml file
[[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. install zabbix-web
[[email protected]-master zabbix]# kubectl apply -f zabbix_web.yaml
deployment.apps/zabbix-web created
service/zabbix-web created
3. see pod state
[[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
8、 ... and 、 Deploy zabbix-agent
1. edit 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. install zabbix-agent
kubectl apply -f zabbix_agent.yaml
3. see pod state
[[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
Nine 、 visit zabbix Of web
1. see 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. Sign in web
http://192.168.3.202:30775
3. Sign in zabbix
Initial account number admin/zabbix
4. Inquire about zabbix-server Monitoring item chart of
边栏推荐
- Blue Bridge Cup zero Foundation National Championship - day 20
- Explain in detail the functions and underlying implementation logic of the groups sets statement in SQL
- win10 64位装三菱PLC软件出现oleaut32.dll拒绝访问
- Brief introduction to the curriculum differences of colleges and universities at different levels of machine human major -ros1/ros2-
- UniPro甘特图“初体验”:关注细节背后的多场景探索
- [hot100] 739. Température quotidienne
- 雲上有AI,讓地球科學研究更省力
- 基于PyTorch和Fast RCNN快速实现目标识别
- Is it difficult for girls to learn software testing? The threshold for entry is low, and learning is relatively simple
- Short video, more and more boring?
猜你喜欢
【每日一题】729. 我的日程安排表 I
指尖上的 NFT|在 G2 上评价 Ambire,有机会获得限量版收藏品
基于购买行为数据对超市顾客进行市场细分(RFM模型)
[unity] how to export FBX in untiy
Attributeerror: can 't get attribute' sppf 'on < module' models. Common 'from' / home / yolov5 / Models / comm
Office doc add in - Online CS
Introduction and underlying analysis of regular expressions
[English] Verb Classification of grammatical reconstruction -- English rabbit learning notes (2)
Depth residual network
Market segmentation of supermarket customers based on purchase behavior data (RFM model)
随机推荐
Three methods of adding color to latex text
MySQL high frequency interview 20 questions, necessary (important)
Simple use of JWT
基于购买行为数据对超市顾客进行市场细分(RFM模型)
Simple use of MySQL database: add, delete, modify and query
Pallet management in SAP SD delivery process
成功解决TypeError: data type ‘category‘ not understood
Leetcode daily question (1997. first day where you have been in all the rooms)
A brief introduction of reverseme in misc in the world of attack and defense
C语言_双创建、前插,尾插,遍历,删除
AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models. common‘ from ‘/home/yolov5/models/comm
成功解决TypeError: data type ‘category‘ not understood
Proteus -- Serial Communication parity flag mode
PCL realizes frame selection and clipping point cloud
因高额网络费用,Arbitrum 奥德赛活动暂停,Nitro 发行迫在眉睫
librosa音频处理教程
Briefly describe the differences between indexes, primary keys, unique indexes, and joint indexes in mysql, and how they affect the performance of the database (in terms of reading and writing)
Machine learning plant leaf recognition
L'Ia dans les nuages rend la recherche géoscientifique plus facile
Chapter 7 - thread pool of shared model