Nodeside PUSH

The forum for help and support with FreeNATS as well as any useful hints and tips
Post Reply
aday
Posts: 10
Joined: Sun Jun 08, 2008 3:02 am
Location: Australia/Melbourne
Contact:

Nodeside PUSH

Post by aday » Mon Aug 11, 2008 7:39 am

Hi!

Am I missing somthing here?
Trying to do a nodeside push in v1.

root@amane:/root/freenats/posix# php freenats-node.php
Server Returned Error: XML Error: XML Error XML declaration not finished at line 1

I've pretty much gone though and filled out the node keys and any other configuration needed for the push method, but I can not pass GO.

It's gotta be push on that server -- I have'nt tried the pull method yet .. mostly because I really dont want to run apache on that server - Its strictly a virtualizer

Am I missing some php-xml package on the FreeNATS server?

FREENATS SERVER
root@kasumi:/var/www/aday/dev# dpkg -l |grep xml
ii libxml2 2.6.27.dfsg-2 GNOME XML library
ii php-xml-parser 1.2.6-2 PHP PEAR module for parsing XML
ii php-xml-util 1.1.1-3 a XML utility for php-pear

Any ideas?

Heellppp???
Thanks :)


~ Aday
web:// aday.net.au

dave
Site Admin
Posts: 260
Joined: Fri May 30, 2008 9:09 pm
Location: UK
Contact:

Re: Nodeside PUSH

Post by dave » Mon Aug 11, 2008 6:08 pm

Hi Aday,

Urp. Well... Hmm... The nodeside script doesn't need any XML libs, just PHP 5 so it can do an HTTP-POST which is obviously working as you're getting a response back from the server.

As for the server I doubt it's a library problem or similar as you are getting a "correct" XML error which means the XML parsing functions have fired etc etc but found an error. The weird thing is it's at line one which would indicate there's something pretty seriously up.

We have had a few issues with non-UTF chars from countries using them but that will normally give a much later line number as the header etc will be ok at least (and also shouldn't apply to you).

Try:

Code: Select all

php freenats-node.php -d > testfile.xml
That should output the XML that would have been posted to testfile.xml and display any errors on the console as it's being run. I haven't doc'd nodeside testing development yet so there's no example output but it should look something like...

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<freenats-data>
 <header>
  <name>FreeNATS Posix Node XML</name>
  <version>0.02</version>
 </header>

 <test NAME="fnn.version">
  <name>fnn.version</name>
  <desc>FreeNATS Node Version</desc>
  <value>0.02</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="fnn.name">
  <name>fnn.name</name>
  <desc>FreeNATS Node Type</desc>
  <value>Posix XML</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="uptime.1m">
  <name>uptime.1m</name>
  <desc>One Minute Load Average</desc>
  <value>0.02</value>
  <alertlevel>0</alertlevel>
 </test>
... loads more tests ...
</freenats-data>
If possible could you post this and your config.inc.php to the forum (or email direct if better or secret data contained within - you have my address).

Can you also try editing the config and setting ALL the test types to false and see what happens - this should overcome any weird permission errors etc etc being included in the XML somehow and messing it up.

So far you're the second person (other than me) running nodeside testing and, ahem, the second person who has had problems and needed bugs ironing out. Well at least it's a 100% rate of some type ;o)

Let me know how you get on.

Regards,

Dave.

aday
Posts: 10
Joined: Sun Jun 08, 2008 3:02 am
Location: Australia/Melbourne
Contact:

Re: Nodeside PUSH

Post by aday » Tue Aug 12, 2008 5:50 am

Ok

I've gone though and done the following like you suggested.
And here are the results.

