zabbix / zabbix-docker

Official Zabbix Dockerfiles
https://www.zabbix.com
GNU Affero General Public License v3.0
2.38k stars 1.37k forks source link

a way to make zabbix-appliance (mysql) persistent? #501

Closed thetuxinator closed 5 years ago

thetuxinator commented 5 years ago

Hi,

As i want some small monitoring server, to be used for some of my private machines (so i don't care about production ready and could be a good tester) i tried to make zabbix-appliance persistent using a volume for /var/lib/mysql , which did not work.

I just found this issue regarding mysql persistence, is this related? Has that change to be merged to zabbix-appliance? see https://github.com/zabbix/zabbix-docker/pull/500

Kind regards

Mike/tuxinator

rockaut commented 5 years ago

Just my opinion but I absolutely think the appliance should just disappear! Just use docker-compose which spins up all needed containers at once also on a single machine. Or even better spin up a single docker swarm node and use it there.

Ad your question - can you give use your command which you use to start the appliance?

thetuxinator commented 5 years ago

Completely understand your opinion, however the term appliance usually means a ready system to get started and get everything up and running in "no time". This is not the same as building a complete docker environment. For this reason i think either the docker-appliance should work as an appliance, which also should support to be statefull by mounting data dirs. If this is no passable way, there should be a VM appliance.

regards

Mike

rockaut commented 5 years ago

You're right but in case off the Zabbix appliance (there once we're a VM, don't know if it still is) there was always the warning that it's just meant for testing out Zabbix and never for production use. And now in the age of containers an "appliance" is even more just for testing as it speaks against all practice in containerization.

thetuxinator notifications@github.com schrieb am Fr., 11. Okt. 2019, 13:18:

Completely understand your opinion, however the term appliance usually means a ready system to get started and get everything up and running in "no time". This is not the same as building a complete docker environment. For this reason i think either the docker-appliance should work as an appliance, which also should support to be statefull by mounting data dirs. If this is no passable way, there should be a VM appliance.

regards

Mike

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/zabbix/zabbix-docker/issues/501?email_source=notifications&email_token=AADOV6EXRDBHOXBWQA2RZBTQOBOJHA5CNFSM4I6227T2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA7VYJI#issuecomment-541023269, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADOV6C2JN2BMYXU7B46Y23QOBOJHANCNFSM4I6227TQ .

thetuxinator commented 5 years ago

"And now in the age of containers an "appliance" is even more just for testing as it speaks against all practice in containerization." Sorry but, you are wrong here, or are all your containers only meant to be for testing?

There are 2 ways of using docker, first and most used and known is the usage by developers for their own testing and development. The second is to use it for production, to minimize amount of repeatable steps which you can automate. There is no real reason to use docker images only for testing, containerization is however often misunderstood and most people only use it for their own playground.

My goal was to get Zabbix up and running with minimal effort, so my plan was like one would do with either Docker or an appliance:

For Docker: Method a)

  1. search the right docker images for it
  2. set the right variables and RTFM
  3. mount the right paths to make it stateful
  4. start it
  5. test and configure it with the interface and let's go

Method b)

  1. search the right docker images for it
  2. set the right variables and RTFM
  3. set mariadb/mysql server to another host or container
  4. start it
  5. test and configure it with the interface and let's go

in both scenarios one would have a stateful solution.

rockaut commented 5 years ago

Docker is of course not only for testing. The Zabbix appliances always were. I meant appliances are not the logic of containers. Each service, each purpose should be a container.

And what would be easier than docker-compose which handles all your config with simple commands? Have a look at the templates. Choose the one you like (psql, mysql) edit the file and docker-compose up -d ... or docker-compose down.

Next step then would be a swarm cluster or if you go further use k8s/k3s.

I guarantee you, you will have more headache with the appliance image. Especially if you want to segment it afterwards or even want to use it in production.

That said. If you're willing to give more details on how you started the appliance (read the commands) and the configuration used we might help there too.

thetuxinator notifications@github.com schrieb am Fr., 11. Okt. 2019, 14:01:

"And now in the age of containers an "appliance" is even more just for testing as it speaks against all practice in containerization." Sorry but, you are wrong here, or are all your containers only meant to be for testing?

There are 2 ways of using docker, first and most used and known is the usage by developers for their own testing and development. The second is to use it for production, to minimize amount of repeatable steps which you can automate. There is no real reason to use docker images only for testing, containerization is however often misunderstood and most people only use it for their own playground.

My goal was to get Zabbix up and running with minimal effort, so my plan was like one would do with either Docker or an appliance:

For Docker: Method a)

  1. search the right docker images for it
  2. set the right variables and RTFM
  3. mount the right paths to make it stateful
  4. start it
  5. test and configure it with the interface and let's go

Method b)

  1. search the right docker images for it
  2. set the right variables and RTFM
  3. set mariadb/mysql server to another host or container
  4. start it
  5. test and configure it with the interface and let's go

in both scenarios one would have a stateful solution.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/zabbix/zabbix-docker/issues/501?email_source=notifications&email_token=AADOV6DGZBLZHZD4T23M6ZLQOBTKBA5CNFSM4I6227T2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA7YWEI#issuecomment-541035281, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADOV6BFO6ADREUQF6VGOOLQOBTKBANCNFSM4I6227TQ .

thetuxinator commented 5 years ago

Found and using another solution, so closing this