Install Zabbix6 on OpenShift v49

From Bitbull Wiki
Jump to navigation Jump to search

1 Tested with

  • Server Version: 4.13.0
  • Zabbix Version: 6.4.5

1.1 zabbix

PROJECT=zabbix6
oc new-project $PROJECT
oc create secret docker-registry docker --docker-server=docker.io --docker-username=username1 --docker-email=chris@domain.ch --docker-password=xcgsedfgsdfhgsdfg
oc secrets link default docker --for=pull
oc new-app --image=mariadb:10.6 MYSQL_DATABASE=zabbix MARIADB_USER=zabbix MARIADB_PASSWORD=zabbix MARIADB_ROOT_PASSWORD=$(tr -dc A-Za-z0-9_=%.,: < /dev/urandom | head -c 16)     MARIADB_ROOT_HOST=mariadb --source-secret=docker
oc set volume deployment/mariadb --add --name=mariadb -t pvc --claim-size=5G --claim-mode=ReadWriteOnce --claim-name=mariadb-claim
oc set volume deployment --all
oc set volume deployment/mariadb --remove --mount-path=/var/lib/mysql --confirm
oc set volume deployment/mariadb --add --name=mariadb-vol --mount-path=/var/lib/mysql --claim-name=mariadb-claim


  • recreate database with proper settings automated
oc rsh deployment/mariadb <<EOF
MYSQL_PWD="\$MARIADB_ROOT_PASSWORD" mysql -u root -e "drop database \$MYSQL_DATABASE ; create database \$MYSQL_DATABASE character set utf8mb4 collate utf8mb4_bin; show databases;"
EOF
oc create -f https://raw.githubusercontent.com/joe-speedboat/docker.zabbix-server-mysql/master/scc_anyuid-net.yml
oc create serviceaccount anyuid-net
oc adm policy add-scc-to-user anyuid-net -z anyuid-net
oc new-app --image=christian773/zabbix-server-mysql:alpine-latest MYSQL_DATABASE=zabbix MYSQL_USER=zabbix MYSQL_PASSWORD=zabbix DB_SERVER_HOST=mariadb --source-secret=docker
oc rollout pause deployment/zabbix-server-mysql
oc patch deployment/zabbix-server-mysql --patch '{"spec":{"template":{"spec":{"serviceAccountName": "anyuid-net"}}}}'
oc set volume deployment/zabbix-server-mysql --add --name=zabbix-server-mysql-vol -t pvc --claim-size=5G --claim-mode=ReadWriteMany --claim-name=zabbix-server-mysql-claim
oc get pvc
oc set volume deployment --all
oc set volume deployment/zabbix-server-mysql | grep mounted\ at | awk '{print $3}' | tee /tmp/mounts
cat /tmp/mounts | while read m
do
   oc set volume deployment/zabbix-server-mysql --remove --mount-path=$m --confirm
done
cat /tmp/mounts | grep -v '^$' | while read m
do
   oc set volume deployment/zabbix-server-mysql --add --name=zabbix-server-mysql-vol --mount-path=$m --claim-name=zabbix-server-mysql-claim --sub-path=$(basename $m)
done
oc set volume deployment --all
oc rollout resume deployment/zabbix-server-mysql
oc logs -f deployment/zabbix-server-mysql
oc new-app --image=zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest MYSQL_DATABASE=zabbix MYSQL_USER=zabbix MYSQL_PASSWORD=zabbix DB_SERVER_HOST=mariadb ZBX_SERVER_HOST=zabbix-server-mysql PHP_TZ="Europe/Zurich" --source-secret=docker
oc patch deployment/zabbix-web-nginx-mysql --patch '{"spec":{"template":{"spec":{"serviceAccountName": "anyuid-net"}}}}'
sleep 3
oc logs -f deployment/zabbix-web-nginx-mysql
sleep 3
oc logs -f deployment/zabbix-web-nginx-mysql
oc create route edge --service=zabbix-web-nginx-mysql --port=8080 --hostname=zabbix.app.domain.com
  • firefox zabbix.app.domain.com
Admin / zabbix