SisIYA Installation Guide

Home Documentation Downloads FAQ Live demo Mailing Lists Screenshots Subversion

Installing from source

In order to install SisIYA from source just get the sources from the Subversion using the following command :

svn co https://sisiya.svn.sourceforge.net/svnroot/sisiya sisiya

or form the Downloads section. And give the following commands:

make
make install

make configures and compiles the sources. make install installs them. The make command does executes the following commands :

cd src/ && ./bootstrap create && ./configure make && cd ..
cd edbc/ && make clean && make && cd ..
cd sisiya_server/ && ./bootstrap create && ./configure && make clean && make && cd ..

The make install command does executes the following commands :

 
cd src/ && make install && cd ..
cd sisiya_server && make install && cd ..
cd edbc && make install && cd ..

At the moment src, sisiya_server and edbc use different configure and make files and options. This is the reason why I need to configure, compile and install them with seperate commands. On the top level of the source directory there is a Makefile which has the above commands in one place. Please refere to this Makefile for up-to-date compile information.

./bootsrtap create command initializes the autoconf/automake environment.
./configure configures the sources.
make compiles the sources and make install installs SisIYA. Install targets accept "install_root=/new_root_dir" parameter, so that you can install relative to the new_root_dir. Install scripts are designed and tested under CentOS 4.2, Fedora Core 4 and RedHat ES4. But I am going to modify them and make them compatible with other systems. At least I am going to read the LSB and try to be comformed with it. If your system is not one of the tested systems, you can modify the corresponding files and run the above commands again. Or just let me know and I would be very glad to help you.

Installing from rpm

This is the preferred way of installing SisIYA on Linux. There are different packages to install on:

sisiya-edbc-libs-<version>.i386.rpm
sisiya-server-<version>.i386.rpm
sisiya-server-checks-<version>.i386.rpm
sisiya-client-checks<version>.i386.rpm
sisiya-client-systems-<version>.i386.rpm
sisiya-dbscripts-<version>.i386.rpm
sisiya-php-<version>.i386.rpm
Every package hase its own version, because the development is at different stages for each package. The RPM's spec file contains the version information. sisiya-edbc-libs package contains shared libraries used by the sisiyad for database operations. This package is a database connectivity framework written in C++ and for C++ applications. It is far from a complete framework, but it meets all requirements that SisIYA needs.
sisiya-server package contains the sisiyad daemon which recieves messages from the client systems and records them in the database. This computer must be accessible from all your client systems.
sisiya-server-checks package contains scripts and programs to check your systems remotely. Therefore you are going to need access from this computer to your clients that are going to be checked remotely. Normally I install this package on the same computer, on which the sisiya-server package is installed. This is also the reason for the package name. These scripts and programs are used to check your systems and send the results to the sisiyad server.
sisiya-client-checks package contains the software for your clients. There are 5 check scripts available with this package. These are checks for filesystem, swap, system, load and users.
sisiya-client-systems package contains your site specific hostname directories, which in turn contain checks that are special for every system. More on this package later.
sisiya-dbscripts contains scripts and SQL files to initialize the SisIYA database. Normally you will need this package only to initialize the SisIYA database. After that you can use the SisIYA's administration web interface. This package does not have to be installed on the database server.
sisiya-php contains the web interface to SisIYA. There is also an administration web interface. These scripts are written in PHP for Apache. The web interface scripts support PostgreSQL and MySQL databases.

Packages to install on the SisIYA server

Install

sisiya-edbc-libs
sisiya-server
sisiya-server-checks
sisiya-dbscripts
sisiya-php
on the SisIYA server. The SisIYA server is the computer which is going to be used to monitor your systems. Actually you could install all these components on different computers.

Packages to install on your clients

Install the following packages

sisiya-client-checks
sisiya-client-systems
on your client systems. A client system is computer which is going to be monitored by the SisIYA server. You can also install these packages on the SisIYA server itsel in order to monitor it.

Recommendation

I would recommend that you rebuild the sisiya-client-checks and sisiya-client-systems packages according to your needs. In the sisiya-client-checks package you would need to chanage the hostname for your SisIYA server, which is specified in the sisiya_client.conf file. The sisiya-client-systems package contains directories which are your client systems' hostnames. In these directories you can create soft links to the scripts in the special directory, which comes with the sisiya-client-checks package. And change the default values for error and warning.

