Observium Install on Raspbian

From KlavoWiki
Jump to navigationJump to search

The following instructions are to install Observium on the Raspberry Pi

Package Installs

apt-get -y install libapache2-mod-php7.3 php7.3-cli php7.3-mysql php7.3-gd php7.3-common php-pear snmp fping mariadb-server-10.3 python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick

Observium Install

cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
rm -f observium-community-latest.tar.gz

Create SQL Database

The below is using a username of myobservium and a password of somerandompassword

mysql
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'myobservium'@'localhost' IDENTIFIED BY 'somerandompassword';
flush privileges;
exit

Config File

cd /opt/observium
cp config.php.default config.php
vi config.php

Modify Entries

// Database config ---  This MUST be configured
$config['db_host'] = 'localhost';
$config['db_user'] = 'myobservium';
$config['db_pass'] = 'somerandompassword';
$config['db_name'] = 'observium';

Create Config Folders

mkdir logs
mkdir rrd
chown www-data:www-data logs
chown www-data:www-data rrd

Populate SQL Database

php /opt/observium/discovery.php -u

Create Apache WEB Site

Replace the Apache default setting

/etc/apache2/sites-available/000-default.conf

Delete all lines and add the following:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /opt/observium/html
    <FilesMatch \.php$>
      SetHandler application/x-httpd-php
    </FilesMatch>
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /opt/observium/html/>
            DirectoryIndex index.php
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
    </Directory>
    ErrorLog  ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog  ${APACHE_LOG_DIR}/access.log combined
    ServerSignature On
</VirtualHost>

Enable php mcrypt module:

phpenmod mcrypt

Enable mod_rewrite for Observium's cleaner URLs:

a2enmod rewrite
systemctl restart apache2

Create Admin User

/opt/observium/adduser.php <username> <password> 10

Add Device

This command is for the CLI but can be done from the WEB interface

/opt/observium/add_device.php <hostname> <community> v2c

Cron Job

crontab -e

Add the following Lines

30 4 * * * /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * /opt/observium/poller-wrapper.py 15 >> /dev/null 2>&1

WMI

If you wish to gather further information from Windows computers using WMI then you will need the following, along with the appropriate configuration and enabling of WMI in Observium

rpm -Uvh  http://www6.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/wmi-1.3.14-4.el7.art.x86_64.rpm

NOTE: It seems that using WMI to monitor storage stops the graphing of disk usage. If you disable disk monitoring in WMI and enable in modules so that disk graphing is done by SNMP data rather than WMI seems to fix this problem.

vi /opt/observium/config.php
// Enable default WMI Paramaters
$config['wmi']['domain'] = "domainname"; // NetBIOS Name Shorthand Domain/Workgroup (ie. notdomain.local.com)
$config['wmi']['user'] = "useraccount";
$config['wmi']['pass'] = "passw0rd";
$config['wmi']['modules']['storage'] = 0;

$config['poller_modules']['wmi'] = 1;

Syslog Server

vi /etc/rsyslog.conf

Uncommment the following lines

$ModLoad imudp
$UDPServerRun 514

Add the following to the end of the file.

# Always use full names with domain part
$PreserveFQDN on

Create a new file

touch /etc/rsyslog.d/30-observium.conf

add the following lines

vi /etc/rsyslog.d/30-observium.conf
#---------------------------------------------------------
#send remote logs to observium

$template observium,"%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n"
$ModLoad omprog
$ActionOMProgBinary /opt/observium/syslog.php

:inputname, isequal, "imudp" :omprog:;observium

& ~
# & stop
#---------------------------------------------------------

Enable Syslog in Observium

vi /opt/observium/config.php
// Enable Syslog
$config['enable_syslog'] = 1;
$config['syslog']['debug'] = TRUE;
service rsyslog restart

PHP Timezone

By default the Apache server does not recognise the time zone that your server is located. You will need to ensure that you configure PHP for the correct timezone.

vi /etc/php/7.0/apache2/php.ini
date.timezone = Australia/Brisbane

For a complete list of timezones.

Additional Packages

apt-get -y install mtr nmap