php freenats-node.php -d > testfile.xml
testfile.xml

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<freenats-data>
 <header>
  <name>FreeNATS Posix Node XML</name>
  <version>0.02</version>
 </header>

 <test NAME="fnn.version">
  <name>fnn.version</name>
  <desc>FreeNATS Node Version</desc>
  <value>0.02</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="fnn.name">
  <name>fnn.name</name>
  <desc>FreeNATS Node Type</desc>
  <value>Posix XML</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="uptime.1m">
  <name>uptime.1m</name>
  <desc>One Minute Load Average</desc>
  <value>0.25</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="uptime.5m">
  <name>uptime.5m</name>
  <desc>Five Minute Load Average</desc>
  <value>0.19</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="uptime.15m">
  <name>uptime.15m</name>
  <desc>Fifteen Minute Load Average</desc>
  <value>0.28</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="uptime.users">
  <name>uptime.users</name>
  <desc>Logged in Users</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="systime.x">
  <name>systime.x</name>
  <desc>Node Time (Seconds Since Epoch)</desc>
  <value>1218515691</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="systime.utf">
  <name>systime.utf</name>
  <desc>Node Time (UTF)</desc>
  <value>2008-08-12 14:34:51</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="systime.dts">
  <name>systime.dts</name>
  <desc>Note Time</desc>
  <value>14:34:51 12/08/2008</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="systime.sph">
  <name>systime.sph</name>
  <desc>Seconds Past Hour</desc>
  <value>2091</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/cciss/c0d0p1.size">
  <name>/dev/cciss/c0d0p1.size</name>
  <desc>Total Size of /dev/cciss/c0d0p1 (/) (Mb)</desc>
  <value>66021.64</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/cciss/c0d0p1.used">
  <name>/dev/cciss/c0d0p1.used</name>
  <desc>Space Used on /dev/cciss/c0d0p1 (/) (Mb)</desc>
  <value>62280.09</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/cciss/c0d0p1.free">
  <name>/dev/cciss/c0d0p1.free</name>
  <desc>Space Free on /dev/cciss/c0d0p1 (/) (Mb)</desc>
  <value>387.76</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/cciss/c0d0p1.perc">
  <name>/dev/cciss/c0d0p1.perc</name>
  <desc>Percentage Used on /dev/cciss/c0d0p1 (/)</desc>
  <value>10</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.size">
  <name>tmpfs.size</name>
  <desc>Total Size of tmpfs (/lib/init/rw) (Mb)</desc>
  <value>1006.38</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.used">
  <name>tmpfs.used</name>
  <desc>Space Used on tmpfs (/lib/init/rw) (Mb)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.free">
  <name>tmpfs.free</name>
  <desc>Space Free on tmpfs (/lib/init/rw) (Mb)</desc>
  <value>1006.38</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.perc">
  <name>tmpfs.perc</name>
  <desc>Percentage Used on tmpfs (/lib/init/rw)</desc>
  <value>0%</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="udev.size">
  <name>udev.size</name>
  <desc>Total Size of udev (/dev) (Mb)</desc>
  <value>10</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="udev.used">
  <name>udev.used</name>
  <desc>Space Used on udev (/dev) (Mb)</desc>
  <value>0.07</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="udev.free">
  <name>udev.free</name>
  <desc>Space Free on udev (/dev) (Mb)</desc>
  <value>9.93</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="udev.perc">
  <name>udev.perc</name>
  <desc>Percentage Used on udev (/dev)</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.size">
  <name>tmpfs.size</name>
  <desc>Total Size of tmpfs (/dev/shm) (Mb)</desc>
  <value>1006.38</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.used">
  <name>tmpfs.used</name>
  <desc>Space Used on tmpfs (/dev/shm) (Mb)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.free">
  <name>tmpfs.free</name>
  <desc>Space Free on tmpfs (/dev/shm) (Mb)</desc>
  <value>1006.38</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="tmpfs.perc">
  <name>tmpfs.perc</name>
  <desc>Percentage Used on tmpfs (/dev/shm)</desc>
  <value>0%</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/sda1.size">
  <name>/dev/sda1.size</name>
  <desc>Total Size of /dev/sda1 (/mnt/ext) (Mb)</desc>
  <value>704175.51</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/sda1.used">
  <name>/dev/sda1.used</name>
  <desc>Space Used on /dev/sda1 (/mnt/ext) (Mb)</desc>
  <value>172349.55</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/sda1.free">
  <name>/dev/sda1.free</name>
  <desc>Space Free on /dev/sda1 (/mnt/ext) (Mb)</desc>
  <value>496055.84</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="/dev/sda1.perc">
  <name>/dev/sda1.perc</name>
  <desc>Percentage Used on /dev/sda1 (/mnt/ext)</desc>
  <value>26</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="mem.total">
  <name>mem.total</name>
  <desc>System Memory Total (Mb)</desc>
  <value>2012.758</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="mem.used">
  <name>mem.used</name>
  <desc>System Memory Used (Mb)</desc>
  <value>1997.063</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="mem.free">
  <name>mem.free</name>
  <desc>System Memory Free (Mb)</desc>
  <value>15.695</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="mem.free.perc">
  <name>mem.free.perc</name>
  <desc>System Memory Free (%)</desc>
  <value>0.78</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="mem.used.perc">
  <name>mem.used.perc</name>
  <desc>System Memory Used (%)</desc>
  <value>99.22</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="swap.total">
  <name>swap.total</name>
  <desc>System Swap File Total (Mb)</desc>
  <value>2894.484</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="swap.used">
  <name>swap.used</name>
  <desc>System Swap File Used (Mb)</desc>
  <value>0.066</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="swap.free">
  <name>swap.free</name>
  <desc>System Swap File Free (Mb)</desc>
  <value>2894.418</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="swap.free.perc">
  <name>swap.free.perc</name>
  <desc>System Swap File Free (%)</desc>
  <value>100</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="swap.used.perc">
  <name>swap.used.perc</name>
  <desc>System Swap File Used (%)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo.rxt">
  <name>net.lo.rxt</name>
  <desc>Total Received on Interface lo (bytes)</desc>
  <value>13049</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo.txt">
  <name>net.lo.txt</name>
  <desc>Total Sent on Interface lo (bytes)</desc>
  <value>13049</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo.trt">
  <name>net.lo.trt</name>
  <desc>Total Passed on Interface lo (bytes)</desc>
  <value>26098</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo.rx">
  <name>net.lo.rx</name>
  <desc>Receive Speed on lo (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo.tx">
  <name>net.lo.tx</name>
  <desc>Transmit Speed on lo (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo">
  <name>net.lo</name>
  <desc>Combined Speed on lo (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.lo.elapsed">
  <name>net.lo.elapsed</name>
  <desc>Speed Sample Time on lo (secs)</desc>
  <value>9225</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1.rxt">
  <name>net.eth1.rxt</name>
  <desc>Total Received on Interface eth1 (bytes)</desc>
  <value>32816885039</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1.txt">
  <name>net.eth1.txt</name>
  <desc>Total Sent on Interface eth1 (bytes)</desc>
  <value>328953435646</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1.trt">
  <name>net.eth1.trt</name>
  <desc>Total Passed on Interface eth1 (bytes)</desc>
  <value>361770320685</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1.rx">
  <name>net.eth1.rx</name>
  <desc>Receive Speed on eth1 (kbyte/s)</desc>
  <value>7.81768737297</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1.tx">
  <name>net.eth1.tx</name>
  <desc>Transmit Speed on eth1 (kbyte/s)</desc>
  <value>42.8681729548</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1">
  <name>net.eth1</name>
  <desc>Combined Speed on eth1 (kbyte/s)</desc>
  <value>50.6858603277</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth1.elapsed">
  <name>net.eth1.elapsed</name>
  <desc>Speed Sample Time on eth1 (secs)</desc>
  <value>9225</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0.rxt">
  <name>net.eth0.rxt</name>
  <desc>Total Received on Interface eth0 (bytes)</desc>
  <value>190906195496</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0.txt">
  <name>net.eth0.txt</name>
  <desc>Total Sent on Interface eth0 (bytes)</desc>
  <value>35948288205</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0.trt">
  <name>net.eth0.trt</name>
  <desc>Total Passed on Interface eth0 (bytes)</desc>
  <value>226854483701</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0.rx">
  <name>net.eth0.rx</name>
  <desc>Receive Speed on eth0 (kbyte/s)</desc>
  <value>0.550958989668</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0.tx">
  <name>net.eth0.tx</name>
  <desc>Transmit Speed on eth0 (kbyte/s)</desc>
  <value>3.1660059917</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0">
  <name>net.eth0</name>
  <desc>Combined Speed on eth0 (kbyte/s)</desc>
  <value>3.71696498137</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.eth0.elapsed">
  <name>net.eth0.elapsed</name>
  <desc>Speed Sample Time on eth0 (secs)</desc>
  <value>9225</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0.rxt">
  <name>net.sit0.rxt</name>
  <desc>Total Received on Interface sit0 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0.txt">
  <name>net.sit0.txt</name>
  <desc>Total Sent on Interface sit0 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0.trt">
  <name>net.sit0.trt</name>
  <desc>Total Passed on Interface sit0 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0.rx">
  <name>net.sit0.rx</name>
  <desc>Receive Speed on sit0 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0.tx">
  <name>net.sit0.tx</name>
  <desc>Transmit Speed on sit0 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0">
  <name>net.sit0</name>
  <desc>Combined Speed on sit0 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.sit0.elapsed">
  <name>net.sit0.elapsed</name>
  <desc>Speed Sample Time on sit0 (secs)</desc>
  <value>9225</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8.rxt">
  <name>net.vmnet8.rxt</name>
  <desc>Total Received on Interface vmnet8 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8.txt">
  <name>net.vmnet8.txt</name>
  <desc>Total Sent on Interface vmnet8 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8.trt">
  <name>net.vmnet8.trt</name>
  <desc>Total Passed on Interface vmnet8 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8.rx">
  <name>net.vmnet8.rx</name>
  <desc>Receive Speed on vmnet8 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8.tx">
  <name>net.vmnet8.tx</name>
  <desc>Transmit Speed on vmnet8 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8">
  <name>net.vmnet8</name>
  <desc>Combined Speed on vmnet8 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet8.elapsed">
  <name>net.vmnet8.elapsed</name>
  <desc>Speed Sample Time on vmnet8 (secs)</desc>
  <value>9225</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1.rxt">
  <name>net.vmnet1.rxt</name>
  <desc>Total Received on Interface vmnet1 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1.txt">
  <name>net.vmnet1.txt</name>
  <desc>Total Sent on Interface vmnet1 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1.trt">
  <name>net.vmnet1.trt</name>
  <desc>Total Passed on Interface vmnet1 (bytes)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1.rx">
  <name>net.vmnet1.rx</name>
  <desc>Receive Speed on vmnet1 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1.tx">
  <name>net.vmnet1.tx</name>
  <desc>Transmit Speed on vmnet1 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1">
  <name>net.vmnet1</name>
  <desc>Combined Speed on vmnet1 (kbyte/s)</desc>
  <value>0</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="net.vmnet1.elapsed">
  <name>net.vmnet1.elapsed</name>
  <desc>Speed Sample Time on vmnet1 (secs)</desc>
  <value>9225</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.init">
  <name>ps.init</name>
  <desc>Number of init Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.migration/0">
  <name>ps.migration/0</name>
  <desc>Number of migration/0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.ksoftirqd/0">
  <name>ps.ksoftirqd/0</name>
  <desc>Number of ksoftirqd/0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.watchdog/0">
  <name>ps.watchdog/0</name>
  <desc>Number of watchdog/0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.migration/1">
  <name>ps.migration/1</name>
  <desc>Number of migration/1 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.ksoftirqd/1">
  <name>ps.ksoftirqd/1</name>
  <desc>Number of ksoftirqd/1 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.watchdog/1">
  <name>ps.watchdog/1</name>
  <desc>Number of watchdog/1 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.migration/2">
  <name>ps.migration/2</name>
  <desc>Number of migration/2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.ksoftirqd/2">
  <name>ps.ksoftirqd/2</name>
  <desc>Number of ksoftirqd/2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.watchdog/2">
  <name>ps.watchdog/2</name>
  <desc>Number of watchdog/2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.migration/3">
  <name>ps.migration/3</name>
  <desc>Number of migration/3 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.ksoftirqd/3">
  <name>ps.ksoftirqd/3</name>
  <desc>Number of ksoftirqd/3 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.watchdog/3">
  <name>ps.watchdog/3</name>
  <desc>Number of watchdog/3 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.events/0">
  <name>ps.events/0</name>
  <desc>Number of events/0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.events/1">
  <name>ps.events/1</name>
  <desc>Number of events/1 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.events/2">
  <name>ps.events/2</name>
  <desc>Number of events/2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.events/3">
  <name>ps.events/3</name>
  <desc>Number of events/3 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.khelper">
  <name>ps.khelper</name>
  <desc>Number of khelper Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kthread">
  <name>ps.kthread</name>
  <desc>Number of kthread Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kblockd/0">
  <name>ps.kblockd/0</name>
  <desc>Number of kblockd/0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kblockd/1">
  <name>ps.kblockd/1</name>
  <desc>Number of kblockd/1 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kblockd/2">
  <name>ps.kblockd/2</name>
  <desc>Number of kblockd/2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kblockd/3">
  <name>ps.kblockd/3</name>
  <desc>Number of kblockd/3 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kacpid">
  <name>ps.kacpid</name>
  <desc>Number of kacpid Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.khubd">
  <name>ps.khubd</name>
  <desc>Number of khubd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kseriod">
  <name>ps.kseriod</name>
  <desc>Number of kseriod Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kswapd0">
  <name>ps.kswapd0</name>
  <desc>Number of kswapd0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.aio/0">
  <name>ps.aio/0</name>
  <desc>Number of aio/0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.aio/1">
  <name>ps.aio/1</name>
  <desc>Number of aio/1 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.aio/2">
  <name>ps.aio/2</name>
  <desc>Number of aio/2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.aio/3">
  <name>ps.aio/3</name>
  <desc>Number of aio/3 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.scsi_eh_0">
  <name>ps.scsi_eh_0</name>
  <desc>Number of scsi_eh_0 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kjournald">
  <name>ps.kjournald</name>
  <desc>Number of kjournald Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.udevd">
  <name>ps.udevd</name>
  <desc>Number of udevd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kpsmoused">
  <name>ps.kpsmoused</name>
  <desc>Number of kpsmoused Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.kmirrord">
  <name>ps.kmirrord</name>
  <desc>Number of kmirrord Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.syslogd">
  <name>ps.syslogd</name>
  <desc>Number of syslogd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.klogd">
  <name>ps.klogd</name>
  <desc>Number of klogd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.acpid">
  <name>ps.acpid</name>
  <desc>Number of acpid Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.inetd">
  <name>ps.inetd</name>
  <desc>Number of inetd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.sshd">
  <name>ps.sshd</name>
  <desc>Number of sshd Processes</desc>
  <value>3</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.cron">
  <name>ps.cron</name>
  <desc>Number of cron Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.vmnet-bridge">
  <name>ps.vmnet-bridge</name>
  <desc>Number of vmnet-bridge Processes</desc>
  <value>2</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.vmnet-natd">
  <name>ps.vmnet-natd</name>
  <desc>Number of vmnet-natd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.vmware-serverd">
  <name>ps.vmware-serverd</name>
  <desc>Number of vmware-serverd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.httpd.vmware">
  <name>ps.httpd.vmware</name>
  <desc>Number of httpd.vmware Processes</desc>
  <value>4</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.vmnet-netifup">
  <name>ps.vmnet-netifup</name>
  <desc>Number of vmnet-netifup Processes</desc>
  <value>2</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.vmnet-dhcpd">
  <name>ps.vmnet-dhcpd</name>
  <desc>Number of vmnet-dhcpd Processes</desc>
  <value>2</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.miniserv.pl">
  <name>ps.miniserv.pl</name>
  <desc>Number of miniserv.pl Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.getty">
  <name>ps.getty</name>
  <desc>Number of getty Processes</desc>
  <value>6</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.nmbd">
  <name>ps.nmbd</name>
  <desc>Number of nmbd Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.smbd">
  <name>ps.smbd</name>
  <desc>Number of smbd Processes</desc>
  <value>2</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.screen">
  <name>ps.screen</name>
  <desc>Number of screen Processes</desc>
  <value>2</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.bash">
  <name>ps.bash</name>
  <desc>Number of bash Processes</desc>
  <value>5</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.pdflush">
  <name>ps.pdflush</name>
  <desc>Number of pdflush Processes</desc>
  <value>2</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.scsi_eh_2">
  <name>ps.scsi_eh_2</name>
  <desc>Number of scsi_eh_2 Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.usb-storage">
  <name>ps.usb-storage</name>
  <desc>Number of usb-storage Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.mc">
  <name>ps.mc</name>
  <desc>Number of mc Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.vmware-vmx">
  <name>ps.vmware-vmx</name>
  <desc>Number of vmware-vmx Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.php">
  <name>ps.php</name>
  <desc>Number of php Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>


 <test NAME="ps.ps">
  <name>ps.ps</name>
  <desc>Number of ps Processes</desc>
  <value>1</value>
  <alertlevel>0</alertlevel>
 </test>

</freenats-data>

and

config.php

Code: Select all

<?php // config.inc.php
// FreeNATS Push/Pull XML Node for Posix Environments Configuration
/* -------------------------------------------------------------
This file is part of FreeNATS

FreeNATS is (C) Copyright 2008 PurplePixie Systems

FreeNATS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

FreeNATS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with FreeNATS.  If not, see www.gnu.org/licenses

For more information see www.purplepixie.org/freenats
-------------------------------------------------------------- */

// Configuration Section

$nodeCfg['nodeid']                      =       "amane";        // nodeid for FreeNATS (required)

$nodeCfg['nodekey']                     =       "randomkeyofdeathgoeshere"; // alphanumeric node key

// Pull method - polled from FreeNATS server

$nodeCfg['allowpull']           =       true; // allow pull mode
$nodeCfg['restrict_pull_ip']=   ""; // limit IPs allowed to pull data

// Push method - polled locally and HTTP POSTd to FreeNATS server

$nodeCfg['allowpush']   =               true; // allow push mode
$nodeCfg['push_target'] =               "http://10.10.10.5/nms/nodeside.push.php"; // Full http://YOUR_FREENATS/nodeside.push.php


$nodeCfg['tmp_dir']             =               "/tmp/fnn."; // tmp dir (and optional file prefix)
                                                                // for temp delta-calculation files e.g. network speed


// Individual Test Sections Enabled/Disabled

$nodeCfg['uptime']                      =       true;
$nodeCfg['disk']                        =       true;
$nodeCfg['memory']                      =       true;
$nodeCfg['net']                         =       true;
$nodeCfg['systime']                     =       true;
$nodeCfg['process']                     =       true;
?>
and

freenats-node.php (Just the top parts)

Code: Select all

// Configuration Section

$nodeCfg=array();

$nodeCfg['allowpull']=true;
$nodeCfg['allowpush']=true;
$nodeCfg['nodekey']="m0arrandomkeysofdeathgoeshere";
$nodeCfg['nodeid']="amane";
$nodeCfg['restrict_pull_ip']="";
$nodeCfg['push_target']="http://10.10.10.5/nms/nodeside.push.php";
$nodeCfg['tmp_dir']="/tmp/";

$nodeCfg['version']="0.02";

$nodeCfg['uptime']      =       true;
$nodeCfg['disk']        =       true;
$nodeCfg['memory']      =       true;
$nodeCfg['net']         =       true;
$nodeCfg['systime']     =       true;
$nodeCfg['process']     =       true;

// End of Configuration Section
Final note,
I tried setting anything (in the config sections) from true to false in both config.inc.php and the freenats-node.php file,

And it returned the same result;
Server Returned Error: XML Error: XML Error XML declaration not finished at line 1



I'm going to try and do this on another server, but this time using the pull node side method instead,
I'll post my results if successful ... ! :idea:

Um
Good luck :)

And VERY MUCH APRECHIATED!

Thanks!!
~ Aday
Last edited by aday on Tue Aug 12, 2008 7:42 am, edited 1 time in total.
web:// aday.net.au

aday
Posts: 10
Joined: Sun Jun 08, 2008 3:02 am
Location: Australia/Melbourne
Contact:

Re: Nodeside PUSH

Post by aday » Tue Aug 12, 2008 7:20 am

I just tried a node side pull! :)

http://10.10.10.5/nms/node.edit.php?nod ... iderefresh
But got a Error Fetching Nodeside Data :(

Alerts also say:
Node Alerts for: peorth

Alert : peorth/1
Opened : 15:48:18 12/08/2008
Status : Open
Closed : n/a
Level : Failed

Alert Log
15:48:18 12/08/2008 : pull failed

however, http://blahblahblah/aday/freenats/freen ... oupdates=1
Presents as valid XML however...

Awwww ...

I might give the Windows Script a go too
Will post my results :)
Last edited by aday on Tue Aug 12, 2008 7:41 am, edited 1 time in total.
web:// aday.net.au

aday
Posts: 10
Joined: Sun Jun 08, 2008 3:02 am
Location: Australia/Melbourne
Contact:

Re: Nodeside PUSH

Post by aday » Tue Aug 12, 2008 7:41 am

The Windows one!

It seems to work!
YAY!!

Code: Select all

Pushing Data...
URL   : http://10.10.10.5/nms/nodeside.push.php
NodeID: ffvserv1
Key   : randomkeyofdeathwouldgohere
Post Successful
Only thing now is, where do i view this cool data?
But the posting part works :) Nice !!!

