文章詳情頁
kubernetes集群搭建Zabbix監(jiān)控平臺的詳細過程
瀏覽:120日期:2023-04-06 15:09:23
目錄
- 一、zabbix介紹
- 1.zabbix簡介
- 2.zabbix特點
- 3.zabbix的主要功能
- 4.zabbix架構圖
- 二、檢查本地k8s環(huán)境
- 1.檢查系統(tǒng)pod運行狀態(tài)
- 2.檢查node節(jié)點狀態(tài)
- 三、配置nfs共享存儲
- 1.安裝nfs
- 2.創(chuàng)建共享目錄
- 3.配置共享目錄
- 4.啟動相關服務
- 5.使配置生效
- 6.查看nfs
- 7.其他節(jié)點檢查nfs共享
- 四、安裝zabbix-mysql
- 1.編寫zabbix-mysql的yaml文件
- 2.創(chuàng)建命名空間
- 3.創(chuàng)建zabbix數據庫
- 4.檢查pod狀態(tài)
- 五、檢查zabbix數據庫的service域名
- 1.運行測試pod
- 2.進入busybox的pod
- 3.查看域名解析
- 六、安裝zabbix-server
- 1.編寫zabbix_server.yaml文件
- 2.給node02節(jié)點打上標簽
- 3.安裝zabbix-server
- 4.檢查pod狀態(tài)
- 七、部署zabbix-web
- 1.編寫zabbix_web.yaml文件
- 2.安裝zabbix-web
- 3.查看pod狀態(tài)
- 八、部署zabbix-agent
- 1.編輯zabbix_agent.yaml
- 2.安裝zabbix-agent
- 3.查看pod狀態(tài)
- 九、訪問zabbix的web
- 1.查看svc
- 2.登錄web
- 3.登錄zabbix
- 4.查詢zabbix-server的監(jiān)控項圖表
一、zabbix介紹
1.zabbix簡介
Zabbix是一個基于Web界面的分布式系統(tǒng)監(jiān)控的企業(yè)級開源軟件。可以監(jiān)視各種系統(tǒng)與設備的參數,保障服務器及設備的安全運營。
2.zabbix特點
(1)安裝與配置簡單。
(2)可視化web管理界面。
(3)免費開源。
(4)支持中文。
(5)自動發(fā)現。
(6)分布式監(jiān)控。
(7)實時繪圖。
3.zabbix的主要功能
1.硬件監(jiān)控。如交換機、路由器、打印機等。
2.系統(tǒng)監(jiān)控。如CPU,內存,磁盤。硬盤IO,系統(tǒng)負載等。
3.服務監(jiān)控。如apache,nginx,tomcat,redis,TCP連接數等。
4.性能監(jiān)控。如網站性能,服務器性能,數據庫性能。
5.日志監(jiān)控。如訪問日志,錯誤日志。
6.安全監(jiān)控。如用戶登錄數,本地文件改動,passwd文件變化。
7.網絡監(jiān)控。如端口,SMTP,網絡使用率,網絡入流量,網絡出流量。
4.zabbix架構圖
二、檢查本地k8s環(huán)境
1.檢查系統(tǒng)pod運行狀態(tài)
[root@k8s-master ~]# kubectl get pods -ANAMESPACE NAME READY STATUS RESTARTSAGEkube-system calico-kube-controllers-7bc6547ffb-2nf66 1/1 Running 1 (9m28s ago) 2d16hkube-system calico-node-8c4pn 1/1 Running 1 (9m16s ago) 2d16hkube-system calico-node-f28qq 1/1 Running 1 (9m10s ago) 2d16hkube-system calico-node-wmc2j 1/1 Running 1 (9m29s ago) 2d16hkube-system coredns-6d8c4cb4d-6gm4x 1/1 Running 1 (9m28s ago) 2d16hkube-system coredns-6d8c4cb4d-7vxlz 1/1 Running 1 (9m29s ago) 2d16hkube-system etcd-k8s-master 1/1 Running 1 (9m30s ago) 2d16hkube-system kube-apiserver-k8s-master 1/1 Running 1 (9m29s ago) 2d16hkube-system kube-controller-manager-k8s-master 1/1 Running 1 (9m30s ago) 2d16hkube-system kube-proxy-8dfw8 1/1 Running 1 (9m29s ago) 2d16hkube-system kube-proxy-ghzrv 1/1 Running 1 (9m9s ago) 2d16hkube-system kube-proxy-j867z 1/1 Running 1 (9m15s ago) 2d16hkube-system kube-scheduler-k8s-master 1/1 Running 1 (9m28s ago) 2d16h
2.檢查node節(jié)點狀態(tài)
[root@k8s-master ~]# kubectl get nodes -owideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGEKERNEL-VERSION CONTAINER-RUNTIMEk8s-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.6k8s-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.6k8s-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.啟動相關服務
systemctl enable rpcbindsystemctl enable nfs-serversystemctl 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.201Export list for 192.168.3.201:/nfs/data *
四、安裝zabbix-mysql
1.編寫zabbix-mysql的yaml文件
[root@k8s-master zabbix]# cat zabbix_mysql.yaml ---apiVersion: v1kind: PersistentVolumemetadata: name: zabbixdb-pvspec: 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: v1kind: PersistentVolumeClaimmetadata: name: zabbixdb-pvc namespace: zabbixspec: accessModes: - ReadWriteOnce volumeMode: Filesystem #存儲類型 ,塊存儲Block resources: requests: storage: 8Gi---apiVersion: apps/v1kind: Deploymentmetadata: labels: app: zabbixdb name: zabbixdb namespace: zabbixspec: replicas: 1 selector: matchLabels: app: zabbixdb strategy: {} template: metadata: labels:app: zabbixdb spec: volumes: - name: zabbixdb-datapersistentVolumeClaim: claimName: zabbixdb-pvc containers: - image: mysql:8.0name: mysqlports:- name: mysql containerPort: 3306 protocol: TCPvolumeMounts:- name: zabbixdb-data mountPath: /var/lib/mysqlenv:- 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: v1kind: Servicemetadata: creationTimestamp: null labels: app: zabbixdb name: zabbixdb namespace: zabbixspec: clusterIP: 10.96.1.99 ports: - name: 3306-3306 port: 3306 protocol: TCP targetPort: 3306 selector: app: zabbixdb type: ClusterIPstatus: loadBalancer: {}
2.創(chuàng)建命名空間
[root@k8s-master zabbix]# kubectl create namespace zabbixnamespace/zabbix created
3.創(chuàng)建zabbix數據庫
kubectl apply -f zabbix_mysql.yaml
4.檢查pod狀態(tài)
[root@k8s-master zabbix]# kubectl get pods -n zabbix NAMEREADY STATUS RESTARTS AGEzabbixdb-69b7cd8dff-jnpjd 1/1 Running 0 11m
五、檢查zabbix數據庫的service域名
1.運行測試pod
[root@k8s-master ~]# kubectl run busybox --image=busybox:1.28 -- sleep 3600pod/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.localServer: 10.96.0.10Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.localName: zabbixdb.zabbix.svc.cluster.localAddress 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/v1kind: Deploymentmetadata: creationTimestamp: null labels: app: zabbix-server name: zabbix-server namespace: zabbixspec: replicas: 1 selector: matchLabels: app: zabbix-server strategy: {} template: metadata: creationTimestamp: null labels:app: zabbix-server spec: volumes: - name: zabbix-scriptshostPath: path: /usr/lib/zabbix/ - name: zabbix-filehostPath: path: /var/lib/zabbix nodeSelector:zabbix-server: "true" hostNetwork: true containers: - image: zabbix/zabbix-server-mysql:6.0-ubuntu-latestname: zabbix-server-mysqlenv:- name: DB_SERVER_HOST value: 10.96.1.99- name: MYSQL_USER value: zabbix- name: MYSQL_PASSWORD value: zabbixresources: {}status: {}
2.給node02節(jié)點打上標簽
[root@k8s-master zabbix]# kubectl label nodes k8s-node02 zabbix-server=truenode/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 zabbixNAME READY STATUS RESTARTS AGEzabbix-server-5f48d9d57d-rkr5p 1/1 Running 0 66szabbixdb-69b7cd8dff-krt2w1/1 Running 0 4m22s
七、部署zabbix-web
1.編寫zabbix_web.yaml文件
[root@k8s-master zabbix]# cat zabbix_web.yaml apiVersion: apps/v1kind: Deploymentmetadata: creationTimestamp: null labels: app: zabbix-web name: zabbix-web namespace: zabbixspec: 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-latestname: zabbix-web-nginx-mysqlenv:- 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/shanghairesources: {}status: {}---apiVersion: v1kind: Servicemetadata: creationTimestamp: null labels: app: zabbix-web name: zabbix-web namespace: zabbixspec: ports: - name: 8080-8080 port: 8080 protocol: TCP targetPort: 8080 selector: app: zabbix-web type: NodePortstatus: loadBalancer: {}
2.安裝zabbix-web
[root@k8s-master zabbix]# kubectl apply -f zabbix_web.yaml deployment.apps/zabbix-web createdservice/zabbix-web created
3.查看pod狀態(tài)
[root@k8s-master zabbix]# kubectl get pods -n zabbixNAME READY STATUS RESTARTS AGEzabbix-server-5f48d9d57d-rkr5p 1/1 Running 0 2m36szabbix-web-55cd66f74f-9f284 1/1 Running 0 18szabbixdb-69b7cd8dff-krt2w1/1 Running 0 5m52s
八、部署zabbix-agent
1.編輯zabbix_agent.yaml
[root@k8s-master zabbix]# cat zabbix_agent.yaml apiVersion: apps/v1kind: DaemonSetmetadata: labels: app: zabbix-agent name: zabbix-agent namespace: zabbixspec: selector: matchLabels: app: zabbix-agent template: metadata: creationTimestamp: null labels:app: zabbix-agent spec: hostNetwork: true containers: - image: zabbix/zabbix-agent:6.0-ubuntu-latestname: zabbix-agentenv:- name: ZBX_SERVER_HOST value: 192.168.3.201resources: {}
2.安裝zabbix-agent
kubectl apply -f zabbix_agent.yaml
3.查看pod狀態(tài)
[root@k8s-master zabbix]# kubectl get pods -n zabbixNAME READY STATUS RESTARTS AGEzabbix-agent-h2qwf 1/1 Running 0 3szabbix-agent-plnbd 1/1 Running 0 3szabbix-server-5f48d9d57d-rkr5p 1/1 Running 0 3m2szabbix-web-55cd66f74f-9f284 1/1 Running 0 44szabbixdb-69b7cd8dff-krt2w1/1 Running 0 6m18s
九、訪問zabbix的web
1.查看svc
[root@k8s-master zabbix]# kubectl get svc -n zabbix NAME TYPECLUSTER-IP EXTERNAL-IP PORT(S) AGEzabbix-web NodePort 10.100.50.7 <none>8080:30775/TCP 59szabbixdb 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)控項圖表
到此這篇關于kubernetes集群搭建Zabbix監(jiān)控平臺的文章就介紹到這了,更多相關kubernetes集群搭建Zabbix監(jiān)控內容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!
標簽:
Zabbix
相關文章:
排行榜