====== Zabbix Deployment V2 ======
===== Secret =====
$ cat pgsql-secret
dbname=zabbix
host=pgsql.juntotelecom.com.br
password=senha
port=5432
user=zabbix
kubectl create secret generic pgsql-secret -n zabbix \
--from-env-file=pgsql-secret -o yaml \
--dry-run=client > pgsql-secret.yaml
$ cat pgsql-secret.yaml
apiVersion: v1
data:
dbname: emFiYml4
host: cGdzcWwuanVudG90ZWxlY29tLmNvbS5icg==
password: c2VuaGEK
port: NTQzMg==
user: emFiYml4
kind: Secret
metadata:
name: pgsql-secret
namespace: zabbix
===== Zabbix server =====
$ cat zabbix-server.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: zabbix
name: zabbix-server
namespace: zabbix
spec:
selector:
matchLabels:
app: zabbix
template:
metadata:
labels:
app: zabbix
spec:
containers:
- env:
- name: DB_SERVER_HOST
valueFrom:
secretKeyRef:
key: host
name: pgsql-secret
- name: DB_SERVER_PORT
valueFrom:
secretKeyRef:
key: port
name: pgsql-secret
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
key: user
name: pgsql-secret
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: pgsql-secret
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
key: dbname
name: pgsql-secret
- name: ENABLE_TIMESCALEDB
value: "true"
- name: ZBX_AUTOHANODENAME
value: hostname
- name: ZBX_NODEADDRESS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: ZBX_WEBSERVICEURL
value: http://zabbix-webservice:10053/report
- name: ZBX_STARTREPORTWRITERS
value: "1"
image: zabbix/zabbix-server-pgsql:ol-6.2-latest
imagePullPolicy: IfNotPresent
name: zabbix-server
ports:
- containerPort: 10051
name: zabbix-server
protocol: TCP
- containerPort: 10052
name: zabbix-jmx
protocol: TCP
resources: {}
- env:
- name: ZBX_HOSTNAME
value: Zabbix server
- name: ZBX_SERVER_HOST
value: 127.0.0.1
- name: ZBX_SERVER_PORT
value: "10051"
- name: ZBX_PASSIVE_ALLOW
value: "true"
- name: ZBX_PASSIVESERVERS
value: 127.0.0.1
- name: ZBX_ACTIVE_ALLOW
value: "true"
- name: ZBX_ACTIVESERVERS
- name: ZBX_DEBUGLEVEL
- name: ZBX_TIMEOUT
- name: ZBX_LOADMODULE
image: zabbix/zabbix-agent2:ol-6.2-latest
imagePullPolicy: IfNotPresent
name: zabbix-agent
ports:
- containerPort: 10050
name: zabbix-agent
protocol: TCP
resources: {}
restartPolicy: Always
securityContext: {}
$ cat service-server.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: zabbix
name: zabbix-server
namespace: zabbix
spec:
ports:
- name: zabbix-server
port: 10051
protocol: TCP
targetPort: 10051
- name: zabbix-jmx
port: 10052
protocol: TCP
targetPort: 10052
selector:
app: zabbix
type: ClusterIP
$ cat service-agent.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: zabbix
name: zabbix-agent
namespace: zabbix
spec:
ports:
- name: zabbix-agent
port: 10050
protocol: TCP
targetPort: 10050
selector:
app: zabbix
type: ClusterIP
===== Webservice =====
$ cat zabbix-webservice.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: zabbix
name: zabbix-webservice
namespace: zabbix
spec:
selector:
matchLabels:
app: zabbix
template:
metadata:
labels:
app: zabbix
spec:
containers:
- env:
- name: ZBX_ALLOWEDIP
value: ::/0
image: zabbix/zabbix-web-service:ol-6.2-latest
imagePullPolicy: IfNotPresent
name: zabbix-webservice
ports:
- containerPort: 10053
name: webservice
protocol: TCP
resources: {}
restartPolicy: Always
securityContext: {}
$ cat service-webservice.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: zabbix
name: zabbix-webservice
namespace: zabbix
spec:
ports:
- name: webservice
port: 10053
protocol: TCP
targetPort: 10053
selector:
app: zabbix
type: ClusterIP
===== Zabbix Web =====
$ cat zabbix-web.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: zabbix
name: zabbix-web
namespace: zabbix
spec:
selector:
matchLabels:
app: zabbix
template:
metadata:
labels:
app: zabbix
spec:
containers:
- env:
- name: DB_SERVER_HOST
valueFrom:
secretKeyRef:
key: host
name: pgsql-secret
- name: DB_SERVER_PORT
valueFrom:
secretKeyRef:
key: port
name: pgsql-secret
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
key: user
name: pgsql-secret
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: pgsql-secret
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
key: dbname
name: pgsql-secret
image: zabbix/zabbix-web-nginx-pgsql:ol-6.2-latest
imagePullPolicy: IfNotPresent
name: zabbix-web
ports:
- containerPort: 8080
name: zabbix-web
protocol: TCP
resources: {}
restartPolicy: Always
securityContext: {}
$ cat service-web.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: zabbix
name: zabbix-web
namespace: zabbix
spec:
ports:
- name: zabbix-web
port: 80
protocol: TCP
targetPort: 8080
selector:
app: zabbix
type: ClusterIP