Gossip based distributed monitoring system for Linux clusters
License
BSD-3-Clause and 2 other licenses found
Licenses found
BSD-3-Clause
Copyright.txt
BSD-3-Clause
Copyright-ClusterLogic.txt
BSD-3-Clause
Copyright-Lior.txt
liororama/gossimon
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is gossimon, the distributed gossip based, open-source information system Gossimon is distributed under the BSD License, see Copyright.txt. Readme Index: * Description * History * Gossimon Programs * Supported Linux Distributions * Compilation * Installation Description: ------------ Gossimon is a gossip based distributed monitoring system for a cluster of Linux nodes. Each node in the cluster periodically send information about itself and others to a randomly selected node. This way each node constantly receive information about cluster nodes. This information is locally maintained (constantly updated) by each node and can be used by various clients. History: --------- Gossimon (previously known as Infod) was initially developed by Lior Amar and Ilan Peer at the Distributed computing lab managed by Prof Amnon Barak. Infod was used as the information layer of the MOSIX cluster operating system. During time Infod proved to be a valuable tool for any type of cluster and support was added for general Linux based clusters. Gossimon was developed and maintained by ClusterLogic Ltd between the years 2009-2011 (www.clusterlogic.net). During those years gossimon was release as an open source project under the BSD license (after getting the permission to do so from Prof Amnon Barak). Once ClusterLogic Ltd cease to exist the development was continued by Lior Amar (liororama@gmail.com) Currently gossimon is developed and maintained by Lior Amar as an open source project under the BSD license. Gossimon programs: ------------------ The following programs are part of the gossimon package: 1. /usr/sbin/infod: This program should run in the background in each node: it collects and propagates information such as load, memory, speed, user usage, machine status, etc. The collected information can then be used by the client application below. The sys-admin can also add externally collected information. This program must run with root privileges. 2. /usr/bin/mmon: A curses based graphical tool that presents information about the nodes in the cluster. The file /usr/share/doc/gossimon/mmon.conf.example is a sample color scheme configuration file. This file select the colors used by mmon for different displays. 3. /usr/bin/infod-client: A utility to query a node and output in XML format what it knows about other nodes. 4. /usr/sbin/infod-ctl: An administator's tool to control/query infod - modify its algorithm, query its status, etc. This utility requires root privileges. 5. /usr/bin/infod-best: Find the least loaded node(s) in the cluster (it can be used for assigning jobs in the cluster). 6. /usr/bin/testload: A program that generates load and consumes memory in a controlled way. This program is intended for generating artificial load (cpu/mem/disk) so the gossimon system can be tested 7. /usr/bin/repeat-bg: A script for running in the background multiple copies of the same program. Supported Linux distributions: ------------------------------ Gossimon was successfuly compiled and installed on the following: * Ubuntu 10.04, 12.04 (64bit) * Centos 5.5, 5.6, 5.7 (64bit) * Centos 6.4 6.5 (64bit) Feel free to send me a short email if you manage to install it on other systems (liororama@gmail.com). Manuall Compilation: ------------ This part is relevant only in case you are trying to install the source package. 1) Install required software: 1.1. Install CMake (http://www.cmake.org) on your node. o On Debain/Ubuntu systems, "apt-get install cmake" would do the trick o On other systems: look for a package, download a precompiled tarball or be bold and compile cmake yourself (it is a very easy task.. :-)) 1.2. Install libxml2: o Debian/Ubuntu: apt-get install libxml2 libxml2-dev o RH based systems: yum install libxml2 libxml2-devel 1.3. Install libglib-2.0: o Debian/Ubuntu: apt-get install libglib2.0-0 libglib2.0-dev o RH based systems: yum install glib2 glib2-devel 1.4 Install libxml++: o Debian/Ubuntu apt-get install libxml++2.6-dev o RH based: You might need to install a repository like rpmforge that contains the packages (does not appear in the regular repo for Centos5 yum install glibmm24-devel yum install libxml++-devel 1.5 Install cppunit: o Debian/Ubuntu apt-get install libcppunit-dev o RH based: yum install cppunit-devel 1.6 Install check: Debian/Ubuntu: apt-get install check RH based: yum install check-devel 1.7 Install ncurses devel: Debian/Ubuntu: apt-get install libncurses5-dev RH based: yum install ncurses-devel 2. Open the gossimon tarball (once you download it...) tar xvf gossimon-1.8.3-Source.tar.gz 3. Configure via cmake: cd gossimon-1.8.3-Source.tar.gz > cmake . In case you see errors regarding missing required libraries, go an install the missing libraries... Note: on Centos 5 you shoud install gcc44 (including g++44). You will need to tell cmake to use these compilers instead of the normal gcc COMPILER_CMAKE_FLAGS="-D CMAKE_C_COMPILER=gcc44 -D CMAKE_CXX_COMPILER=g++44" cmake $COMPILER_CMAKE_FLAGS -DCMAKE_INSTALL_PREFIX=/usr \ -DGOSSIMON_INSTALL_ETC=/etc . 4. Compile: make If all goes O.K. all required binaries are compiled and ready for install Generating packages (deb, rpm): -------------------------------- You can generate rpms or debs using the script located at the prep directory. From gossimon top dir run: ./prep/gen-bin-packages This script should generate and rpm or deb depending on the system you are running the script on (it will actually generate both deb and rpm but I always use the rpm when it is generated over centos and the deb when it is generated over ubuntu/debian Manuall Installation: ------------- This part is relevant only in case you are trying to install the source package Note: you need root privilages to install. 1. Run (as root): make install The above program will install all binaries and default configuration files to proper locations. 2. Edit /etc/gossimon/infod.conf This file contain important definitions the infod daemon will use. In many cases you will need to write down the local ip of the node in the myip=IP section. 3. Make sure the script /etc/init.d/infod is automatically run on boot time. o On Debian/Ubuntu systems use: > update-rc.d infod defaults o On Redhat bases systems use: > /sbin/chkconfig --add infod o On othe systems ... either find the apropriate command or generate the links manualy... If you need to pass command line argument to infod, you can use the file /etc/defaults/infod. 4. Edit the cluster map file: /etc/gossimon/infod.map Make sure the file contains the list of nodes you wish infod the monitor. Note: This file should be the same on all cluster node. The file format is simple and is covered in the infod man page. Lets look on a simple example. Assume you have a 25 nodes in your cluster. The nodes are named n1,n2,....n25. Also assume the IP address of the nodes are consecutive. Meaning for example n1 192.168.1.101 n2 192.168.1.102 .. n25 192.168.1.125 An infod.map file for this cluster will look like the example below infod.map file example: ----------------- Example start -------------------------------- # A comment # The following line defines a cluster with 25 nodes with consecutive # IP addresses. The first node is # n1 which gets id 1; the second # is mos2 with id 2, etc. 1 n1 25 ------------------ Example End ---------------------------------- 5. Start infod in all the nodes in your cluster. Just run the command /etc/init.d/infod start Make sure the infod daemon actually starts. ps auxww | grep infod You are supposed to see 2 processes. For example: >ps auxww |grep infod root 32534 0.0 0.6 17768 3452 ? SLs 11:26 0:00 infod root 32535 0.0 0.3 18500 1664 ? S 11:26 0:00 infod If there are no infod processes in the output of ps, try to look in the log files (/var/log/daemon on Debian/Ubuntu or /var/log/messages on RH based) 6. To view the status of your cluster, either run "mmon" in one of the cluster nodes, or "mmon -h <node-name>" from outside the cluster.
About
Gossip based distributed monitoring system for Linux clusters
Resources
License
BSD-3-Clause and 2 other licenses found
Licenses found
BSD-3-Clause
Copyright.txt
BSD-3-Clause
Copyright-ClusterLogic.txt
BSD-3-Clause
Copyright-Lior.txt
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published