Kubernetes搭建Zabbix监控
本文最后更新于 943 天前,其中的信息可能已经有所发展或是发生改变。

Kubernetes搭建Zabbix监控

因使用PostgreSQL14.10+TimeScaleDB2.13.1作为数据库,需首先创建对应数据库,已创建可忽略。本想做Mysql双主双从模式,但实际只有一台机器只能换成pg。

部署过程:https://199604.com/2861

创建Zabbix用户及数据库

虽镜像会自动导入相关sql,但还存在部分bug,为了解决问题还是自行导入sql较好。

问题:https://stackoverflow.com/questions/65895096/cannot-start-docker-image-of-zabbix-server-mysql-cannot-use-database-zabbix

# 创建zabbix用户
create database zabbix;
create user zabbix with password 'zabbix@123';
GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;

# Zabbix数据库启用TimescleDB插件
\c zabbix;
create EXTENSION IF NOT EXISTS timescaledb;

# 下载zabbix源码地址:https://www.zabbix.com/cn/download_sources#60LTS
# zabbix sql手册:https://www.zabbix.com/documentation/current/en/manual/appendix/install/db_scripts
# timescaledb 配置说明:https://www.zabbix.com/documentation/6.0/zh/manual/appendix/install/timescaledb
# 下载zabbix源码并解压,导入sql
cd database/postgresql
psql -Uzabbix -p8306 -W -dzabbix -f ./schema.sql
psql -Uzabbix -p8306 -W -dzabbix -f ./images.sql
psql -Uzabbix -p8306 -W -dzabbix -f ./data.sql
psql -Uzabbix -p8306 -W -dzabbix -f ./timescaledb.sql

k8s部署zabbix

创建命名空间

[root@k8s-master zabbix]# kubectl create namespace zabbix
namespace/zabbix created

部署zabbix-server

编写zabbix_server.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: zabbix-server
  name: zabbix-server
  namespace: zabbix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zabbix-server
  template:
    metadata:
      labels:
        app: zabbix-server

    spec:
      containers:
        - image: reg-hub.glj.com/zabbix/zabbix-server-pgsql:6.0.25-centos
          name: zabbix-server-pgsql
          imagePullPolicy: IfNotPresent
          env:
            - name: DB_SERVER_HOST
              value: "10.196.69.28"
            - name: DB_SERVER_PORT
              value: "8306"
            - name: POSTGRES_USER
              value: "zabbix"
            - name: POSTGRES_PASSWORD
              value: "zabbix@123"
            - name: POSTGRES_DB
              value: "zabbix"
            - name: ZBX_TIMEOUT
              value: "30"
            - name: TZ
              value: "Asia/Shanghai"
          ports:
            - containerPort: 10051
              name: zabbix-server
              protocol: TCP
          resources:
            requests:
              cpu: '0.5'
              memory: '512m'
            limits:
              cpu: '1'
              memory: '4Gi'
      hostNetwork: true #使用宿主机网络,固定ip。
      nodeSelector:
        "kubernetes.io/hostname": "k8s-m02"
      tolerations:
        - key: "node-role.kubernetes.io/controlplane"
          operator: "Exists"
        - key: "node-role.kubernetes.io/etcd"
          operator: "Exists"
      imagePullSecrets:
        - name: hub
 ---
 apiVersion: v1
kind: Service
metadata:
  namespace: zabbix
  name: zabbix-server-svc
  labels:
    name: zabbix-server-svc
spec:
  type: ClusterIP
  ports:
    - port: 10051
      name: zabbix-server
      targetPort: 10051
  selector:
    app: zabbix-server

一些外部脚本记得自行映射

部署zabbix-web

编写zabbix_web.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: zabbix-web
  name: zabbix-web
  namespace: zabbix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zabbix-web
  template:
    metadata:
      labels:
        app: zabbix-web
    spec:
      containers:
        - image: reg-hub.glj.com/zabbix/zabbix-web-nginx-pgsql:6.0.25-centos
          name: zabbix-web-nginx-pgsql
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080
              name: web
              protocol: TCP
          env:
            - name: DB_SERVER_HOST
              value: "10.196.69.28"
            - name: DB_SERVER_PORT
              value: "8306"
            - name: POSTGRES_USER
              value: "zabbix"
            - name: POSTGRES_PASSWORD
              value: "zabbix@123"
            - name: POSTGRES_DB
              value: "zabbix"
            - name: PHP_TZ
              value: Asia/shanghai
            - name: ZBX_SERVER_HOST
              value: "zabbix-server-svc"
            - name: TZ
              value: "Asia/Shanghai"
          resources:
            requests:
              cpu: 500m
              memory: 500Mi
            limits:
              cpu: 1000m
              memory: 1Gi
      imagePullSecrets:
        - name: hub
---
apiVersion: v1
kind: Service
metadata:
  namespace: zabbix
  name: zabbix-web-svc
  labels:
    name: zabbix-web-svc
spec:
  type: ClusterIP
  ports:
    - port: 8080
      name: web
      targetPort: 8080
  selector:
    app: zabbix-web

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: zabbix-web-ing
  namespace: zabbix
spec:
  ingressClassName: nginx
  rules:
    - host: web.zabbix.glj.com
      http:
        paths:
          - backend:
              service:
                name: zabbix-web-svc
                port:
                  number: 8080
            path: /
            pathType: Prefix 

image-20240117141950243

image-20240117142048965

image-20240117142101331

参考

1.https://blog.csdn.net/u010533742/article/details/125280581

2.https://zhuanlan.zhihu.com/p/105205984

3.https://mp.weixin.qq.com/s/S84jFIWXTy1onVff_D8TrQ

4.https://blog.csdn.net/a492391142/article/details/114696650

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