From: James G. <ja...@m5...> - 2005-01-04 00:35:00
|
Hi all, I've been reading through the archives, and saw that Gili has had the same problem as myself. That is, error 500 on perfparse.cgi. The following is the error.. -- Server error! The server encountered an internal error and was unable to complete your request. Error message: malformed header from script. Bad header=perfparse.cgi: perfparse.cgi If you think this is a server error, please contact the webmaster Error 500 X.X.X.X Tue 04 Jan 2005 10:07:03 EST Apache/2.0.40 (Red Hat Linux) -- The error only occurs when there are arguments passed to perfparse.cgi. Eg perfparse.cgi?edit_host_list=1 When I go to perfparse.cgi, I can see the menu page correctly. The permissions for perfparse.cgi are exactly the same as those for the nagios cgi files. All of the nagios pages work correctly and have been working for a while. I am running nagios v1.1 I'm using perfparse-0.104.4. The following is some output from my perfdata-service.log 1104549133 services-cbr / DISK OK [241572 kB (51%) free on /dev/hda1] OK 1104549133 services3-cbr /var DISK OK [14202808 kB (98%) free on /dev/hda2] OK 1104549133 pix PING PING OK - Packet loss = 0%, RTA = 1.48 ms OK 1104549133 ids-cbr / DISK OK - free space: / 1317 MB (91%): OK /=1317MB;1235;1381;0;1454 Should I be seeing stuff after a '|' ? Does this mean that there is no useful perfdata? Also, and I think this may be intertwined with my cgi problem, I am getting no data at all in my database. The following is an error from perfparse.log.20050104.log 2005/01/04 10:54:54 [ storage.c:92 19064 ] storage_mysql module successfully loaded 2005/01/04 10:54:54 [log_reader.c:159 19064 ] No position mark path was specified. Either disable saving the position or specify a mark path. I have ran mysql_create.sql and created all the tables in the database, it seems it is connecting correctly, too, as I had to fix the config file to ensure this. As usual, any and all help would be extremely appreciated. I've read as much documentation as I can find, and I'm still at a loss. Thanks in advance! :) Kind Regards, James Greenhalgh |
From: Ben C. <bcl...@pe...> - 2005-01-04 08:56:19
|
James, I'll see if I can offer any help. James Greenhalgh wrote: > Hi all, > > I've been reading through the archives, and saw that Gili has had the > same problem as myself. That is, error 500 on perfparse.cgi. The > following is the error.. > > -- > Server error! > > The server encountered an internal error and was unable to complete > your request. > > Error message: > malformed header from script. Bad header=perfparse.cgi: perfparse.cgi > > If you think this is a server error, please contact the webmaster > > Error 500 > > X.X.X.X > Tue 04 Jan 2005 10:07:03 EST > Apache/2.0.40 (Red Hat Linux) > -- > The error only occurs when there are arguments passed to perfparse.cgi. > Eg perfparse.cgi?edit_host_list=1 > When I go to perfparse.cgi, I can see the menu page correctly. The > permissions for perfparse.cgi are exactly the same as those for the > nagios cgi files. > All of the nagios pages work correctly and have been working for a > while. I am running nagios v1.1 1. Can you try the following URL: perfparse.cgi?show_config=1 Does this also return the same error? 2. Can you try running the program from the command line: $ export QUERY_STRING="?show_config=1" $ /...../perfparse.cgi Can you show me the result of this action? 3. Finally, can you try a small script in your cgi-bin directory: ---------------------test.cgi------------------------- #!/bin/sh echo "Expires: Sun, 02 Jan 2000 01:01:01 GMT" echo "content-type: text" echo "" echo "QUERY_STRING = $QUERY_STRING" echo "" set | grep "^[A-Za-z].*=" ------------------------------------------------------ chmod a+x test.cgi How call this URL as: http://....../test.cgi?testVariable=testValue Please tell me what is displayed. This would be of great help in finally fixing this problem.! > > I'm using perfparse-0.104.4. The following is some output from my > perfdata-service.log > > 1104549133 services-cbr / DISK OK [241572 kB (51%) free on > /dev/hda1] OK > 1104549133 services3-cbr /var DISK OK [14202808 kB (98%) free > on /dev/hda2] OK > 1104549133 pix PING PING OK - Packet loss = 0%, RTA = 1.48 > ms OK > 1104549133 ids-cbr / DISK OK - free space: / 1317 MB (91%): > OK /=1317MB;1235;1381;0;1454 > > Should I be seeing stuff after a '|' ? Does this mean that there is no > useful perfdata? The '|' has already been removed at this point. Your output looks correct. The only think I notice is that you may need a more recent version of your plugins. Since only the last line shows has returned any graphable data. (The part after the 'OK') > > Also, and I think this may be intertwined with my cgi problem, I am > getting no data at all in my database. > The following is an error from perfparse.log.20050104.log > > 2005/01/04 10:54:54 [ storage.c:92 19064 ] storage_mysql module > successfully loaded > 2005/01/04 10:54:54 [log_reader.c:159 19064 ] No position mark path > was specified. Either disable saving the position or specify a mark path. Look at the example perfparse.cgi for a line showing the mark file path. Ensure this is correct. Delete any existing .mark file you find. This should fix this. > > I have ran mysql_create.sql and created all the tables in the database, > it seems it is connecting correctly, too, as I had to fix the config > file to ensure this. Can you give me more details of the fix you has to make? > > As usual, any and all help would be extremely appreciated. I've read as > much documentation as I can find, and I'm still at a loss. Thanks in > advance! :) I hope we can be of some use, please let me know the results of your tests. Regards, Ben > > Kind Regards, > James Greenhalgh > > > > > > > > > ------------------------------------------------------- > The SF.Net email is sponsored by: Beat the post-holiday blues > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > _______________________________________________ > Perfparse-users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perfparse-users > -- Ben Clewett bcl...@pe... PerfParse http://www.perfparse.org PP FAQ http://wiki.perfparse.org/tiki-list_faqs.php |
From: James G. <ja...@m5...> - 2005-01-05 00:28:33
|
Hi Ben, First of all, thanks a lot for helping me out. Something worthy of note: I have updated to 104.6 and seem to be getting the same old problems... I have upgraded the database with 'perfparse-db-tool --update', and ensured that all the settings are the same... Ben Clewett wrote: > James, > > I'll see if I can offer any help. > > James Greenhalgh wrote: > >> Hi all, >> >> I've been reading through the archives, and saw that Gili has had the >> same problem as myself. That is, error 500 on perfparse.cgi. The >> following is the error.. >> >> -- >> Server error! >> >> The server encountered an internal error and was unable to complete >> your request. >> >> Error message: >> malformed header from script. Bad header=perfparse.cgi: perfparse.cgi >> >> If you think this is a server error, please contact the webmaster >> >> Error 500 >> >> X.X.X.X >> Tue 04 Jan 2005 10:07:03 EST >> Apache/2.0.40 (Red Hat Linux) >> -- >> The error only occurs when there are arguments passed to >> perfparse.cgi. Eg perfparse.cgi?edit_host_list=1 >> When I go to perfparse.cgi, I can see the menu page correctly. The >> permissions for perfparse.cgi are exactly the same as those for the >> nagios cgi files. >> All of the nagios pages work correctly and have been working for a >> while. I am running nagios v1.1 > > > 1. Can you try the following URL: > > perfparse.cgi?show_config=1 > > Does this also return the same error? Yeah I get exactly the same error when I use that :( > > 2. Can you try running the program from the command line: > > $ export QUERY_STRING="?show_config=1" > $ /...../perfparse.cgi > > Can you show me the result of this action? > # ./perfparse.cgi Expires: Sun, 02 Jan 2000 01:01:01 GMT content-type: text/html <HTML> <HEAD> <TITLE> PerfParse</TITLE> <BODY BGcolor="#EEFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#000000"> <pre> perfparse.cgi # File where Perfparse logs messages # Error_Log = "string" Error_Log = "/usr/local/nagios/var/perfparse.log" # Rotate Perfparse log files # Error_Log_Rotate = "Y/N" Error_Log_Rotate = "Yes" # Database user # DB_User = "string" DB_User = "nagios" # Database password # DB_Pass = "string" DB_Pass = "myawesomepassword" # Database name # DB_Name = "string" DB_Name = "nagios" # Database hostname # DB_Host = "string" DB_Host = "localhost" # Policy for default user # Default_user_permissions_Policy = "string" Default_user_permissions_Policy = "rw" # Default permissions for host groups # Default_user_permissions_Host_groups = "string" Default_user_permissions_Host_groups = "rw" # Summary Permissions for default user # Default_user_permissions_Summary = "string" Default_user_permissions_Summary = "rw" # Dummy hostname if gethostname() does not work # Dummy_Hostname = "string" Dummy_Hostname = "dummy" </pre> </body></html> # > 3. Finally, can you try a small script in your cgi-bin directory: > > > ---------------------test.cgi------------------------- > #!/bin/sh > echo "Expires: Sun, 02 Jan 2000 01:01:01 GMT" > echo "content-type: text" > echo "" > echo "QUERY_STRING = $QUERY_STRING" > echo "" > set | grep "^[A-Za-z].*=" > ------------------------------------------------------ > > chmod a+x test.cgi > > How call this URL as: > > http://....../test.cgi?testVariable=testValue > It creates a text file containing the following... QUERY_STRING = testVariable=testValue AUTH_TYPE=Basic BASH=/bin/sh BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu") BASH_VERSION='2.05b.0(1)-release' DIRSTACK=() DOCUMENT_ROOT=/var/www/html EUID=48 GATEWAY_INTERFACE=CGI/1.1 GROUPS=() HOSTNAME=netmon HOSTTYPE=i386 HTTP_ACCEPT='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' HTTP_ACCEPT_CHARSET='ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING=gzip,deflate HTTP_ACCEPT_LANGUAGE='en-us,en;q=0.5' HTTP_CONNECTION=keep-alive HTTP_COOKIE=phpbb2mysql_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A2%3A%2212%22%3B%7D HTTP_HOST=203.24.149.157 HTTP_KEEP_ALIVE=300 HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041207 Firefox/1.0 (Debian package 1.0-5)' IFS=' MACHTYPE=i386-redhat-linux-gnu OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin PIPESTATUS=([0]="0") POSIXLY_CORRECT=y PPID=15513 PS4='+ ' PWD=/usr/local/nagios/sbin QUERY_STRING=testVariable=testValue REMOTE_ADDR=172.16.1.28 REMOTE_PORT=33070 REMOTE_USER=nagiosadmin REQUEST_METHOD=GET REQUEST_URI='/nagios/cgi-bin/test.cgi?testVariable=testValue' SCRIPT_FILENAME=/usr/local/nagios/sbin/test.cgi SCRIPT_NAME=/nagios/cgi-bin/test.cgi SERVER_ADDR=X.X.X.X SERVER_ADMIN=root@localhost SERVER_NAME=X.X.X.X SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.1 SERVER_SIGNATURE='<address>Apache/2.0.40 Server at X.X.X.X Port 80</address> SERVER_SOFTWARE='Apache/2.0.40 (Red Hat Linux)' SHELL=/sbin/nologin SHELLOPTS=braceexpand:hashall:interactive-comments:posix SHLVL=1 TERM=dumb UID=48 UNIQUE_ID=H0yXun8AAAEAADyZLDIAAAAA > Please tell me what is displayed. This would be of great help in > finally fixing this problem.! > > > >> >> I'm using perfparse-0.104.4. The following is some output from my >> perfdata-service.log >> >> 1104549133 services-cbr / DISK OK [241572 kB (51%) free >> on /dev/hda1] OK >> 1104549133 services3-cbr /var DISK OK [14202808 kB (98%) >> free on /dev/hda2] OK >> 1104549133 pix PING PING OK - Packet loss = 0%, RTA = 1.48 >> ms OK >> 1104549133 ids-cbr / DISK OK - free space: / 1317 MB >> (91%): OK /=1317MB;1235;1381;0;1454 >> >> Should I be seeing stuff after a '|' ? Does this mean that there is no >> useful perfdata? > > > The '|' has already been removed at this point. Your output looks > correct. The only think I notice is that you may need a more recent > version of your plugins. Since only the last line shows has returned > any graphable data. (The part after the 'OK') > No worries. I'll do that after I fix all this other stuff. :) >> >> Also, and I think this may be intertwined with my cgi problem, I am >> getting no data at all in my database. >> The following is an error from perfparse.log.20050104.log >> >> 2005/01/04 10:54:54 [ storage.c:92 19064 ] storage_mysql module >> successfully loaded >> 2005/01/04 10:54:54 [log_reader.c:159 19064 ] No position mark path >> was specified. Either disable saving the position or specify a mark path. > > > Look at the example perfparse.cgi for a line showing the mark file path. > Ensure this is correct. Delete any existing .mark file you find. This > should fix this. > Woohoooooo!!!! I put a mark path into the perfparse.cfg file and it added stuff to my database!! [root@netmon bin]# ./perfparse-log2mysql -U nagios -P myawesomepassword -D nagios -H localhost --no_transactions 00:03:51 read 206424 @ 809.7 l/sec. Met 37477 @ 0.18 Met/l. Drop 0. +-----------------------------+ +-----------------------------+ | Generic statistics | | Nb Log Lines : 2 | | Nb lines parsed : 206424 | | Nb lines dropped : 0 | | Start date : 2005-01-05 | | Elapsed time : 00:03:51 | | Start time : 10:06:53 | | Rate : (line/sec) 893.61 | +-----------------------------+ +-----------------------------+ *** WARNING! Log file has been written to. Please check. *** *** Log file name: /usr/local/nagios/var/perfparse.log.20050105.log *** +-----------------------------+ +-----------------------------+ | MySQL storage statistics | | | | New Hosts : 30 | | Metric/line : 0.18 | | New Metrics : 27 | | Metrics Recorded : 37477 | | New Services : 140 | | Summary Rec Added : 0 | | New Summary Group : 0 | | SQL Queries : 844716 | +-----------------------------+ +-----------------------------+ When I look inside /usr/local/nagios/var/perfparse.log.20050105.log the last two lines are these... -- 2005/01/05 10:06:53 [ storage.c:95 22768 ] storage_mysql module successfully loaded 2005/01/05 10:06:53 [log_reader.c:178 22768 ] Could not open '/usr/local/nagios/var/perfdata_log.perfdata-service.log.mark' -- Which is odd because I can perform cat on it.. # cat /usr/local/nagios/var/perfdata_log.perfdata-service.log.mark 18196528 508091289 # After all of this, the graphs are still not working. :( My web browser is firefox, and I have also tried using konqueror. I have also tried (with a mac) Safari and IE. They all give me the same output. This is the error from apache's logs... (it doesn't really say much) --- [Wed Jan 05 11:08:02 2005] [error] [client 172.16.1.28] malformed header from script. Bad header=perfparse.cgi: perfparse.cgi, referer: http://X.X.X.X/nagios/cgi-bin/perfparse.cgi --- > >> >> I have ran mysql_create.sql and created all the tables in the >> database, it seems it is connecting correctly, too, as I had to fix >> the config file to ensure this. > > > Can you give me more details of the fix you has to make? > I only meant that I had to change the password and the hostname so that it would connect properly. Also, in the create_mysql file, I had to change one of the lines from CREATE TABLE IF NOT EXISTS perfdata_registry ( host VARCHAR(75) DEFAULT NULL, ..... to... CREATE TABLE IF NOT EXISTS perfdata_registry ( host VARCHAR(75) NOT NULL, ..... as it did not like the default null key. I saw this as a workaround on a bugtracking list somewhere. Could this have possibly made it all fall over? I should probably also mention that I am using mysql 3.2. I'm unable to upgrade it as it is in a production environment. I have ensured that I used the '--no_transactions' flags where appropriate. Thanks a lot for any help, and thanks for the help so far. :D Cheers, James Greenhalgh |
From: Ben C. <bcl...@pe...> - 2005-01-05 08:55:00
|
Hi James, I have looked through your reply and cannot see any reason for this error. Yet! You are not the only person with this error so I would really like to work with you and sort this out! I would be very interested in help from any other member who understand the CGI and HTTP protocols. I suspect the code is crashing in the function scgi(char *) in cgi/cgi.c This takes the QUERY_STRING and extracts CGI variables from it. Can I ask you to repeat one of your tests with a slightly different test value: Can you try running the perfparse.cgi from the command line: $ export QUERY_STRING="show_config=1" $ /...../perfparse.cgi Can you show me the result of this action? I am hoping this will crash on your system. Although it does not on mine. If this is the case, I at least know where the problem is! Again to all readers: Another fix to this is to use a free CGI lib capable of examining POST and GET methods, and replace mine. (I use commercial ones at my place of work, cannot use them in PP.) Would any reader be able to recommend one? James, to your other queries: Glad you have data in your system now :) Sorry you cannot upgrade your MySQL. This may cause some problems later on. I will have to think of you when I code database conversions... Everything else seems in order. Lets get this fix for you :) Ben James Greenhalgh wrote: > Hi Ben, > > First of all, thanks a lot for helping me out. Something worthy of note: > I have updated to 104.6 and seem to be getting the same old problems... > I have upgraded the database with 'perfparse-db-tool --update', and > ensured that all the settings are the same... > > Ben Clewett wrote: > >> James, >> >> I'll see if I can offer any help. >> >> James Greenhalgh wrote: >> >>> Hi all, >>> >>> I've been reading through the archives, and saw that Gili has had the >>> same problem as myself. That is, error 500 on perfparse.cgi. The >>> following is the error.. >>> >>> -- >>> Server error! >>> >>> The server encountered an internal error and was unable to >>> complete your request. >>> >>> Error message: >>> malformed header from script. Bad header=perfparse.cgi: perfparse.cgi >>> >>> If you think this is a server error, please contact the webmaster >>> >>> Error 500 >>> >>> X.X.X.X >>> Tue 04 Jan 2005 10:07:03 EST >>> Apache/2.0.40 (Red Hat Linux) >>> -- >>> The error only occurs when there are arguments passed to >>> perfparse.cgi. Eg perfparse.cgi?edit_host_list=1 >>> When I go to perfparse.cgi, I can see the menu page correctly. The >>> permissions for perfparse.cgi are exactly the same as those for the >>> nagios cgi files. >>> All of the nagios pages work correctly and have been working for a >>> while. I am running nagios v1.1 >> >> >> >> 1. Can you try the following URL: >> >> perfparse.cgi?show_config=1 >> >> Does this also return the same error? > > > Yeah I get exactly the same error when I use that :( > >> >> 2. Can you try running the program from the command line: >> >> $ export QUERY_STRING="?show_config=1" >> $ /...../perfparse.cgi >> >> Can you show me the result of this action? >> > > # ./perfparse.cgi > Expires: Sun, 02 Jan 2000 01:01:01 GMT > content-type: text/html > > <HTML> > <HEAD> > <TITLE> > PerfParse</TITLE> > <BODY BGcolor="#EEFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000" > ALINK="#000000"> > <pre> > perfparse.cgi > > # File where Perfparse logs messages > # Error_Log = "string" > Error_Log = "/usr/local/nagios/var/perfparse.log" > > # Rotate Perfparse log files > # Error_Log_Rotate = "Y/N" > Error_Log_Rotate = "Yes" > > # Database user > # DB_User = "string" > DB_User = "nagios" > > # Database password > # DB_Pass = "string" > DB_Pass = "myawesomepassword" > > # Database name > # DB_Name = "string" > DB_Name = "nagios" > > # Database hostname > # DB_Host = "string" > DB_Host = "localhost" > > # Policy for default user > # Default_user_permissions_Policy = "string" > Default_user_permissions_Policy = "rw" > > # Default permissions for host groups > # Default_user_permissions_Host_groups = "string" > Default_user_permissions_Host_groups = "rw" > > # Summary Permissions for default user > # Default_user_permissions_Summary = "string" > Default_user_permissions_Summary = "rw" > > # Dummy hostname if gethostname() does not work > # Dummy_Hostname = "string" > Dummy_Hostname = "dummy" > > > > </pre> > </body></html> > # > >> 3. Finally, can you try a small script in your cgi-bin directory: >> >> >> ---------------------test.cgi------------------------- >> #!/bin/sh >> echo "Expires: Sun, 02 Jan 2000 01:01:01 GMT" >> echo "content-type: text" >> echo "" >> echo "QUERY_STRING = $QUERY_STRING" >> echo "" >> set | grep "^[A-Za-z].*=" >> ------------------------------------------------------ >> >> chmod a+x test.cgi >> >> How call this URL as: >> >> http://....../test.cgi?testVariable=testValue >> > It creates a text file containing the following... > > QUERY_STRING = testVariable=testValue > > AUTH_TYPE=Basic > BASH=/bin/sh > BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" > [5]="i386-redhat-linux-gnu") > BASH_VERSION='2.05b.0(1)-release' > DIRSTACK=() > DOCUMENT_ROOT=/var/www/html > EUID=48 > GATEWAY_INTERFACE=CGI/1.1 > GROUPS=() > HOSTNAME=netmon > HOSTTYPE=i386 > HTTP_ACCEPT='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' > > HTTP_ACCEPT_CHARSET='ISO-8859-1,utf-8;q=0.7,*;q=0.7' > HTTP_ACCEPT_ENCODING=gzip,deflate > HTTP_ACCEPT_LANGUAGE='en-us,en;q=0.5' > HTTP_CONNECTION=keep-alive > HTTP_COOKIE=phpbb2mysql_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A2%3A%2212%22%3B%7D > > HTTP_HOST=203.24.149.157 > HTTP_KEEP_ALIVE=300 > HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) > Gecko/20041207 Firefox/1.0 (Debian package 1.0-5)' > IFS=' > MACHTYPE=i386-redhat-linux-gnu > OPTERR=1 > OPTIND=1 > OSTYPE=linux-gnu > PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin > PIPESTATUS=([0]="0") > POSIXLY_CORRECT=y > PPID=15513 > PS4='+ ' > PWD=/usr/local/nagios/sbin > QUERY_STRING=testVariable=testValue > REMOTE_ADDR=172.16.1.28 > REMOTE_PORT=33070 > REMOTE_USER=nagiosadmin > REQUEST_METHOD=GET > REQUEST_URI='/nagios/cgi-bin/test.cgi?testVariable=testValue' > SCRIPT_FILENAME=/usr/local/nagios/sbin/test.cgi > SCRIPT_NAME=/nagios/cgi-bin/test.cgi > SERVER_ADDR=X.X.X.X > SERVER_ADMIN=root@localhost > SERVER_NAME=X.X.X.X > SERVER_PORT=80 > SERVER_PROTOCOL=HTTP/1.1 > SERVER_SIGNATURE='<address>Apache/2.0.40 Server at X.X.X.X Port > 80</address> > SERVER_SOFTWARE='Apache/2.0.40 (Red Hat Linux)' > SHELL=/sbin/nologin > SHELLOPTS=braceexpand:hashall:interactive-comments:posix > SHLVL=1 > TERM=dumb > UID=48 > UNIQUE_ID=H0yXun8AAAEAADyZLDIAAAAA > >> Please tell me what is displayed. This would be of great help in >> finally fixing this problem.! >> >> >> >>> >>> I'm using perfparse-0.104.4. The following is some output from my >>> perfdata-service.log >>> >>> 1104549133 services-cbr / DISK OK [241572 kB (51%) free >>> on /dev/hda1] OK >>> 1104549133 services3-cbr /var DISK OK [14202808 kB (98%) >>> free on /dev/hda2] OK >>> 1104549133 pix PING PING OK - Packet loss = 0%, RTA = >>> 1.48 ms OK >>> 1104549133 ids-cbr / DISK OK - free space: / 1317 MB >>> (91%): OK /=1317MB;1235;1381;0;1454 >>> >>> Should I be seeing stuff after a '|' ? Does this mean that there is >>> no useful perfdata? >> >> >> >> The '|' has already been removed at this point. Your output looks >> correct. The only think I notice is that you may need a more recent >> version of your plugins. Since only the last line shows has returned >> any graphable data. (The part after the 'OK') >> > No worries. I'll do that after I fix all this other stuff. :) > >>> >>> Also, and I think this may be intertwined with my cgi problem, I am >>> getting no data at all in my database. >>> The following is an error from perfparse.log.20050104.log >>> >>> 2005/01/04 10:54:54 [ storage.c:92 19064 ] storage_mysql module >>> successfully loaded >>> 2005/01/04 10:54:54 [log_reader.c:159 19064 ] No position mark path >>> was specified. Either disable saving the position or specify a mark >>> path. >> >> >> >> Look at the example perfparse.cgi for a line showing the mark file >> path. Ensure this is correct. Delete any existing .mark file you >> find. This should fix this. >> > Woohoooooo!!!! I put a mark path into the perfparse.cfg file and it > added stuff to my database!! > > [root@netmon bin]# ./perfparse-log2mysql -U nagios -P myawesomepassword > -D nagios -H localhost --no_transactions > 00:03:51 read 206424 @ 809.7 l/sec. Met 37477 @ 0.18 Met/l. Drop 0. > +-----------------------------+ +-----------------------------+ > | Generic statistics | | Nb Log Lines : 2 | > | Nb lines parsed : 206424 | | Nb lines dropped : 0 | > | Start date : 2005-01-05 | | Elapsed time : 00:03:51 | > | Start time : 10:06:53 | | Rate : (line/sec) 893.61 | > +-----------------------------+ +-----------------------------+ > *** WARNING! Log file has been written to. Please check. *** > *** Log file name: /usr/local/nagios/var/perfparse.log.20050105.log *** > > +-----------------------------+ +-----------------------------+ > | MySQL storage statistics | | | > | New Hosts : 30 | | Metric/line : 0.18 | > | New Metrics : 27 | | Metrics Recorded : 37477 | > | New Services : 140 | | Summary Rec Added : 0 | > | New Summary Group : 0 | | SQL Queries : 844716 | > +-----------------------------+ +-----------------------------+ > > When I look inside /usr/local/nagios/var/perfparse.log.20050105.log > the last two lines are these... > > -- > 2005/01/05 10:06:53 [ storage.c:95 22768 ] storage_mysql module > successfully loaded > 2005/01/05 10:06:53 [log_reader.c:178 22768 ] Could not open > '/usr/local/nagios/var/perfdata_log.perfdata-service.log.mark' > -- > > Which is odd because I can perform cat on it.. > # cat /usr/local/nagios/var/perfdata_log.perfdata-service.log.mark > 18196528 > 508091289 > # > > After all of this, the graphs are still not working. :( > My web browser is firefox, and I have also tried using konqueror. I have > also tried (with a mac) Safari and IE. They all give me the same output. > > This is the error from apache's logs... (it doesn't really say much) > --- > [Wed Jan 05 11:08:02 2005] [error] [client 172.16.1.28] malformed header > from script. Bad header=perfparse.cgi: perfparse.cgi, referer: > http://X.X.X.X/nagios/cgi-bin/perfparse.cgi > --- > >> >>> >>> I have ran mysql_create.sql and created all the tables in the >>> database, it seems it is connecting correctly, too, as I had to fix >>> the config file to ensure this. >> >> >> >> Can you give me more details of the fix you has to make? >> > > I only meant that I had to change the password and the hostname > so that it would connect properly. > Also, in the create_mysql file, I had to change one of the lines from > > CREATE TABLE IF NOT EXISTS perfdata_registry ( > host VARCHAR(75) DEFAULT NULL, > ..... > > to... > > CREATE TABLE IF NOT EXISTS perfdata_registry ( > host VARCHAR(75) NOT NULL, > ..... > > as it did not like the default null key. I saw this as a workaround on a > bugtracking list somewhere. Could this have possibly made it all fall over? > > I should probably also mention that I am using mysql 3.2. I'm unable to > upgrade it as it is in a production environment. I have ensured that I > used the '--no_transactions' flags where appropriate. > > Thanks a lot for any help, and thanks for the help so far. :D > > Cheers, > James Greenhalgh > > > ------------------------------------------------------- > The SF.Net email is sponsored by: Beat the post-holiday blues > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > _______________________________________________ > Perfparse-users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perfparse-users > -- Ben Clewett bcl...@pe... PerfParse http://www.perfparse.org PP FAQ http://wiki.perfparse.org/tiki-list_faqs.php |
From: James G. <ja...@m5...> - 2005-01-05 22:13:21
|
Hi Ben, Thanks again for your help :) Ben Clewett wrote: > Hi James, > > I have looked through your reply and cannot see any reason for this > error. Yet! You are not the only person with this error so I would > really like to work with you and sort this out! > > I would be very interested in help from any other member who understand > the CGI and HTTP protocols. > > I suspect the code is crashing in the function scgi(char *) in cgi/cgi.c > This takes the QUERY_STRING and extracts CGI variables from it. > > Can I ask you to repeat one of your tests with a slightly different test > value: > > Can you try running the perfparse.cgi from the command line: > > $ export QUERY_STRING="show_config=1" > $ /...../perfparse.cgi > I should be glad when things don't crash, but this time I'm not.. :( It spits out the same output as with a question mark. # export QUERY_STRING="show_config=1" # ./perfparse.cgi > noquestionmark # export QUERY_STRING="?show_config=1" # ./perfparse.cgi > questionmark # diff questionmark noquestionmark # # No difference. But at least we've narrowed it down to not being there!! :) I also took the liberty of trying some of the pages that I'm trying to load in the web browser from the command line. # export QUERY_STRING="all_raw=1" # ./perfparse.cgi Expires: Sun, 02 Jan 2000 01:01:01 GMT content-type: text/html <HTML> <HEAD> <TITLE> PerfParse</TITLE> <BODY BGcolor="#EEFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#000000"> <p align=center> <table width=600 border=1 cellpadding=5 cellspacing=0 bgcolor="#CCCCCC"><tr><td> <table width="100%" border=0 cellpadding=0 cellspacing=0> <tr> <td width=60><img src="/nagios/images/perfparse-logo-sm.png" border=0></td> <td align=center><font face="Arial, Helvetica" size="2"> <b>Raw Nagios Plugin Report</b> <br> <a href="perfparse.cgi">Return to main menu</a> </font></td> <td width=60 align=right><font face="Arial, Helvetica" size="1">v0.104.6</font></td> </tr> </table> </td></tr></table> </p> <form method="get"> <input type=hidden name="all_raw" value="1"> <p align=center> <table width=600 border=1 cellpadding=5 cellspacing=0 bgcolor="#CCCCCC"><tr><td> <table width="100%" border=0 cellpadding=0 cellspacing=0> <tr> <td align=center width="33%"><font face="Arial, Helvetica" size=2> Select Host Group: </td> <td> <select name="group_name"> <option value="">-- Select group: -- <option value="**ALL**"><All Groups> </select> <input type=submit value="Enter"> </td></form> </tr> </table> </td></tr></table></p> </body></html> # # If I save this to a file and load it in my web-browser, then it works OK. So this leads us to believe that there is something wrong with the way my webserver is interpreting the cgi doesn't it? I'm no expert on cgi stuff, I'll read up on it a bit today. :/ > Can you show me the result of this action? > > I am hoping this will crash on your system. Although it does not on > mine. If this is the case, I at least know where the problem is! > > Again to all readers: Another fix to this is to use a free CGI lib > capable of examining POST and GET methods, and replace mine. (I use > commercial ones at my place of work, cannot use them in PP.) Would any > reader be able to recommend one? > > James, to your other queries: > > Glad you have data in your system now :) > > Sorry you cannot upgrade your MySQL. This may cause some problems later > on. I will have to think of you when I code database conversions... > Hopefully I can upgrade it at some stage. I just don't want the system to fall over because I wanted some graphs. I would get a butt-kickin' > Everything else seems in order. Lets get this fix for you :) > > Ben > > > > James, > > Can you try another fix as well? > > In cgi/cgi.c, line 62, can you replace with: > > if (sStart[0] != '?' && sStart[0] != '&' && sStart + 1 != sQuery) { > > Let me know if this fixes the problem :) > > Ben > Gave it a whirl, didn't seem to change anything at first glance. Still good ol' error 500. Hope we haven't hit a dead end. Is there anyway that we can actually find out what apache thinks is the 'malformed header'? If we knew that then we should be able to fix the problem no worries right?... Thanks a lot for all your help Ben. I'm determined to get this to work now!! Kind regards, James Greenhalgh |
From: Yves <yme...@pe...> - 2005-01-06 08:55:00
|
Hi :) I'm the one who asks questions and has no answer :) > I also took the liberty of trying some of the pages that I'm trying to > load in the web browser from the command line. > > # export QUERY_STRING=3D"all_raw=3D1" > # ./perfparse.cgi > Expires: Sun, 02 Jan 2000 01:01:01 GMT > content-type: text/html > > <HTML> ... And what about the server refusing to send a page that has already expire= d ? That page is more than 5 years ago :) Yves --=20 - Homepage - http://ymettier.free.fr - http://www.logicacmg.com - - GPG key - http://ymettier.free.fr/gpg.txt - - Maitretarot - http://www.nongnu.org/maitretarot/ - - Perfparse - http://perfparse.sf.net/ - |
From: Ben C. <bcl...@pe...> - 2005-01-06 09:15:24
|
Yves, James, I can see your reasoning, the page has expired a long time ago! This meta header is used to tell the browser how to cache this document. In this case, cache until 2000-01-01, or don't cache at all. This is the most powerful way we have found of forcing a browser not to cache the CGI. Some browsers (MSIE v4) can be fanatical about caching, which makes life for a CGI coder very hard. Eg, having to add random numbers into every URL, ugh! There would be a large number of web sites which would fail to work if this had other implications. But maybe in the future a more dynamic date should be used. However, to keep an open mind, there is no harm in trying to alter this. Line 365 in perfgraph.c, try a more recent date: Expires: Sat, 01 Jan 2005 01:01:01 GMT It would be interesting to see if this did effect the code? Ben Yves wrote: > Hi :) > > I'm the one who asks questions and has no answer :) > > >>I also took the liberty of trying some of the pages that I'm trying to >>load in the web browser from the command line. >> >># export QUERY_STRING="all_raw=1" >># ./perfparse.cgi >>Expires: Sun, 02 Jan 2000 01:01:01 GMT >>content-type: text/html >> >><HTML> > > ... > > And what about the server refusing to send a page that has already expired ? That page > is more than 5 years ago :) > > Yves > > -- Ben Clewett bcl...@pe... PerfParse http://www.perfparse.org PP FAQ http://wiki.perfparse.org/tiki-list_faqs.php |
From: Ben C. <bcl...@pe...> - 2005-01-05 09:08:32
|
James, Can you try another fix as well? In cgi/cgi.c, line 62, can you replace with: if (sStart[0] != '?' && sStart[0] != '&' && sStart + 1 != sQuery) { Let me know if this fixes the problem :) Ben James Greenhalgh wrote: > Hi Ben, > > First of all, thanks a lot for helping me out. Something worthy of note: > I have updated to 104.6 and seem to be getting the same old problems... > I have upgraded the database with 'perfparse-db-tool --update', and > ensured that all the settings are the same... > > Ben Clewett wrote: > >> James, >> >> I'll see if I can offer any help. >> >> James Greenhalgh wrote: >> >>> Hi all, >>> >>> I've been reading through the archives, and saw that Gili has had the >>> same problem as myself. That is, error 500 on perfparse.cgi. The >>> following is the error.. >>> >>> -- >>> Server error! >>> >>> The server encountered an internal error and was unable to >>> complete your request. >>> >>> Error message: >>> malformed header from script. Bad header=perfparse.cgi: perfparse.cgi >>> >>> If you think this is a server error, please contact the webmaster >>> >>> Error 500 >>> >>> X.X.X.X >>> Tue 04 Jan 2005 10:07:03 EST >>> Apache/2.0.40 (Red Hat Linux) >>> -- >>> The error only occurs when there are arguments passed to >>> perfparse.cgi. Eg perfparse.cgi?edit_host_list=1 >>> When I go to perfparse.cgi, I can see the menu page correctly. The >>> permissions for perfparse.cgi are exactly the same as those for the >>> nagios cgi files. >>> All of the nagios pages work correctly and have been working for a >>> while. I am running nagios v1.1 >> >> >> >> 1. Can you try the following URL: >> >> perfparse.cgi?show_config=1 >> >> Does this also return the same error? > > > Yeah I get exactly the same error when I use that :( > >> >> 2. Can you try running the program from the command line: >> >> $ export QUERY_STRING="?show_config=1" >> $ /...../perfparse.cgi >> >> Can you show me the result of this action? >> > > # ./perfparse.cgi > Expires: Sun, 02 Jan 2000 01:01:01 GMT > content-type: text/html > > <HTML> > <HEAD> > <TITLE> > PerfParse</TITLE> > <BODY BGcolor="#EEFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000" > ALINK="#000000"> > <pre> > perfparse.cgi > > # File where Perfparse logs messages > # Error_Log = "string" > Error_Log = "/usr/local/nagios/var/perfparse.log" > > # Rotate Perfparse log files > # Error_Log_Rotate = "Y/N" > Error_Log_Rotate = "Yes" > > # Database user > # DB_User = "string" > DB_User = "nagios" > > # Database password > # DB_Pass = "string" > DB_Pass = "myawesomepassword" > > # Database name > # DB_Name = "string" > DB_Name = "nagios" > > # Database hostname > # DB_Host = "string" > DB_Host = "localhost" > > # Policy for default user > # Default_user_permissions_Policy = "string" > Default_user_permissions_Policy = "rw" > > # Default permissions for host groups > # Default_user_permissions_Host_groups = "string" > Default_user_permissions_Host_groups = "rw" > > # Summary Permissions for default user > # Default_user_permissions_Summary = "string" > Default_user_permissions_Summary = "rw" > > # Dummy hostname if gethostname() does not work > # Dummy_Hostname = "string" > Dummy_Hostname = "dummy" > > > > </pre> > </body></html> > # > >> 3. Finally, can you try a small script in your cgi-bin directory: >> >> >> ---------------------test.cgi------------------------- >> #!/bin/sh >> echo "Expires: Sun, 02 Jan 2000 01:01:01 GMT" >> echo "content-type: text" >> echo "" >> echo "QUERY_STRING = $QUERY_STRING" >> echo "" >> set | grep "^[A-Za-z].*=" >> ------------------------------------------------------ >> >> chmod a+x test.cgi >> >> How call this URL as: >> >> http://....../test.cgi?testVariable=testValue >> > It creates a text file containing the following... > > QUERY_STRING = testVariable=testValue > > AUTH_TYPE=Basic > BASH=/bin/sh > BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" > [5]="i386-redhat-linux-gnu") > BASH_VERSION='2.05b.0(1)-release' > DIRSTACK=() > DOCUMENT_ROOT=/var/www/html > EUID=48 > GATEWAY_INTERFACE=CGI/1.1 > GROUPS=() > HOSTNAME=netmon > HOSTTYPE=i386 > HTTP_ACCEPT='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' > > HTTP_ACCEPT_CHARSET='ISO-8859-1,utf-8;q=0.7,*;q=0.7' > HTTP_ACCEPT_ENCODING=gzip,deflate > HTTP_ACCEPT_LANGUAGE='en-us,en;q=0.5' > HTTP_CONNECTION=keep-alive > HTTP_COOKIE=phpbb2mysql_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A2%3A%2212%22%3B%7D > > HTTP_HOST=203.24.149.157 > HTTP_KEEP_ALIVE=300 > HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) > Gecko/20041207 Firefox/1.0 (Debian package 1.0-5)' > IFS=' > MACHTYPE=i386-redhat-linux-gnu > OPTERR=1 > OPTIND=1 > OSTYPE=linux-gnu > PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin > PIPESTATUS=([0]="0") > POSIXLY_CORRECT=y > PPID=15513 > PS4='+ ' > PWD=/usr/local/nagios/sbin > QUERY_STRING=testVariable=testValue > REMOTE_ADDR=172.16.1.28 > REMOTE_PORT=33070 > REMOTE_USER=nagiosadmin > REQUEST_METHOD=GET > REQUEST_URI='/nagios/cgi-bin/test.cgi?testVariable=testValue' > SCRIPT_FILENAME=/usr/local/nagios/sbin/test.cgi > SCRIPT_NAME=/nagios/cgi-bin/test.cgi > SERVER_ADDR=X.X.X.X > SERVER_ADMIN=root@localhost > SERVER_NAME=X.X.X.X > SERVER_PORT=80 > SERVER_PROTOCOL=HTTP/1.1 > SERVER_SIGNATURE='<address>Apache/2.0.40 Server at X.X.X.X Port > 80</address> > SERVER_SOFTWARE='Apache/2.0.40 (Red Hat Linux)' > SHELL=/sbin/nologin > SHELLOPTS=braceexpand:hashall:interactive-comments:posix > SHLVL=1 > TERM=dumb > UID=48 > UNIQUE_ID=H0yXun8AAAEAADyZLDIAAAAA > >> Please tell me what is displayed. This would be of great help in >> finally fixing this problem.! >> >> >> >>> >>> I'm using perfparse-0.104.4. The following is some output from my >>> perfdata-service.log >>> >>> 1104549133 services-cbr / DISK OK [241572 kB (51%) free >>> on /dev/hda1] OK >>> 1104549133 services3-cbr /var DISK OK [14202808 kB (98%) >>> free on /dev/hda2] OK >>> 1104549133 pix PING PING OK - Packet loss = 0%, RTA = >>> 1.48 ms OK >>> 1104549133 ids-cbr / DISK OK - free space: / 1317 MB >>> (91%): OK /=1317MB;1235;1381;0;1454 >>> >>> Should I be seeing stuff after a '|' ? Does this mean that there is >>> no useful perfdata? >> >> >> >> The '|' has already been removed at this point. Your output looks >> correct. The only think I notice is that you may need a more recent >> version of your plugins. Since only the last line shows has returned >> any graphable data. (The part after the 'OK') >> > No worries. I'll do that after I fix all this other stuff. :) > >>> >>> Also, and I think this may be intertwined with my cgi problem, I am >>> getting no data at all in my database. >>> The following is an error from perfparse.log.20050104.log >>> >>> 2005/01/04 10:54:54 [ storage.c:92 19064 ] storage_mysql module >>> successfully loaded >>> 2005/01/04 10:54:54 [log_reader.c:159 19064 ] No position mark path >>> was specified. Either disable saving the position or specify a mark >>> path. >> >> >> >> Look at the example perfparse.cgi for a line showing the mark file >> path. Ensure this is correct. Delete any existing .mark file you >> find. This should fix this. >> > Woohoooooo!!!! I put a mark path into the perfparse.cfg file and it > added stuff to my database!! > > [root@netmon bin]# ./perfparse-log2mysql -U nagios -P myawesomepassword > -D nagios -H localhost --no_transactions > 00:03:51 read 206424 @ 809.7 l/sec. Met 37477 @ 0.18 Met/l. Drop 0. > +-----------------------------+ +-----------------------------+ > | Generic statistics | | Nb Log Lines : 2 | > | Nb lines parsed : 206424 | | Nb lines dropped : 0 | > | Start date : 2005-01-05 | | Elapsed time : 00:03:51 | > | Start time : 10:06:53 | | Rate : (line/sec) 893.61 | > +-----------------------------+ +-----------------------------+ > *** WARNING! Log file has been written to. Please check. *** > *** Log file name: /usr/local/nagios/var/perfparse.log.20050105.log *** > > +-----------------------------+ +-----------------------------+ > | MySQL storage statistics | | | > | New Hosts : 30 | | Metric/line : 0.18 | > | New Metrics : 27 | | Metrics Recorded : 37477 | > | New Services : 140 | | Summary Rec Added : 0 | > | New Summary Group : 0 | | SQL Queries : 844716 | > +-----------------------------+ +-----------------------------+ > > When I look inside /usr/local/nagios/var/perfparse.log.20050105.log > the last two lines are these... > > -- > 2005/01/05 10:06:53 [ storage.c:95 22768 ] storage_mysql module > successfully loaded > 2005/01/05 10:06:53 [log_reader.c:178 22768 ] Could not open > '/usr/local/nagios/var/perfdata_log.perfdata-service.log.mark' > -- > > Which is odd because I can perform cat on it.. > # cat /usr/local/nagios/var/perfdata_log.perfdata-service.log.mark > 18196528 > 508091289 > # > > After all of this, the graphs are still not working. :( > My web browser is firefox, and I have also tried using konqueror. I have > also tried (with a mac) Safari and IE. They all give me the same output. > > This is the error from apache's logs... (it doesn't really say much) > --- > [Wed Jan 05 11:08:02 2005] [error] [client 172.16.1.28] malformed header > from script. Bad header=perfparse.cgi: perfparse.cgi, referer: > http://X.X.X.X/nagios/cgi-bin/perfparse.cgi > --- > >> >>> >>> I have ran mysql_create.sql and created all the tables in the >>> database, it seems it is connecting correctly, too, as I had to fix >>> the config file to ensure this. >> >> >> >> Can you give me more details of the fix you has to make? >> > > I only meant that I had to change the password and the hostname > so that it would connect properly. > Also, in the create_mysql file, I had to change one of the lines from > > CREATE TABLE IF NOT EXISTS perfdata_registry ( > host VARCHAR(75) DEFAULT NULL, > ..... > > to... > > CREATE TABLE IF NOT EXISTS perfdata_registry ( > host VARCHAR(75) NOT NULL, > ..... > > as it did not like the default null key. I saw this as a workaround on a > bugtracking list somewhere. Could this have possibly made it all fall over? > > I should probably also mention that I am using mysql 3.2. I'm unable to > upgrade it as it is in a production environment. I have ensured that I > used the '--no_transactions' flags where appropriate. > > Thanks a lot for any help, and thanks for the help so far. :D > > Cheers, > James Greenhalgh > > > ------------------------------------------------------- > The SF.Net email is sponsored by: Beat the post-holiday blues > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > _______________________________________________ > Perfparse-users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perfparse-users > -- Ben Clewett bcl...@pe... PerfParse http://www.perfparse.org PP FAQ http://wiki.perfparse.org/tiki-list_faqs.php |
From: Yves <yme...@pe...> - 2005-01-04 09:33:48
|
Hi James and all "error 500" victims :) > I'm using perfparse-0.104.4. May I suggest you to upgrade to 0.104.5 ? 0.104.4 has a broken parser. There is no fix for your problem in 0.104.5 : I only say that because the= parser of 0.104.4 does not behave as expected in some cases. About your bug : it will probably not help but who knows ? What is your i= nternet browser ? Have you tried with another browser ? Yves --=20 - Homepage - http://ymettier.free.fr - http://www.logicacmg.com - - GPG key - http://ymettier.free.fr/gpg.txt - - Maitretarot - http://www.nongnu.org/maitretarot/ - - Perfparse - http://perfparse.sf.net/ - |