kubernetes部署zabbix(k8s)
前言:部署的方式有很多中,这里我们介绍使用容器的方式部署方便日后迁移,这里我使用的是k8s部署的方式,其他方式大家自行参考https://www.zabbix.com/documentation/5.2/zh/manual/installation/containers
1、首先我们要准备一个mysql数据库,mysql数据放着容器里跑相对性能较差我们用虚拟机来跑,如果生产环境机器较多监控指标很多可以使用物理机配上SSD磁盘来跑mysql,zabbix性能瓶颈大部分在mysql这里。这里测试我们就直接yum一个mysql
#直接安装mariadb数据库
yum -y install mariadb-server
2、安装完mysql数据库之后我们把它加进k8s集群中调用起来会比较方便
[root@master zabbix]# cat mysqlep.yml apiVersion: v1 kind: Endpoints metadata: name: mysql namespace: monitoring labels: app: zabbix-server subsets: - addresses: - ip: 172.16.149.216 ports: - port: 3306 --- apiVersion: v1 kind: Service metadata: name: mysql namespace: monitoring labels: app: zabbix-server spec: ports: - protocol: TCP port: 3306 targetPort: 3306
3、部署zabbix-server
[root@master zabbix]# cat zabbix_server.yml apiVersion: v1 kind: Service metadata: name: zabbix-server namespace: monitoring labels: app: zabbix-server spec: selector: app: zabbix-server ports: - name: zabbix-server port: 10051 nodePort: 30051 type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: zabbix-server namespace: monitoring spec: replicas: 1 selector: matchLabels: app: zabbix-server template: metadata: labels: app: zabbix-server spec: containers: - name: zabbix-server image: zabbix/zabbix-server-mysql:latest imagePullPolicy: IfNotPresent env: - name: DB_SERVER_HOST value: mysql - name: DB_SERVER_PORT value: "3306" - name: MYSQL_DATABASE value: zabbix - name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: zabbix - name: MYSQL_ROOT_PASSWORD value: zabbix - name: ZBX_CACHESIZE value: "512M" - name: ZBX_HISTORYCACHESIZE value: "128M" - name: ZBX_HISTORYINDEXCACHESIZE value: "128M" - name: ZBX_TRENDCACHESIZE value: "128M" - name: ZBX_VALUECACHESIZE value: "256M" - name: ZBX_TIMEOUT value: "30" ports: - containerPort: 10051 name: zabbix-server protocol: TCP resources: requests: cpu: 1000m memory: 1000Mi limits: cpu: 1000m memory: 1000Mi - name: zabbix-agent image: zabbix/zabbix-agent:latest imagePullPolicy: IfNotPresent env: - name: ZBX_HOSTNAME value: "Zabbix server" - name: ZBX_SERVER_HOST value: "127.0.0.1" - name: ZBX_STARTAGENTS value: "3" - name: ZBX_UNSAFEUSERPARAMETERS value: "1" - name: ZBX_TIMEOUT value: "10" ports: - containerPort: 10050 name: zabbix-agent protocol: TCP resources: requests: cpu: 200m memory: 200Mi limits: cpu: 200m memory: 200Mi nodeSelector: node-role.kubernetes.io/master: "" tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule
4、部署zabbix-web
[root@master zabbix]# cat zabbix_web.yml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: zabbix-web namespace: monitoring spec: rules: - host: zabbix.lzxlinux.cn http: paths: - path: / backend: serviceName: zabbix-web servicePort: 8080 --- apiVersion: v1 kind: Service metadata: name: zabbix-web namespace: monitoring labels: app: zabbix-web spec: selector: app: zabbix-web ports: - name: web port: 8080 protocol: TCP --- apiVersion: apps/v1 kind: Deployment metadata: name: zabbix-web namespace: monitoring spec: replicas: 1 selector: matchLabels: app: zabbix-web template: metadata: labels: app: zabbix-web spec: containers: - name: zabbix-web image: zabbix/zabbix-web-nginx-mysql:latest imagePullPolicy: IfNotPresent env: - name: DB_SERVER_HOST value: mysql - name: MYSQL_DATABASE value: zabbix - name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: zabbix - name: MYSQL_ROOT_PASSWORD value: zabbix - name: ZBX_SERVER_HOST value: 'zabbix-server' - name: PHP_TZ value: "Asia/Shanghai" ports: - containerPort: 8080 name: web protocol: TCP resources: requests: cpu: 500m memory: 500Mi limits: cpu: 500m memory: 500Mi
5、使用zabbix.lzxlinux.cn访问页面
标签:
kubernetes
, zabbix
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!