Add Node-side Monitor is blank under node.edit
and Nodeside Tests is blank under node.php

I love the concept!
I really hope I can get this to work,
It' could even be a complete replacement to MRTG, which often drives me INSANE!!!
web:// aday.net.au

dave
Site Admin
Posts: 260
Joined: Fri May 30, 2008 9:09 pm
Location: UK
Contact:

Re: Nodeside PUSH

Post by dave » Tue Aug 12, 2008 8:04 am

Hi Aday,

I'll have a look at the XML tonight but for the moment, with the Win32 box, once you have successfully pushed data if you "Edit Node" then you should see at the bottom:

Add test (the original tests)
Add nodeside monitor - this should be a list of monitors from the Win32 box you can select and then add to be actively monitored.

I'll play with the other XML etc tonight.

Cheers,

Dave.

dave
Site Admin
Posts: 260
Joined: Fri May 30, 2008 9:09 pm
Location: UK
Contact:

Re: Nodeside PUSH

Post by dave » Tue Aug 12, 2008 3:37 pm

Update: Ignore this post - I think I have found the problem - see below. If it's not the problem then try this...

Arr... Me thinks me spoke too soon and too foolishly. I took your XML (which looks fine). It wouldn't parse in anything but only because phpBB had put some spaces in front of every line. Removing them from the first line so the <?xml is right at the start of the line (the others are irrelivant) shows it as valid and it loads into FreeNATS fine (I put it in the filesystem and then just pulled a URL of /home/dcutting/aday.xml).

