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访问页面



浙公网安备 33010602011771号