Trying icinga2 and icingaweb2 with Docker

In case you ever wanted to look at Icinga2, even into distributed features, without messing with installing whole server setups, this might interesting for you.

At first, you need to have a running Docker on your system. For more information, have a look into my previous post!

Initiating Docker images

$ git clone https://github.com/joshuacox/docker-icinga2.git && \
  cd docker-icinga2
$ make temp
[...]
$ make grab
[...]
$ make prod
[...]

Setting IcingaWeb2 password

(Or using the default one)

$ make enter
docker exec -i -t `cat cid` /bin/bash
root@ce705e592611:/# openssl passwd -1 f00b4r
$1$jgAqBcIm$aQxyTPIniE1hx4VtIsWvt/
root@ce705e592611:/# mysql -h mysql icingaweb2 -p -e \
  "UPDATE icingaweb_user SET password_hash='$1$jgAqBcIm$aQxyTPIniE1hx4VtIsWvt/' WHERE name='icingaadmin';"
Enter password:
root@ce705e592611:/# exit

Setting Icinga Classic UI password

$ make enter
docker exec -i -t `cat cid` /bin/bash
root@ce705e592611:/# htpasswd /etc/icinga2-classicui/htpasswd.users icingaadmin
New password: 
Re-type new password: 
Adding password for user icingaadmin
root@ce705e592611:/# exit

Cleaning things up and making permanent

$ docker stop icinga2 && docker stop icinga2-mysql
icinga2
icinga2-mysql
$ cp -a /tmp/datadir ~/docker-icinga2.datadir
$ echo "~/docker-icinga2.datadir" > ./DATADIR
$ docker start icinga2-mysql && rm cid && docker rm icinga2 && \
  make runprod
icinga2-mysql
icinga2
chmod 777 /tmp/tmp.08c34zjRMpDOCKERTMP
d34d56258d50957492560f481093525795d547a1c8fc985e178b2a29b313d47a

Now you should be able to access the IcingaWeb2 web interface on http://localhost:4080/icingaweb2 and the Icinga Classic UI web interface at http://localhost:4080/icinga2-classicui.

For further information about this Docker setup please consult the documentation written by Joshua Cox who has worked on this project. For information about Icinga2 itself, please have a look into the Icinga2 Documentation.