for from https://github.com/schakko/monitord
developer | 12 years ago | ||
jthread-1.2.1 | 12 years ago | ||
lame | 12 years ago | ||
lame-3.97 | 12 years ago | ||
m4 | 12 years ago | ||
monitord | 9 years ago | ||
sample-config | 12 years ago | ||
simpleopt | 9 years ago | ||
win32-nsis | 12 years ago | ||
xmlParser | 12 years ago | ||
.gitignore | 9 years ago | ||
Makefile.am | 9 years ago | ||
README.md | 9 years ago | ||
autogen.sh | 12 years ago | ||
configure.ac | 9 years ago | ||
cxxdll.def | 12 years ago | ||
dispatcher.lua | 12 years ago | ||
win32vars.sh | 12 years ago |
monitord ist ein Funkauswerter fuer die Protokolle ZVEI, Pocsag und FMS. Das eigentliche monitord-Projekt liegt auf www.monitord.de. Da die Entwicklung allerdings nicht mehr sonderlich aktiv ist, habe ich hier bei GitHub das Repository geklont.
Dies Repo ist nur ein Klon vom SVN-Repo. Sollten dort Änderungen auftauchen, werde ich sie hier zurückspielen. Ich bin weder Leiter des Projekts noch Ansprechpartner für irgendwelche Protokollfragen :-)
yum install autoconf automake libtool pkg-config alsa-lib-devel lua-devel aclocal -Im4 ./autogen.sh ./configure && make && make install
Die monitord-Version aus dem Subversion-Repository beinhaltet einen einfachen Logging-Mechanismus, der i.a.R. auch ausreicht. Will man allerdings File-Rolling haben, braucht man einen anderen Logging-Provider. Aus diesem Grund habe ich log4cxx integriert.
log4cxx muss selbst gebaut werden. Die aktuelle Version 0.10.0 enthält zwei Fehler, die mit einem Patch gefixt werden können.
# nötige Libs yum install apr apr-util apr-devel apr-util-devel # unter Ubuntu: # apt-get install libaprutil1-dev # log4cxx von einer passenden Location herunterladen wget $apache-log4cxx-0.10.0.tar.gz tar -xvf apache-log4cxx-0.10.0.tar.gz # Patch von Markus Mazurczak einspielen # siehe http://markus-mazurczak.de/?p=76 ./configure && make && make install
Da log4cxx standardmäßig keine pkg-config-Datei erzeugt, muss der Pfad zu den Include-Dateien bei der Kompilierung von monitord manuell mit angegeben werden:
./configure --with-log4cxx --with-log4cxx-includes=/pfad-zu-log4cxx-includes
In der monitord.xml gibt es nur zwei Sachen zu konfigurieren:
<monitordconfig> <logfile>log4cxx</logfile> <log4cxxConfig>/pfad/zu/log4cxx.properties</log4cxxConfig> ... </monitordconfig>
Sobald logfile auf 'log4cxx' gestellt ist, wird log4cxx auch benutzt. log4cxxConfig kann zu einer log4cxx.properties oder log4cxx.xml verweisen. Wird keine definiert, werden die Default-log4cxx-Einstellungen benutzt.
ActiveMQ ist eine Messaging Queue, die nach dem Pub/Sub-Verfahren arbeitet. Das Plugin libmplugin_activemq pusht automatisch alle eingehenden Nachrichten (ZVEI, Pocsag, FMS) in die hinterlegte Queue. Andere Clients können darauf zugreifen und die Nachrichten dementsprechend verarbeiten. Entweder muss das Paket activemq-cpp selbst kompiliert werden oder aber man zieht es sich aus einem RPM-/Deb-Repository.
yum install activemq-cpp
Danach muss monitord mit den Parametern
./configure --enable-plugins --with-activemq
kompiliert werden.
yum install gcc-c++ openssl-devel apr-devel wget ...activemq-cpp-library-3.8.4.zip unzip activemq-cpp-library-3.8.4.zip cd activemq-cpp-library-3.8.4 ./configure --disable-ssl make && make install cd monitord
Danach muss monitord mit den Parametern
CPPFLAGS=`activemqcpp-config --includes` ./configure --enable-plugins --with-activemq
monitord kompiliert werden.
Das Plugin wird in der monitord.xml folgendermaßen konfiguriert:
<dataplugins> <plugin name="activemq"> <file>plugins/libmplugin_activemq.so</file> <parameters> <logfile>activemq.log</logfile> <loglevel>DEBUG</loglevel> <brokerUri>tcp://127.0.0.1:61616</brokerUri> <username>your_username_or_empty</username> <password>your_password_or_empty</password> <clientId>your_clientid_or_empty</clientId> <sendTimeout>5</sendTimeout> <closeTimeout>5</closeTimeout> <producerWindowSize>5</producerWindowSize> <useCompression>1</useCompression> <clientAck>0</clientAck> <!-- generic configuration --> <useTopic>1</useTopic> <deliveryModePersistent>0</deliveryModePersistent> <destUri>zabos</destUri> <!-- overwrite generic configuration for FMS --> <topic type="fms"> <destUri>zabos.fms</destUri> </topic> <!-- overwrite gneric configuration for POCSAG --> <topic type="pocsag"> <useTopic>0</useTopic> <!-- destUri is still zabos, imported by generic configuration --> </topic> <!-- ZVEI is not defined, so generic configuration is used --> </parameters> </plugin> </dataplugins>
Bitte beachten: Der XML-Parser von monitord unterstützt keine leeren Tags (also oder ). Sollte die Konfiguration dennoch einen solchen enthalten, gibt es einen Segmentation Fault.
Je nach Einsatz kann es sein, dass die Verbindung zwischen monitord und dem ActiveMQ-Broker abbricht. Dies kann zum Beispiel auftreten, wenn es Probleme mit der TCP-Verbindung gibt oder aber der Broker zwischenzeitlich neugestartet worden ist. Um darauf zu reagieren, kann der ActiveMQ-Client ein Failover nutzen:
<monitordconfig version="1.0"> <!-- ... --> <brokerUri>failover://(tcp://127.0.0.1:61616)</brokerUri> <!-- ... --> </monitordconfig>
bzw. wenn mehrere Broker genutzt werden sollen:
<monitordconfig version="1.0"> <!-- ... --> <brokerUri>failover://(tcp://192.168.0.1:61616,192.168.0.2:61616)</brokerUri> <!-- ... --> </monitordconfig>