Skip to content

checkmk - Dockerinstallation

Verschoben checkmk
9 1 1.6k
  • Nachdem ich wieder ein wenig hier umgebaut habe, wollte ich eine checkmk Installation installieren. Aber wo? Ich habe hier eine pfSense, ok mit FreeBSD scheidet das als Installationsziel aus. Auf meinem ROCKPro64, mein neues NAS mit Debian Buster 10.1, scheiterte die Installation an nicht vorhandenem arm Pakete. Gut, das ich da noch über die Docker Installation gestolpert bin 🙂

    Da auf meinem Haupt-PC sowieso Docker installiert ist, bot sich das an es mal auszuprobieren.

    Die Anleitung zur Dockerinstallation findet man hier. https://checkmk.de/cms_introduction_docker.html

    Installation

    Docker

    apt install docker.io
    

    checkmk Container

    root@debian:~# docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
    Unable to find image 'checkmk/check-mk-raw:1.6.0-latest' locally
    1.6.0-latest: Pulling from checkmk/check-mk-raw
    8f91359f1fff: Pull complete 
    3d794619eec5: Pull complete 
    1468b0cb296b: Pull complete 
    787a36ef0a12: Pull complete 
    159fac9366a1: Pull complete 
    fefc9fe50b26: Pull complete 
    Digest: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Status: Downloaded newer image for checkmk/check-mk-raw:1.6.0-latest
    

    Nach der Installation müssen wir uns Logfile schauen, damit wir das Passwort bekommen.

    root@debian:~# docker container logs monitoring
    ### CREATING SITE 'cmk'
    Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
    Going to set TMPFS to off.
    Created new site cmk with version 1.6.0p5.cre.
    
      The site can be started with omd start cmk.
      The default web UI is available at http://xxxxxxxxxx/cmk/
    
      The admin user for the web applications is cmkadmin with password: password
      (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.
    )
      Please do a su - cmk for administration of this site.
    
    ### STARTING XINETD
    [ ok ] Starting internet superserver: xinetd.
    ### STARTING SITE
    Starting mkeventd...OK
    Starting rrdcached...OK
    Starting npcd...OK
    Starting nagios...OK
    Starting apache...OK
    Initializing Crontab...OK
    ### STARTING CRON
    ### CONTAINER STARTED
    

    Danach kann man den Container erreichen. Jetzt sollte man als erstes das generierte Passwort durch ein eigenes ersetzen. Dazu brauchen wird die ID des Containers

    root@frank-MS-7C37:~# docker ps
    CONTAINER ID   IMAGE                               COMMAND                  CREATED         STATUS                   PORTS                              NAMES
    b59475ab385b   checkmk/check-mk-raw:2.0.0-latest   "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes (healthy)   6557/tcp, 0.0.0.0:8080->5000/tcp   monitoring
    

    Jetzt einloggen

    root@frank-MS-7C37:~# docker exec -it b59475ab385b bash
    root@b59475ab385b:/# 
    

    Jetzt sind wir innerhalb des Docker Containers. Und nun das Passwort wechseln!!

    root@b59475ab385b:/# omd su cmk
    OMD[cmk]:~$ htpasswd etc/htpasswd cmkadmin
    New password: 
    Re-type new password: 
    Updating password for user cmkadmin
    

    Nun steht dem Einloggen nichts mehr im Wege.

    c76ff794-223f-452e-86ec-9f74459e1136-grafik.png

    Und hier nach dem Einloggen.

    7dd2a7a1-b89e-45cf-a228-e0645f55cbc0-grafik.png

    Sicherheit

    Bitte das hier unbedingt beachten. https://checkmk.de/cms_agent_linux.html#security

    Docker

    docker ps zeigt alle laufenden Docker Container an.

    root@debian:~# docker ps
    CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                  PORTS                              NAMES
    Container-ID        checkmk/check-mk-raw:1.6.0-latest   "/docker-entrypoint.…"   25 hours ago        Up 25 hours (healthy)   6557/tcp, 0.0.0.0:8080->5000/tcp   monitoring
    

    In die Kommandozeile des Containers wechseln.

    docker exec -it Container-ID bash
    

    Sicherheit der Agents

    Dazu bitte die Dokumentation beachten!

  • Ich hatte damals vergessen, die CheckMK Installation zu sichern. Jo, dann halt von vorne. Aber das ist bei den Dockerinstallationen für mich alles noch was neu 😉

    Backup erstellen

    24a87d1d-2951-4793-b60b-bf6d17d065f0-grafik.png

    Was muss in das Feld "Directory to save the backup to" rein!?!?!?

    Es hat etwas gedauert, bis es bei mir Klick gemacht hat. Wenn man sich in die Dockerinstallation einloggt

    docker exec -it Container-ID bash
    

    dann wird es etwas klarer. Wir bewegen uns ja in diesem Dateiverzeichnis.

    root@5e2e67e33438:/# ls -lha opt/omd/sites
    total 20K
    drwxr-xr-x 4 cmk  1001 4.0K Jun 12 22:27 .
    drwxr-xr-x 1 root root 4.0K Jun 10 18:52 ..
    drwxr-xr-x 3 cmk  1001 4.0K Jun 12 22:30 backup
    drwxr-xr-x 8 cmk  1001 4.0K Jun 11 20:23 cmk
    

    Das Verzeichnis backup habe ich angelegt. Danach konnte ich mit CheckMK ein Backup anlegen. Jo, aber wo liegen die Daten auf dem Host?

    Suche auf dem Host

    Beim Startaufruf, wird das hier übergeben.

    -v monitoring:/omd/sites
    

    In der Anleitung steht folgendes.

    Diese Option bindet die Daten der Instanz in diesem Container an eine persistente Stelle im Dateisystem des Docker-Node. Sie gehen daher nicht verloren, wenn der Container wieder entfernt wird.

    Ok. Hilft mir leider noch nicht so richtig. Weiter suchen....

    root@frank:/# docker volume inspect monitoring
    [
        {
            "CreatedAt": "2020-06-12T22:27:13+02:00",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/monitoring/_data",
            "Name": "monitoring",
            "Options": null,
            "Scope": "local"
        }
    ]
    

    Und hier finden wir dann den Mountpoint!

    root@frank:/# ls -lha /var/lib/docker/volumes/monitoring/_data
    insgesamt 16K
    drwxr-xr-x 4 frank omd  4,0K Jun 12 22:27 .
    drwxr-xr-x 3 root  root 4,0K Jun 11 20:23 ..
    drwxr-xr-x 3 frank omd  4,0K Jun 12 22:30 backup
    drwxr-xr-x 8 frank omd  4,0K Jun 11 20:23 cmk
    

    Die Gruppe omd habe ich eingetragen, muss ich noch mal testen ob das überhaupt sein muss. Wird ergänzt.....

    Und dort liegen jetzt die persistenten Daten der Docker Installation.

    root@frank:/# ls -lha /var/lib/docker/volumes/monitoring/_data/backup/
    insgesamt 12K
    drwxr-xr-x 3 frank omd        4,0K Jun 12 22:30 .
    drwxr-xr-x 4 frank omd        4,0K Jun 12 22:27 ..
    drwxrwxr-x 2 frank messagebus 4,0K Jun 12 22:30 Check_MK-5exxxxx3438-cmk-backup-complete
    

    Und dieses Backup kann ich mir dann auf mein NAS schieben 🙂

  • Auf meinem jetzigen Ubuntu 20.04 hatte ich das Problem, das ich checkmk nach einem Neustart nicht aufrufen konnte. Kurz mal ein wenig umgeschaut und dann klingelte es 😉

    systemctl enable docker
    

    Der Dienst Docker lief nicht. Problem gelöst.

  • Sichern der Backup Daten aus der CheckMK Installation

    rsync -av /var/lib/docker/volumes/monitoring/_data/backup/ /media/NAS/Dokumente/Sicherungen/checkmk
    
  • Das hat so nicht geklappt 😞

    Dann mal schauen, wie man es noch machen könnte. Docker Container sichern.

    Sicherung

    root@frank-MS-7C37:~# docker ps
    CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                 PORTS                              NAMES
    3ba19e0a9d12        checkmk/check-mk-raw:1.6.0-latest   "/docker-entrypoint.…"   14 hours ago        Up 2 hours (healthy)   6557/tcp, 0.0.0.0:8080->5000/tcp   monitoring
    
    root@frank-MS-7C37:~# docker commit -p 3ba19e0a9d12 checkmk_backup
    sha256:f75be0ea3c256be98979577b880d77718394352ab2b1551343a0a1a3db6a44dc
    
    root@frank-MS-7C37:~# docker ps
    CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                   PORTS                              NAMES
    3ba19e0a9d12        checkmk/check-mk-raw:1.6.0-latest   "/docker-entrypoint.…"   14 hours ago        Up 2 hours (unhealthy)   6557/tcp, 0.0.0.0:8080->5000/tcp   monitoring
    
    root@frank-MS-7C37:~# docker image ls
    REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
    checkmk_backup         latest              f75be0ea3c25        11 seconds ago      832MB
    checkmk/check-mk-raw   1.6.0-latest        c3efcf4b5c6e        2 weeks ago         830MB
    
    root@frank-MS-7C37:~# docker save -o checkmk_backup.tar checkmk_backup
    

    Danach haben wir eine Sicherung des Docker Containers auf der Platte.

    root@frank-MS-7C37:~# ls -lha
    insgesamt 827M
    drwx------  8 root root 4,0K Aug  1 09:57 .
    drwxr-xr-x 23 root root 4,0K Jul 26 11:14 ..
    -rw-------  1 root root 826M Aug  1 09:57 checkmk_backup.tar
    

    Den können wir jetzt noch packen

    root@frank-MS-7C37:~# gzip checkmk_backup.tar 
    root@frank-MS-7C37:~# ls -lha
    insgesamt 307M
    drwx------  8 root root 4,0K Aug  1 09:58 .
    drwxr-xr-x 23 root root 4,0K Jul 26 11:14 ..
    -rw-------  1 root root 307M Aug  1 09:57 checkmk_backup.tar.gz
    

    Wiederherstellung

    Ungetestet im Moment, kommt noch 😉

    docker load -i checkmk_backup.tar
    

    Starten des Containers dann mit

    docker container run -dit -p 8080:5000 --ulimit nofile=1024 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk_backup
    

    Quelle: https://www.laub-home.de/wiki/Docker_Backup_und_Restore_-_eine_kleine_Anleitung

  • Heute mal das Thema noch mal angefasst.

    Das Backup heute erstellt und ausprobiert. Läuft 😉

    root@:~# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                             PORTS                              NAMES
    a1ca31c7290b        checkmk_backup      "/docker-entrypoint.…"   31 seconds ago      Up 31 seconds (health: starting)   6557/tcp, 0.0.0.0:8080->5000/tcp   monitoring3
    
  • Das ganze jetzt auch mal praktisch umsetzen, damit der Docker Container auch immer schön gesichert wird.

    #!/bin/sh
    # Script sichert den Docker Container von checkmk. Das Script funktioniert nur, da ich nur EINEN
    # Docker Container laufen habe!
    
    # Wir holen uns die Ausgabe von docker ps
    docker ps > ps.txt
    
    # Mich interessiert nur die 2. Zeile
    tail -n 1 ps.txt > ps_2.txt
    
    # Wir brauchen die ID und speichern diese zwischen
    ID="$(cut -d' ' -f1 ps_2.txt)"
    echo $ID
    
    # Docker Container sichern!
    # Damit wird eine Docker Kopie angelegt.
    docker commit -p $ID checkmk_backup
    
    # Hiermit sichern wir den Docker Container als .tar File im angegebenen Pfad.
    docker save -o /root/checkmk_Docker_Container/checkmk_backup.tar checkmk_backup
    
    # Den gesicherten Container aufs NAS schieben
    rsync -av /root/checkmk_Docker_Container/ /media/NAS/Dokumente/Sicherungen/checkmk_Docker_Container
    
  • Meine Dockersicherungen versagen immer kläglich, so bald sich die Versionen bei checkmk ändern. Da ich dieses checkmk aber unbedingt brauche, habe ich das mal als Cloud Server bei Hetzner getestet. Da bekam ich beim kleinsten Server, beim Anlegen eines Hostes sofort Speicherprobleme (2GB). Ok, seltsam.. Dann habe ich den Server auf 4GB hoch skaliert. Danach lief es.

    Aber, jetzt das Problem. Das hätte ca. 72€ im Jahr nur fürs Monitoring verbrannt. Das war es mir nicht wert, obwohl für das Hobby schon der ein oder andere Euro drauf geht 🙂

    Also, kommt wieder eine Dockerinstallation auf meine Haupt-PC. Der ist sowieso an und ich weiß das das gut funktioniert. Habe heute im Eingangspost ein paar Anpassungen vorgenommen, was einem halt so auffällt bei einer Neuinstallation.

    Danach die ganzen Hosts anlegen, das muss ja einfacher gehen. In der Firma der SysAdmin importiert die ja auch. Also mal die checkmk Dokumentation durchsucht und fündig geworden.

    Unter Punkt 6 findet man Import von CSV Dateien.

    Das Beispiel aus der Dokumentation

    hostname;ip address;alias;agent;snmp_ds
    lnx17.example.com;192.168.178.48;Webserver;cmk-agent;
    lnx18.exmpl.com;192.168.178.55;Backupserver;cmk-agent;
    switch47-11;;Switch47;no-agent;snmp-v2
    

    Das bekommen wir hin, alle meine Server eingetragen,

    bf1ddc6f-c726-4c20-8c9c-9156b732a0b6-grafik.png

    Fertig, noch ein wenig Feinarbeit danach an den Diensten und es lief wieder.

  • Und noch was Wichtiges.

    6777da6e-3b4f-41b9-bf6e-26496ae67cd8-grafik.png

    Damit sichert man den Datenaustausch ab.

    Kapitel 7.4. Inbuilt encryption

    Den Ordner findet man hier -> /etc/check_mk/encryption.cfg

  • FrankMF FrankM verschob dieses Thema von Linux am
  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • 0 Stimmen
    1 Beiträge
    11 Aufrufe
    Niemand hat geantwortet
  • OpenCloud - Storage Backends testen

    OpenCloud opencloud linux docker
    2
    0 Stimmen
    2 Beiträge
    147 Aufrufe
    FrankMF
    So, mal weiter damit beschäftigen. Also, durch meine ganze Testerei war doch ein Haufen Müll angefallen. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 0fcd6f237898477b251f3dacb6cd083996092b783f991f899b06d89befc41b1e local 1d8df3f5d41613ad93ed753ce2102a14738cf00e8e7d127ec79881660be291ab local 3b612ce20b207c226640d6b84c32c788cd0fad9f9157578c2310f4b3db63dd29 local 5dfdde733fefb9fdb805acec8338a860762e88cd0753f4bb4098a19fbcd4b6c3 local 6bd5659759fb99b0d0613175d2392ca268dbdb3bd0353b85ccdf9a6004e798c0 local 6f8881420aa0e7713ed5308e635fcb9382939b6570afbd1d776866a07f6d61f2 local 29f7d20edd9eda935041cea7af5aab0af748175d7df8f345288463753d2afa9a local 66ca6287706aac5013b458a109e7c143c4fb177670734fc7a0f68495b1c62fd4 local 74d304835ef51f91226cc22dbbd494d2ddc9a4d91badf88814cae24126efd04a local 0203eb654c1f28a60899ded4660fb101ea222a5f8c86a225d39f3e5da877f1c0 local 271c474feb2ed915afb8efa85e422461fcfdf8acd4097355841eadf33847b7ef local 569a8c34804afd5861299973bed023c0146f40c0dbda0d980b8651bbcadc7fc9 local 655b1f446b5db9749787d4be4445887dcb3d19906d4244d059a0f292a6cd5f01 local 843bb8d0d7845adab06e146c44b153b842d5a1a1d8eb3972bdee1d3cbcb7e815 local 987ee19b8639ad5fffabba276ceb1ca09af6ebc66efb007e561570589c9c53a8 local 1004f5b7b161a4fe37a07d7960740e5cd09b90d5744f1922fb3e41c1265f800a local 2043c77b57728106cbcca8b7e2d3ae2f07ddf4ca44ee21fca232526c95e07381 local 3685c81df1be0061352dfc5b0e6db8d8d9f9b0915a271f1ca53d2796a7876805 local 9581abcfb4fb42b2fabfabbc8139cc4659ca83d92a8b60041957565409293ef4 local 796650f1fa887ff0b153822b268a10aa3579f4f2ca3ce6855ff292e49b3bb6b8 local 426251107e3131a250b27b96e795355332127f19ccf1ec8252860aff5d0caec8 local bd43ceef38448db348cc34e7dc5c4fee9c834d8b6c5957b1e6cdb83cec7b0974 local d94e7ce6c0fb1f4f7b811f624b4526ea889f2f8b99d2aa1b21e79d00dfeb38d0 local e87a27c307a8be80839fae1c006273d57570bb99f60c78c95e86a1e9ea1a786c local f2b3e30406db730e2a341850243c115b6eb231f30f41f5353c7b2427de39af75 local opencloud_full_certs local opencloud_full_opencloud-apps local opencloud_full_opencloud-config local opencloud_full_opencloud-data Oje, das sieht ziemlich vermüllt aus. Dann mal ganz mutig alles löschen. Vorher alles gestoppt. docker compose down Volume löschen, nur ein Beispiel docker volume rm opencloud_full_opencloud-data Alles gelöscht. Dann mal ein Neustart docker compose up -d Jetzt sieht das schon viel besser aus. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8 local opencloud_full_opencloud-apps Da ich neugierig bin, schauen wir mal rein. root@opencloud:~ ls -lha /var/lib/docker/volumes/3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8/_data/web/assets/apps/ total 8.0K drwxr-x--x 2 dockeruser dockeruser 4.0K May 19 18:25 . drwxr-x--x 3 dockeruser dockeruser 4.0K May 31 10:21 .. Vermutlich ein Speicher, wo die Web Apps was ablegen können. Der andere zeigt es dann klarer. root@opencloud-4gb-fsn1-2:~# ls -lha /var/lib/docker/volumes/opencloud_full_opencloud-apps/_data total 28K drwxr-x--x 7 dockeruser dockeruser 4.0K May 31 10:22 . drwx-----x 3 root root 4.0K May 31 10:21 .. drwxr-xr-x 2 root root 4.0K May 31 10:22 draw-io drwxr-xr-x 2 root root 4.0K May 31 10:21 external-sites drwxr-xr-x 3 root root 4.0K May 31 10:22 json-viewer drwxr-xr-x 2 root root 4.0K May 31 10:22 progress-bars drwxr-xr-x 3 root root 4.0K May 31 10:22 unzip Ok, das sollte mir erst mal reichen. Meine Installation lagert die certs ja aus, das habe ich im docker compose geändert. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ ls -lha certs/ total 44K drwxr-xr-x 2 dockeruser dockeruser 4.0K May 30 05:49 . drwxr-xr-x 6 dockeruser dockeruser 4.0K May 31 10:38 .. -rw------- 1 dockeruser dockeruser 33K May 29 11:00 acme.json Im docker-compose.yml volumes: - ./certs:/certs # bind-mount acme.json Der Grund dafür ist, das ich das docker-compose nicht als root laufen haben möchte. Die Hauptdaten sind nach lokal ausgelagert. OC_CONFIG_DIR=/home/dockeruser/oc_data/config OC_DATA_DIR=/home/dockeruser/oc_data/data Somit sollte jetzt alles so passen und ich muss mal langsam mit der Spielerei aufhören
  • Update 1.33.1

    Vaultwarden vaultwarden linux
    1
    0 Stimmen
    1 Beiträge
    154 Aufrufe
    Niemand hat geantwortet
  • Pycharm & Docker

    Verschoben Linux pycharm docker linux
    1
    4
    0 Stimmen
    1 Beiträge
    334 Aufrufe
    Niemand hat geantwortet
  • WLan auf der Konsole einrichten

    Angeheftet Linux linux quartz64 rockpro64
    3
    0 Stimmen
    3 Beiträge
    727 Aufrufe
    FrankMF
    Ich kann im Manjaro keine WPA3 Sicherheit auswählen, dann bekomme ich keine Verbindung. Es geht nur WPA2 Personal. Gegenstelle ist eine FRITZ!Box 6591 Cable. [image: 1638114013848-2021-11-28_16-37.png] In der Fritzbox sieht das so aus [image: 1638114096062-50d23aa8-5f67-485e-a994-244ef4f6a270-image.png] Das kam als Fehlermeldung Nov 28 11:03:07 frank-pc wpa_supplicant[700]: wlan0: Trying to associate with SSID 'FRITZ!Box 6591 Cable AK' Nov 28 11:03:07 frank-pc wpa_supplicant[700]: wlan0: WPA: Failed to select authenticated key management type Nov 28 11:03:07 frank-pc wpa_supplicant[700]: wlan0: WPA: Failed to set WPA key management and encryption suites Ich denke, der Treiber unterstützt das nicht.
  • NanoPI R2S - Snapshot aktualisieren

    NanoPi R2S nanopir2s openwrt linux
    3
    0 Stimmen
    3 Beiträge
    461 Aufrufe
    FrankMF
    @thrakath1980 Das kann ich Dir leider nicht beantworten. Denke aber, das es sinnvoll ist neu anzufangen. Welche Settings meinst Du? Ich würde mal /etc/config sichern. Da sollte das Meiste ja drin sein. Notifications? Hmm, ich hoffe das das funktioniert. Ich schau zur Sicherheit mal nach.
  • SCP mit IPv6 nutzen

    Linux linux
    1
    0 Stimmen
    1 Beiträge
    267 Aufrufe
    Niemand hat geantwortet
  • Restic - Backblaze B2 Cloud Storage

    Restic backblaze linux restic
    1
    2
    0 Stimmen
    1 Beiträge
    426 Aufrufe
    Niemand hat geantwortet