Observium Install on CentOS 7.x
Disable Firewall and selinux
This is a choice you'll have to make if you want these disabled.
Refer to Firewall_for_Linux
Epel and RPMforge Install
rpm -Uhv http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Package Installs
yum -y install wget httpd php php-mysql php-gd php-posix php-pear.noarch cronie net-snmp net-snmp-utils mariadb-server mariadb MySQL-python rrdtool subversion ipmitool graphviz ImageMagick php-mcrypt jwhois fping
systemctl enable mariadb systemctl enable httpd systemctl start mariadb systemctl start httpd
Observium Install
Community 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
Monthly Stable Install
Paid version. At time of writing £150 (pounds) per year.
cd /opt svn co http://svn.observium.org/svn/observium/branches/stable observium
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_extension'] = 'mysqli'; $config['db_host'] = 'localhost'; $config['db_user'] = 'myobservium'; $config['db_pass'] = 'somerandompassword'; $config['db_name'] = 'observium';
Add entry
$config['fping'] = "/usr/sbin/fping"; $config['fping6'] = "/usr/sbin/fping6";
Create Config Folders
mkdir logs mkdir rrd chown apache:apache logs chown apache:apache rrd
Populate SQL Database
php /opt/observium/includes/update/update.php
Create Apache WEB Site
vi /etc/httpd/conf/httpd.conf
Add the following to the end of the file
<VirtualHost *:80> DocumentRoot /opt/observium/html/ ServerName observium.domain.com CustomLog /opt/observium/logs/access_log combined ErrorLog /opt/observium/logs/error_log <Directory "/opt/observium/html/"> AllowOverride All Options FollowSymLinks MultiViews Require all granted </Directory> </VirtualHost>
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
yum install rsyslog systemctl enable rsyslog systemctl start rsyslog
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;
systemctl restart rsyslog
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.ini
date.timezone = Australia/Brisbane
For a complete list of timezones.
Additional Packages
yum -y install mtr nmap libvirt-client
Add the following line as Observium by default will look for /usr/bin/mtr
vi /opt/observium/config.php
$config['mtr'] = "/usr/sbin/mtr";