Building SisIYA RPM packages

In order to build the SisIYA RPM packages:

  1. Download the SisIYA's source RPM package sisiya-<version>.src.rpm.
  2. Install the source RPM with the rpm -ivh sisiya-<version>.src.rpm.
  3. Build the SisIYA packages with the rpmbuild -ba /path_to_rpm_SPECS_dir/sisiya.spec. Where path_to_rpm_SPECS_dir is where your RPM specs files reside. The default is /usr/src/redhat/SPECS.
You will need a Java SDK installed on your build computer. This is needed to compile the SISIYACheckDB.java program, which is used to check the database systems.
It is usefull to build the SisIYA packages and customize them for your needs. You can use the sisiya-<version>.src.rpm package or you can get the SisIYA sources from cvs server. See SisIYA homepage for more information on obtaining the sources. If you would like to use the sisiya-<version>.src.rpm follow the following steps:
  1. Unpackage the source RPM using the following command:
     rpm2cpio sisiya-<version>.src.rpm | cpio -i 
    
  2. Next untar the tar.gz file:
    tar xvfz sisiya-<version>.tar.gz
    
    Note: The version here does not contain the release part, which has the source RPM package.
  3. In the sisiya-<version>/src directory there is a script called make_sisiya_source.sh. Use this script to generate a custom sisiya-<version>.tar.gz tar file.
  4. And build the RPM packages with the following command:
    rpmbuild -ta sisiya-<version>.tar.gz
    
I would like to explain the customization (step 3) a little bit more:
  1. Create a directory where you are going to keep your customized files:
    mkdir sisiya_local_dir
    
  2. Use your favorite editor and create a file called local_confs.conf under the newly created directory:
    vi sisiya_local_dir/local_confs.conf
    
    And enter the following line:
    sisiya_server=sisiya.example.org
    admins_mail=sisiyaadmins@example.org
    
    Change the sisiya_server and admins_mail according to your needs. The sisiya_server contains the name or IP address of the server, where the sisiya-server package is installed. The admins_mail contains the e-mail address or e-mail addresses separete by a comma. Some SisIYA scripts send e-mails to the SisIYA admin(s) requiring attention of the admin.
  3. If you create the following subdirectories under the sisiya_local_dir and put customized versions of the original files, they are going to be copied by the make_sisiya_source.sh script to their corresponding directories:
    db/
    sisiya_ui/images/
    sisiya_server_checks/
    sisiya_check/systems/
    

Customization is an advanced topic which requires in depth knowledge of SisIYA. For more information read the SisIYA administration guide.

Database configuration

At the moment SisIYA supports only MySQL and PostgreSQL database systems. The sisiya-dbscripts package contains scripts for an initial database configuration. Those scripts help you to create the SisIYA database and populate it with initial data. Change into the /opt/sisiya-dbscripts directory.

  1. Decide which database system you are going to use. There are two possible choices at the momemnt: MySQL and PostgreSQL. When you have made your choice, set the DBTYPE variable in the Makefile and according to your needs edit the corresponding db_MySQL.conf or db_PostgreSQL.conf files. What you will probably need to change is the following :
    • dbserver : The server name or IP address of your database system.
    • dbauser : The database administrator's user name. Usually this is mysql for MySQL and postgres for PostgreSQL database systems.
    • dbapassword : This is the password of the dbauser.
    • dbadbname : This is the database name of the dbauser. Usually this is mysql for MySQL and template1 for PostgreSQL.
    • dbpassword : The password of the SisIYA database user (dbuser=sisiya).
  2. Edit the populate_db.sql. Here you will need to change the entries for locations (When you have more then one server room or server center, you may want to see your systems grouped by their location. This table defines the possible locations.) and systems (Here you specify your systems: servers, etc.) tables.
  3. Type make to do all the installation. If you have chosen PostgreSQL, then you are going to be prompted for dbauser's password.
Here is a short description of some files in the /opt/sisiya-dbscripts directory:

SisIYA daemon configuration

Use

man sisiyad
and
man sisiyad.conf
commands to get information about the SisIYA daemon and its configuration file. Don't forget to check and maybe edit the database related configuration part of the sisiyad.conf file.

