kubernetes集群搭建Zabbix監(jiān)控平臺的詳細過程
一、zabbix介紹
1.zabbix簡介
Zabbix是一個基于Web界面的分布式系統(tǒng)監(jiān)控的企業(yè)級開源軟件??梢员O(jiān)視各種系統(tǒng)與設(shè)備的參數(shù),保障服務(wù)器及設(shè)備的安全運營。
2.zabbix特點
(1)安裝與配置簡單。
(2)可視化web管理界面。
(3)免費開源。
(4)支持中文。
(5)自動發(fā)現(xiàn)。
(6)分布式監(jiān)控。
(7)實時繪圖。
3.zabbix的主要功能
1.硬件監(jiān)控。如交換機、路由器、打印機等。
2.系統(tǒng)監(jiān)控。如CPU,內(nèi)存,磁盤。硬盤IO,系統(tǒng)負載等。
3.服務(wù)監(jiān)控。如apache,nginx,tomcat,redis,TCP連接數(shù)等。
4.性能監(jiān)控。如網(wǎng)站性能,服務(wù)器性能,數(shù)據(jù)庫性能。
5.日志監(jiān)控。如訪問日志,錯誤日志。
6.安全監(jiān)控。如用戶登錄數(shù),本地文件改動,passwd文件變化。
7.網(wǎng)絡(luò)監(jiān)控。如端口,SMTP,網(wǎng)絡(luò)使用率,網(wǎng)絡(luò)入流量,網(wǎng)絡(luò)出流量。
4.zabbix架構(gòu)圖

二、檢查本地k8s環(huán)境
1.檢查系統(tǒng)pod運行狀態(tài)
[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節(jié)點狀態(tài)
[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
yum install -y nfs-utils
2.創(chuàng)建共享目錄
mkdir -p /nfs/data
3.配置共享目錄
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
4.啟動相關(guān)服務(wù)
systemctl enable rpcbind systemctl enable nfs-server systemctl start rpcbind
5.使配置生效
exportfs -r
6.查看nfs
[root@k8s-master ~]# exportfs /nfs/data <world>
7.其他節(jié)點檢查nfs共享
[root@k8s-node01 ~]# showmount -e 192.168.3.201 Export list for 192.168.3.201: /nfs/data *
四、安裝zabbix-mysql
1.編寫zabbix-mysql的yaml文件
[root@k8s-master zabbix]# cat zabbix_mysql.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: zabbixdb-pv
spec:
capacity: #創(chuàng)建存儲的大小
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.創(chuàng)建命名空間
[root@k8s-master zabbix]# kubectl create namespace zabbix namespace/zabbix created
3.創(chuàng)建zabbix數(shù)據(jù)庫
kubectl apply -f zabbix_mysql.yaml
4.檢查pod狀態(tài)
[root@k8s-master zabbix]# kubectl get pods -n zabbix NAME READY STATUS RESTARTS AGE zabbixdb-69b7cd8dff-jnpjd 1/1 Running 0 11m
五、檢查zabbix數(shù)據(jù)庫的service域名
1.運行測試pod
[root@k8s-master ~]# kubectl run busybox --image=busybox:1.28 -- sleep 3600 pod/busybox created
2.進入busybox的pod
[root@k8s-master ~]# kubectl exec -it busybox -- /bin/sh / #
3.查看域名解析
[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文件
[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節(jié)點打上標簽
[root@k8s-master zabbix]# kubectl label nodes k8s-node02 zabbix-server=true node/k8s-node02 labeled
3.安裝zabbix-server
[root@k8s-master zabbix]# kubectl apply -f zabbix_server.yaml deployment.apps/zabbix-server created
4.檢查pod狀態(tài)
[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文件
[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
[root@k8s-master zabbix]# kubectl apply -f zabbix_web.yaml deployment.apps/zabbix-web created service/zabbix-web created
3.查看pod狀態(tài)
[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
[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
kubectl apply -f zabbix_agent.yaml
3.查看pod狀態(tài)
[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
[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

3.登錄zabbix
初始賬號admin/zabbix

4.查詢zabbix-server的監(jiān)控項圖表

到此這篇關(guān)于kubernetes集群搭建Zabbix監(jiān)控平臺的文章就介紹到這了,更多相關(guān)kubernetes集群搭建Zabbix監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Zabbix系統(tǒng)端口監(jiān)控狀態(tài)
這篇文章主要介紹了Zabbix系統(tǒng)端口監(jiān)控狀態(tài),可以使用zabbix自帶的key進行監(jiān)控2018-03-03
Zabbix對Kafka?topic積壓數(shù)據(jù)監(jiān)控的解決方案
這篇文章主要介紹了Zabbix對Kafka?topic積壓數(shù)據(jù)監(jiān)控的解決方案,它與Apache Storm和Spark非常好地集成,用于實時流式數(shù)據(jù)分析,需要的朋友跟隨小編一起看看吧2022-07-07
Zabbix實現(xiàn)批量監(jiān)控端口狀態(tài)的方法
在監(jiān)控生產(chǎn)環(huán)境的服務(wù)的時候,通常需要對多個端口進行監(jiān)控,如果我們手動一個一個的添加,這將是一件很麻煩的事情,為了減少這樣的情況,我們采用批量添加監(jiān)控端口的方法,下面小編給大家?guī)砹藌abbix批量監(jiān)控端口狀態(tài)的方法,一起看看吧2018-01-01
史上最便捷搭建Zookeeper服務(wù)器的方法(推薦)
由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的穩(wěn)定性,被廣泛地應(yīng)用于諸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系統(tǒng)中。這篇文章主要介紹了史上最便捷搭建Zookeeper服務(wù)器的方法,需要的朋友可以參考下2020-06-06
教你使用zabbix api批量添加數(shù)百臺監(jiān)控主機的方法
這篇文章主要介紹了利用zabbix api批量添加數(shù)百臺監(jiān)控主機,本次我們將實現(xiàn)用一臺主機虛擬出100臺主機,并通過api的方式自動添加監(jiān)控主機,需要的朋友可以參考下2022-03-03
Zabbix6通過ODBC方式監(jiān)控Oracle?19C的詳細過程
這篇文章主要介紹了Zabbix6通過ODBC方式監(jiān)控Oracle?19C最佳實踐,主要包括客戶端安裝配置過程及數(shù)據(jù)庫相關(guān)操作,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下2022-09-09
Zabbix 結(jié)合 bat 腳本實現(xiàn)多個應(yīng)用程序狀態(tài)監(jiān)控的方法
這篇文章主要介紹了Zabbix 結(jié)合 bat 腳本實現(xiàn)多個應(yīng)用程序狀態(tài)監(jiān)控,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

