Irgendjemand wird doch wohl mit dem Monitord Aktionen ausführen lassen...
Wie stellt ihr das denn an? Bzw. hat jemand eine Beispiel-Datei für mich?
Irgendjemand wird doch wohl mit dem Monitord Aktionen ausführen lassen...
Wie stellt ihr das denn an? Bzw. hat jemand eine Beispiel-Datei für mich?
Sorry für das Triple-Posting, aber ich habe noch eine (wie ich vermute) letzte Frage, nachdem ich nun MySQL und LUA am Laufen habe (sobald alles funktioniert werde ich hier auch gern nochmal ein HowTo schreiben):
Wenn eine Tonfolge kommt, schreibt mir der Monitord ins Log:
Hat einer eine Idee wo das Problem liegen könnte? An der LUA-Installation selbst vermutlich nicht, da im Log kurz vorher ebenfalls stehtCode:15:22:14.493 ERROR: monitord/PluginThread.cpp(273) Fehler beim Aufruf lua dispatcher script:attempt to call a nil value 15:22:14.493 ERROR: monitord/PluginThread.cpp(280) nicht-numerische Antwort vom lua dispatcher script
, das scheint also schonmal zu funktionieren.Code:15:16:22.681 INFO: monitord/PluginThread.cpp(182) Successfully loaded LUA filter: pluginfilter.lua
Da der LUA-Dispatcher wohl ein globaler Filter ist, wird somit mein Programmaufruf in der pluginfilter.lua auch nicht bearbeitet.
Die entsprechenden Zeilen in der PluginThread.cpp auszukommentieren bringt wohl auch nichts, dafür sind sie zu eng mit dem Rest verwoben.
Moinmoin,
das tut bei mir seit längerem famos.function pluginFilter()
if (arg["plugin_name"]=="mysql") then
if(arg["channelnum"] == "0" and arg["typ"] == "zvei" and string.sub(arg["zvei"], 0, 3) == "234") then
toexecute = "start cmd /c d:\\xampplite\\php\\php.exe D:\\Programme\\monitord\\meinscriptname.php " .. arg['zvei'] ;
os.execute(toexecute);
end
end
-- change return value in next line to "return 1" to enable filtering defined above!
return 0;
end
Zur Fehlermeldung: "nil value" heißt, dass in der Regel eine Variable nicht belegt ist oder nicht existiert. Das verwundert mich etwas, denn Dein Skript kam mir jetzt nicht spontan falsch vor - die Methode "pluginFilter" existiert und wird ausgeführt, ja?
Viele Grüße
Martin
Hallo Martin,
vielen Dank für deinen Beitrag. Ich habe die entsprechenden Zeilen in der PluginThread.cpp von Hand auskommentiert und die Variable z von Hand so gesetzt dass gar nichts gefiltert wird und somit auch keine Fehlermeldung mehr kommt, warum auch immer diese generiert wurde da dieser Aufruf ja meiner Ansicht nach nicht auf eine (Fehl-)Konfiguration des Benutzers zurückzuführen ist sondern direkt aus dem normalen Quelltext kommt. Die Methode pluginFilter existiert und wird auch offensichtlich aufgerufen. MySQL lief tapfer weiter und schrieb jede Alarmierung in die Datenbank, aber mein Programm konnte ich einfach nicht zur Ausführung bringen. Mittlerweile habe ich wieder einen Schritt zurück zum alten monitor gemacht, der bringt nachdem ich auch dort einen Fehler beheben konnte die gewünschten Ergebnisse. Das Projekt Monitord habe ich deswegen für mich persönlich vorerst begraben.
Für alle, die an der Kompilierung mit MySQL- und LUA-Unterstützung verzweifeln, hier nochmal mein configure-Aufruf. Vielleicht hilft es jemandem und die Arbeit war nicht ganz umsonst (OS: (X)Ubuntu 10.04):
Zuerst müssen noch zwei benötigte Pakete nachinstalliert werden, es gibt vermutlich noch weitere Abhängigkeiten die dann aber durch die Paketverwaltung von alleine aufgelöst werden:
danach kann kompiliert werden, hier mein ./configure-Aufruf:Code:sudo apt-get install libmysql++-dev liblua5.1-dev
Erläuterung:Code:./configure --enable-plugins --with-mysql --with-lua-includes=/usr/include/lua5.1 --with-lua-suffix=5.1
/usr/include/lua5.1 ist der Pfad in denen sich die LUA-Dateien befinden, in meinem Fall LUA 5.1 - LUA 5.0 liegt im Ordner lua50, 4.0 im Ordner lua40, einfach mal nachschauen welche Version man hat und wo sich die Dateien bei einem befinden.
lua-suffix ist einfach die LUA-Versionsnummer. Es hat mich SEHR viel Zeit gekostet um zu dieser Erkenntnis zu kommen ;-)
Wie gesagt, ich hoffe dass vielleicht jemand von dem hier profitiert, damit es nicht ganz umsonst war.
Geändert von Allmächtiger (12.01.2012 um 16:50 Uhr)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)