Purpose of our project
Introduction to Big Brother
Introduction to Spong
Big Brother
Spong
Our primary goal of the project is to get to know some current-doing
network system projects on system administration with Linux. During learning
their projects, we could understand what they are doing for, what kind
of new techniques they involve in, and so on, so as to enrich our
knowledge and experience on system administration software on Linux and
broaden our horizon with wide exploration of most advanced computer technology
in the world.
Most of our project focuses on the projects listed under Network Monitoring with Linux. After briefly studying other projects, we are interested in two projects, that is, Big Brother and Spong(Son of Pong). In order to facilatate web browsing of each of the project testing result, we first install apache on each test machine. Then we download and install each project on different test machines.
Home page: http://www.iti.qc.ca/iti/users/sean/bb-dnld/
Screen shot: http://taex001.tamu.edu/bb/
Source code: User registration requested for download; see
http://www.iti.qc.ca/iti/users/sean/bb-dnld/new-dnld.html.
License: Free software.
Big Brother is a combination of monitoring methods. Unlike SNMP where information is just collected and devices polled, Big Brother is designed in such a way that each local system broadcasts it's own information to a central location. Simultaneously, Big Brother also polls all networked systems from a central location. This creates a highly efficient and redundant method for proactive network monitoring.
Big Brother monitors the status of remote devices and generates a web page reporting its findings, much like Spong. The page it generates is a table with one row for each device and one column for each service. A green dot in a table cell indicates that the service is up and running; a more severe color such as yellow or flashing red indicates a problem. The severity computations are user-configurable. For each device you can specify which tests it should be subjected to. Finally, BB allows you to specify conditions under which it should dial your pager.
Big Brother consists of simple shell scripts which periodically monitor system conditions and network connectivity. Inter-machine communications is made possible by an extremely simple set of client-server programs, one which sends data to the display monitor or the pager and the other which is used to receive and process this data. The Display Monitor is a Web page that presents a matrix of machines and monitored functions, with color codes denoting the current status.
The background screen colour automatically adjusts to reflect the most serious condition on the network as of the last sample. Just clicking on any of the coloured dots of the display matrix will provide additional information about the status of that element.
BB includes several external tests, such as connectivity (via ping) and whether certain services are running on other machines. It also comes with a small daemon that you can run on Unix machines to monitor the cpu load and disk utilization, and determine whether specific system processes are running.
Big Brother uses port 1984.
Home page: http://strobe.weeg.uiowa.edu/~edhill/public/spong/
Screen shot: http://strobe.weeg.uiowa.edu/~edhill/public/spong/example/main.html
Source code: http://strobe.weeg.uiowa.edu/~edhill/public/spong/spong.tar.gz
Requires: Recent version of Perl.
License: Artistic License or GNU General Public License.
Spong is similar to Big Brother, with more features but not as much attitude. Both are designed to be simple and reliable, and both programs can email or page when problems arise.
This is hopefully a *simple* tool. It does not compete with Tivoli,
OpenView, UniCenter, or any other commercial packages, and they have no
intention of trying to turn it into one. It is not SNMP based, it communicates
via simple TCP based messages. It is written in Perl, so hopefully it can
be run on multiple systems (including NT - although it has not been ported
yet).
Big Brother: http://pcsec-7.cs.umbc.edu:8008/bb/www/bb.html
Spong: http://pcecs237-4.cs.umbc.edu:8000/cgi-bin/spong-display.cgi
Up to Top
During the time we are installing Spong, we have found a bug of Spong. The worst part of Spong is lacking of basic information and instruction of installation including the configuration of building process and Spong configuration. But this is also the reason why we have chance to discover a bug.The first and most significant bug is inside the key installation script named "build". The author uses tool under Perl named pod2html to convert his pod files into html files used for Spong help. The auther intended to transfer his pod files but he forgot to redirect the output into files so you just see tons of translation on screen while there is nothing inside the directory which those html files after translation should be put in.
Here is the detail how to fix it:
Inside the function of build in script "build", almost at the end of this function, we changed
ssystem("cd ./pod; $POD2HTML $file.pod && mv ./$file.html ../html/");
into
ssystem("cd ./pod; $POD2HTML $file.pod >./$file.html&& mv ./$file.html ../html/");
After this change, we will be able to save the translation for later use.
Big Brother Evaluation:It is easy to install Big Brother than to install Spong, because in the Big Brother project package downloaded from the ftp server, it also provides clear instruction for installation. Since our testing machine doesn't have kermit under specific directory, we do not test pager functions provided in this project. In addition, due to the fact that different machines put some programs such as ping under different directories, we have to change the path of them by hand.
But all in all, Big Brother is a quite well developed project and also it is a powerful and beautiful tool for network monitoring.
Spong Evaluation:
During the installation of Spong, we gradually reach a conclusion that Spong is badly configured , poorly programmed and organized. Also Spong lacks of basic maintenance. We have emailed more than three emails to the Spong maintenaner but none of them has been replied so far.
The most important part of Spong is to modify the installation script named "build". Well first there is no any information about customerizing this script except the script itself. So if you want to use Spong, you must be able to understand perl. Also the author of Spong has defined some variables inside the script and unfortunately those variables and the relationship between them are hardly understood in a short peroid. For instance, there is a variable named $PREFIX which is used to define the directory Spong should be pub in. Then there is another variable name $IPREFIX which is also used to install Spong during ./build install peroid. In this case, the auther intended to expand the Spong tar file in one place and copy them into anther place after expanding. But after we read build script, the Spong is actually expanded
under the place when you first untar the tar file.The location of configuration file used after the "./build install" step is also
confusing. Unlike apache, you only need to modify the config file under conf
directory, you need to change it under etc directory of the Spong home of your own and you can just leave the config file in config directory alone. Well the worst part of it is that you will not be able to know this unless you find yourself can not start spong-server and come back to read the raw Perl script.Also we have found two bugs in order to make Spong work. The detail of bugs please refers to the bug report.
This project brings us an opportunity to dive into the current-doing Linux projects and learn a lot from experiencing pratical work as an system administrator. From installation of apache server as the web server for our project, we get to know the apache project in the world and also learn how to install and configue it as the way we plan to implement the two projects (because they both have some special requirement for server). During installation of Big Brother and Spong, we become familar with perl programming and shell script, because unless we understand what the programs say, we couldn't find a way to fix the problems it exists.There is an old saying, "nothing is perfect in the world", so with our project and the two projects we studies. In bug report section, we demonstrate some bugs we find during our installation and implementation of the two projects. At first, we are struggling to fix them before the due day of our project. However, our instructor tells us the most important parts of our project is not to fix the bug but to find the projects we are interested in and know how and who is the person to contact to solve the problems during its execution. I think this suggestion is also good for us to understand our goal and what we have done for it.
Network Monitoring with Linux
Big Brother Project Home Page
Spong Project Home Page