Just to confirm - the file does start <? without any leading whitespace?

My system log shows the following during import:

Image

And they then show up in the node edit screen (which is where incidentally you should see any nodeside tests once they have pushed/pulled once):

Image

The Win32 does check it gets a '1' back from the nodeside.post.php script before saying "success" which should indicate the Win32 one succeeded. This should mean the XML has parsed ok etc.

Can you check the end of your node.vbs which should look like this:

Code: Select all

	If Right(response,1) = "1" Then
		WScript.Echo "Post Successful"
	Else
		WScript.Echo "Encountered An Error:"
		WScript.Echo response
	End If
	
End If
I'm hoping it doesn't and I've mucked up releasing the nodeside tester - you're getting a success message but actually it's failing.

If they are all failing with that XML error then it certainly points toward an environmental problem with the XML parser (or rather my use of it!).

If just the Linux push and pulls are failing and in fact the Win32 one is working then that is so weird I'm just going to ignore it as a possibility for the time being.

Assuming it is the XML server environment we can try the following:

Local file load
  • Create a new node (bob), set it's interval to 0.
    Enable it, enable nodeside testing, nodeside pull.
    Make sure ping test and require ping are disabled.
    Copy your XML output file from the node to /somewhere/file.xml
    Set the key to nothing and the pull URL to /somewhere/file.xml
    Go into Configure - System Settings - System Variables and set the value of log.level to 10
    On one console cd to server/bin and do php logwatch.php -f (which will start tailing the system log - my example output is above)
    On another console cd to server/bin and do php tester.php bob
