I recenty rediscovered Ansible and wondered if I could use Ansible to create trigger actions and scripts to maintain my home lab. It turns out you can with some adjustments to the Zabbix server.
As an example I use Zabbix to monitor the available updates on my Debian vm’s. When updates are detected, I fire up my dedicated Ansible vm and run my update playbook, which works fine. The only downside is that I must boot the dedicated Ansible server and run the playbooks against the “to be updated” hosts. This is a bit time consumming and wondered if I could update the vm using Zabbix.
What if I could run the playbooks directly from within the Zabbix instance? Mmmm!
I went on the net looking for examples of such howto’s, but wasn’t able to find any. Guess I had to make my own then.
As there were a few nice “how to’s” found on the internet about setting up Zabbix running on Docker containers within the Synology nas, time will eventually catch up those articles, as it will catch up this article eventually.
This article is just FYI and is based on a mixture of “the monitoring artist” and “Struiners Unie“. I don’t get into the details as my fellow Zabbix enthusiasts did but present you a working system.
First to know is that we are using three separate containers. One for the DB storage, one for the actual DB and one for Zabbix.
Create a new directory within the shared Docker directory (which is created when installing Docker). I called it Zabbix:)
Create a Docker container with the following command:
docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest
This will create a container which hasn’t a lot of use, but is needed so we can link to actual storage. Create a volume within this container and point it to the newly create directory:
As far as I can see, we just need to start up the container for one time, afterwards we can ignore the container.
Wait a few (+/- 10 minutes) minutes and the zabbix will be available to you, using Admin as user and zabbix as password.
I have noticed that browsing my Zabbix webpage, there was a google tracker active which can be disabled within the container environment parameter : XXL_analytics = false. It’s on by default. Just that you know.