KVM: VM is locked (backup)

Falls mal wieder der Dump des KVM-Containers abgebrochen ist (wurde), kann beim stoppen folgende “Fehler-”meldung kommen.

localhost:~# qm stop 101
VM is locked (backup)

Damit das stoppen trotzdem funktioniert, muss der Container “ge-unlocked” werden :-)

localhost:~# qm unlock 101
localhost:~# qm stop 101

Icinga: Netways Heatmap funktioniert nicht

Wie im vorherigen Blogpost schon geschrieben, bin ich gerade an der Migration auf Icinga.
Ein weiteres Problem hat sich bei der Integration der Netways Heatmap ins Icinga-Web ergeben. Eigentlich sind es eher zwei Probleme.

Zum einen ist die Dokumenation etwas schlampig, was den Installationsvorgang betrifft.

https://www.netways.org/issues/655

Description

Wrong:
2) Install the plugin by typing “phing install” and answering the questions.

Correct:
2) Install the plugin by typing “php ./phing.php install-module” and answering the questions.

Otherwise the following error occurs:

php phing.php install
Buildfile: /home/icinga/build/heatmap-icinga-mod-1.1.0/build.xml
Overriding previous definition of reference to manifest
Overriding previous definition of reference to manifest

BUILD FAILED
Target ‘install’ does not exist in this project.
Total time: 0.0671 seconds

Zum anderen gibt es einen kleinen Bug in den Dateien. Dort wird überall immer noch nach einer Icinga.css gesucht. Richtig ist aber icinga.css.
Dies führt dann leider dazu, dass das CSS bei der Cronk-Installation nicht kopiert wird. Leider erscheint auch bei der Installation kein Fehler, so dass dies doppelt ärgerlich ist.

https://www.netways.org/issues/656

Description

Following files should be fixed from Icinga.css to icinga.css:

manifest.xml
<Extract mark=”%MODULE_Name%”>%PATH_Icinga%/pub/styles/Icinga.css</Extract>

src/app/modules/Heatmap/manifest.xml
<Extract mark=”%MODULE_Name%”>%PATH_Icinga%/pub/styles/Icinga.css</Extract>

Otherwise no grid will be visible in creation mask

Alternativ kann auch einfach ein symbolischer Link von Icinga.css auf icinga.css angelegt werden.

-rwxrwxr-x 1 www-data www-data 17938 15. Jun 11:01 icinga.css
lrwxrwxrwx 1 www-data www-data    10 14. Jun 15:30 Icinga.css -> icinga.css

Icinga: Business Process Addon funktioniert nicht

Ich bin gerade bei der Migration von Nagios zu Icinga. Das meiste läuft bis jetzt. Etwas Kopfzerbrechen hat mir die Integration des Business Process Addon ins Icinga-Web bereitet. Die Installation verlief so weit ohne Probleme. Leider war anschließend das editieren der Business Prozesse nicht möglich. Die Drop-Down-Felder für Hosts und Services blieben leer.

Zuerst habe ich an ein Problem mit dem mk-livestatus-Backend gedacht, zumal auch die Suche im Internet nichts gebracht hat. Auf einer Icinga-Mailinglist bin ich dann zumindest mal auf einen Hinweis gestoßen. Es gibt wohl in der veröffentlichten 1.4.0er Version von Icinga-Web (dort ist auch der BPA-Cronk integriert) einen kleinen Bug.

Den Diff aus dem Netways-Git gibts hier:

https://git.netways.org…

diff –git a/src/app/modules/Cronks/templates/bpAddon/ConfigCreaterSuccess.php b/src/app/modules/Cronks/templates/bpAddon/ConfigCreaterSuccess.php

index c23e106..749232a 100644 (file)
 
 
--- a/src/app/modules/Cronks/templates/bpAddon/ConfigCreaterSuccess.php
+++ b/src/app/modules/Cronks/templates/bpAddon/ConfigCreaterSuccess.php
@@ -337,6 +337,7 @@ Cronk.util.initEnvironment(< ?php CronksRequestUtil::echoJsonString($rd); ?>, fun
                hostStore: new Ext.data.JsonStore({
                        autoDestroy:false,
                        url: '< ?php echo $ro->gen("icinga.api");?>'+'/json',
+                       root: 'result',
                        idProperty: 'HOST_ID',
                        baseParams: {
                                'target' : 'host',
@@ -348,6 +349,7 @@ Cronk.util.initEnvironment(< ?php CronksRequestUtil::echoJsonString($rd); ?>, fun
 
                serviceStore: new Ext.data.JsonStore({
                        autoDestroy:false,
+                       root: 'result',
                        url: '< ?php echo $ro->gen("icinga.api");?>'+'/json',
                        idProperty: 'SERVICE_ID',
                        baseParams: {

Dateien unter Linux nach Datum löschen

Stellenweise muss man aus einem Verzeichnis alle Dateien löschen, die älter sind als n-Tage.
Die meisten Lösungen im Internet funktionieren zwar, sind jedoch nicht ganz korrekt.
Die Lösung, auf die gerne verwiesen wird, sieht folgendermaßen aus:

find /pfad -mtime +30 -exec rm {} \;

Dieses Beispiel funktioniert zwar im Regelfall, verkraftet jedoch nur eine bestimmte Anzahl an Dateien. Sind es zuviel, bricht der Versuch mit folgender Fehlermeldung ab

-bash: /usr/bin/find: Argument list too long

Richtig und ohne Fehlermeldung geht es mit xargs

find /pfad -mtime +30 | xargs rm

Roundcube Update (calendar, jqueryui)

Es ist mal wieder soweit … Ein neues Roundcube Update (0.5.2) steht wieder an. Nachdem ich das Problem mit Gdata dank eines älteren Blogeintrages diesemal souverän erledigen konnte, hat es beim Update des Calendar-Plugins etwas länger gedauert.
Manchmal sollte man nicht einfach nur lesen, sondern auch verstehen :-) Glücklicherweise gibt es ja den Source-Code dazu.

jqueryui plugin must be registered before calendar plugin.
    $plugins = $rcmail->config->get('plugins',array());
    foreach($plugins as $key){
      if($key == 'calendar'){
        die('jqueryui plugin must be registered before calendar plugin.');
      }
      if($key == 'jqueryui'){
        break;
      }
    }

Soweit so klar … Damit die Fehlermeldung verschwindet, muss wohl in der neuen Version von Roundcube in der Plugins-Variable $rcmail_config['plugins'] unter ../config/main.inc.php eine gewisse Reihenfolge eingehalten werden.

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array(...,"jqueryui","calendar",...);

Wird an dieser Stelle das jqueryui-Plugin vor dem calendar-Plugin geladen, funktioniert es wie gewohnt.

Damit die Fehlermeldung

SERVICE CURRENTLY NOT AVAILABLE!
 
Error No. [500]

verschwindet, muss noch das Datenbank-Update unter ../roundcubemail-0.5.2/plugins/calendar/SQL/mysql.sql eingespielt werden.