Hopefully the system log will show some more useful output than is just shown to the normal run console. Control-C to exit the log watcher (you may want to wait a few secs at least after the run for useful output to be shown as it only polls every second or so for new entries).

Oh and you'll probably want to set log.level back to something around 5-ish to avoid tonnes of stuff clogging up your fnlog table too much.



Discovery and Import Tools

If this doesn't provide any illumation another quick check of a similar bit of the system that uses XML parsing is the discovery and import tools. You can see if they are working without affecting the database.
  • cd to server/bin
    you'll need to be root or sudo the discover.php command as it uses a low level ping
    do: php discover.php 127.0.0.1
    a discover.xml file should be generated which should be valid
    do: php import.php discover.xml
    don't worry - it doesn't do a live import but it should show you a breakdown which would indicate the XML parser is in fact working. Hopefully though it'll give an error like "sorry this isn't working because you need to change true to false on line 455 of some.freenats.file.php" (you never know... I live in hope).
Doing this I get the following:

Code: Select all

[dcutting@shark bin]$ sudo php discover.php 127.0.0.1
FreeNATS Discover Started
 Live: No    Debug: No
 File: discover.xml

Ranges: 1
 127.0.0.1 2130706433-2130706433 127.0.0.1-127.0.0.1

+ 127.0.0.1 - 127.0.0.1
- Ping Returned - Host Active
- Name: shark
- NodeID: shark



