当前位置:网站首页>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
边栏推荐
- Practical guidance for interface automation testing (Part I): what preparations should be made for interface automation
- Basic commands of MySQL
- Huawei equipment configuration ospf-bgp linkage
- 接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
- ROS学习_基础
- Day 248/300 thoughts on how graduates find jobs
- Market segmentation of supermarket customers based on purchase behavior data (RFM model)
- UNIPRO Gantt chart "first experience": multi scene exploration behind attention to details
- 【Hot100】739. 每日温度
- Bio model realizes multi person chat
猜你喜欢
What is the difference between int (1) and int (10)? Senior developers can't tell!
Oracle数据库11gr2使用tde透明数据加密报错ora28353,如果运行关闭wallet会报错ora28365,运行打开wallet就报错ora28353无法打开wallet
Entity Developer数据库应用程序的开发
3. Business and load balancing of high architecture
AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models. common‘ from ‘/home/yolov5/models/comm
ROS learning_ Basics
医疗软件检测机构怎么找,一航软件测评是专家
Windows Server 2016 standard installing Oracle
After working for 10 years, I changed to a programmer. Now I'm 35 + years old and I'm not anxious
机器人类专业不同层次院校课程差异性简述-ROS1/ROS2-
随机推荐
[Yu Yue education] Dunhuang Literature and art reference materials of Zhejiang Normal University
[Yu Yue education] flower cultivation reference materials of Weifang Vocational College
Facebook AI & Oxford proposed a video transformer with "track attention" to perform SOTA in video action recognition tasks
18. Multi level page table and fast table
Classification des verbes reconstruits grammaticalement - - English Rabbit Learning notes (2)
LeetCode - 152 乘积最大子数组
【Hot100】739. Daily temperature
Day 248/300 关于毕业生如何找工作的思考
LeetCode Algorithm 2181. 合并零之间的节点
Brief introduction to the curriculum differences of colleges and universities at different levels of machine human major -ros1/ros2-
P5706 [deep foundation 2. Example 8] redistributing fat house water -- February 13, 2022
[English] Grammar remodeling: the core framework of English Learning -- English rabbit learning notes (1)
librosa音频处理教程
一文读懂简单查询代价估算
Short video, more and more boring?
Day 246/300 ssh连接提示“REMOTE HOST IDENTIFICATION HAS CHANGED! ”
UNIPRO Gantt chart "first experience": multi scene exploration behind attention to details
Bitcoinwin (BCW): the lending platform Celsius conceals losses of 35000 eth or insolvency
PCL实现选框裁剪点云
At the age of 26, I changed my career from finance to software testing. After four years of precipitation, I have been a 25K Test Development Engineer