PHP interface configuration

The sisiya-php package installs SisIYA's PHP GUI under the /var/www/html/sisiya directory. There is file called dbconf.php. Here you can edit and change values for the following database configuration parameters:

$dbType="MySQL";		# valid values are MySQL and PostgreSQL 
$db_server="localhost";		# host name or IP address of the the SisIYA's database
$db_user="sisiyauser";		# the username to connect to the SisIYA's database
$db_password="sisiyauser1";	# database user's password
$db_name="sisiya";		# name of the SisIYA's database
If you have installed SisIYA's database using the sisiya-dbscripts package scripts, then you can use the initial administration user admin with password sisiyaadmin1. After successfully accessing the GUI interface, you can change the password for this user or generate another admin or general users. The difference between admin users and general users is that general users do not have all permissions that admin users have. The admin user interface is accessable through the monitoring interface or directly by specifying sisiya_adm.php. For example:
http://sisiya.example.org/sisiya_adm.php

Client configuration

Clients are configured through the sisiya_client.conf configuration file under the /opt/sisiya_client_checks directory. This file is installed on every computer, which is going to be monitored by SisIYA. Here is a partially listing of the sisiya_client.conf file:

### SisIYA Server's name or IP address
SISIYA_SERVER=127.0.0.1
### SisIYA server port on which the SisIYA daemon is listenening 
SISIYA_PORT=8888
###
### Field seperator, used to seperate fields in the SisIYA message
SP="~"
##########################################################
sisiya_hostname=`hostname`
sisiya_base_dir="/opt/sisiya_client_checks"
sisiya_bin_dir="${sisiya_base_dir}/bin"
sisiya_host_dir="${sisiya_base_dir}/systems/${sisiya_hostname}"
send_message_prog="${sisiya_bin_dir}/sisiya_send_message.sh"
send_message2_prog="${sisiya_bin_dir}/sisiya_send_message2.sh"
sisiyac_prog="${sisiya_bin_dir}/sisiyac"
sisiya_functions="${sisiya_bin_dir}/sisiya_functions.sh"
### status ids
status_info=0
status_ok=1
status_warning=2
status_error=3
###
### service ids, these IDs must be identical with IDs in the SisIYA database
serviceid_system=0
serviceid_filesystem=1
serviceid_cpu=2
serviceid_swap=3
serviceid_load=4
serviceid_smtp=5
This configuration file is actually a BASH script. This configuration file is included from all SisIYA check scripts. Therefore, BASH syntax apply to this script. SISIYA_SERVER is the name or the IP address of the SisIYA server. SISIYA_PORT is the the port number where the SisIYA daemon listens on. sisiya_hostname is the name of the system (in this case the name of the client) for which the checks are performed. The SisIYA daemon checks this name before recording the results of the checks. Therefore, it must be a name whic also exists in the SisIYA's database. The sisiya_hostname can either be short hostname or a fully qualified hostname. The value of this parameter (sisiya_hostname) is also used by the sisiya_all.sh script to locate the host's systems directory under the /opt/sisiya_client_checks/systems directory. Under this directory (/opt/sisiya_checks/systems/$sisiya_hostname) are the links to special checks for this system and/or config files for various scripts. For more info about SisIYA scripts refer to the SisIYA Administration Guide. SP is the field seperator used to seperate fields in the SisIYA message. sisiya_base_dir is the top level directory where the SisIYA client package is installed to. sisiya_bin_dir is the directory where SisIYA binaries and scripts reside. sisiya_host_dir is the directory where the customization conf files and links to the spacial scripts reside. send_message_prog is a script, which is used to send one SisIYA message at a time to the SisIYA server. send_message2_prog is another script, which is used to send multiple SisIYA messages to the SisIYA server. Both of these scripts use the sisiyac_prog for sending the SisIYA message to the SisIYA server. sisiya_functions is a BASH script, which contains common functions used in the SisIYA check scripts. status_info, status_ok, status_warning and status_error are the all possible status IDs used in SisIYA. You do need to change these status values, unless you also change them in the database. The rest of the configuration file contains service IDs for various SisIYA checks. These values must also correspond to those in the SisIYA database.