Finish... Writing File...
[dcutting@shark bin]$ ls
cleanup.php    clearbigrecords.sh  import.php    resettester.sh  tester.sh
cleanup.sh     discover.php        include.php   setvar.sh       test-threaded.php
clearalert.sh  discover.xml        logwatch.php  tester.php      test-threaded.sh
[dcutting@shark bin]$ more discover.xml
<?xml version="1.0" encoding="UTF-8"?>
<freenats-data>

<default TYPE="node">
 <nodeenabled>1</nodeenabled>
 <pingtest>0</pingtest>
</default>

<default TYPE="localtest">
 <testenabled>1</testenabled>
 <testrecord>0</testrecord>
</default>

<node NODEID="shark">
 <nodeid>shark</nodeid>
 <hostname>127.0.0.1</hostname>
 <nodedesc>shark</nodedesc>
</node>


</freenats-data>
[dcutting@shark bin]$ sudo php import.php discover.xml
FreeNATS Bulk Importer - www.purplepixie.org/freenats
Importing File: discover.xml => Live Import: No

Node Default Section Starting
 Default: nodeenabled => 1
 Default: pingtest => 0
Default Section End

Localtest Default Section Starting
 Default: testenabled => 1
 Default: testrecord => 0
Default Section End

Node Data: shark
Node Data: 127.0.0.1
Node Data: shark
Nodes: 1     Local Tests: 0
NodeID: shark - Parsing Properties...
  nodeenabled => 1
  pingtest => 0
  nodeid => shark
  hostname => 127.0.0.1
  nodedesc => shark
  Live Import: No

[dcutting@shark bin]$

Let me know how you get on.

If this doesn't work feel free to email me if it's possible to get on for some remote diagnostics.

Cheers,

Dave.

dave
Site Admin
Posts: 260
Joined: Fri May 30, 2008 9:09 pm
Location: UK
Contact:

Re: Nodeside PUSH

Post by dave » Tue Aug 12, 2008 4:46 pm

Ignore the last post... I think I've found the problem.

I think that magic quotes is on for your environment and that seems to break the XML parser (which is surprising).

Anyway I have just bundled up 1.00.10a which has a if (get_magic_quotes_gpc()) stripslashes() bit in the nodeside import which hopefully will solve the problem.

If that doesn't work then please try the previous posts suggestions.

Cheers,

Dave.

aday
Posts: 10
Joined: Sun Jun 08, 2008 3:02 am
Location: Australia/Melbourne
Contact:

Re: Nodeside PUSH

Post by aday » Wed Aug 13, 2008 1:22 am

Win AND Gold!
The latest release 10.00.10a fixed it with the Magic Quotes XML Bug Fix!

root@amane:/root/freenats/posix# php freenats-node.php
Push Succeeded


And its showing up with the option to Add Node-side Monitor!!

AWESOME!!!!!!!!!


Thanks HEAPS Dave!
Time to roll some 1.00.10a
web:// aday.net.au

dave
Site Admin
Posts: 260
Joined: Fri May 30, 2008 9:09 pm
Location: UK
Contact:

Re: Nodeside PUSH

Post by dave » Wed Aug 13, 2008 2:04 pm

Hi,

Well that is good news. Not that I doubted it for a second you understand...

Now I just have to support it in the import tool and all will be well.

Magic quotes are the bane of my life!!

Cheers,

Dave

(posting to the forum from safari on an iPhone... Super sweeeet)

Post Reply