Merge branch 'master' into devel

This commit is contained in:
Paul Gear
2013-10-29 21:06:38 +10:00
8 changed files with 181 additions and 40 deletions

View File

@@ -1,3 +1,3 @@
Please check http://www.observium.org/wiki/Changelog for an up to date changelog.
A summary changelog will be provided in future.
You can also browse the subversion repository commit logs for more granular updates.
For now, please see the git commit logs at https://github.com/librenms/librenms/commits/master

View File

@@ -1,13 +1,15 @@
NOTE: What follows is a very rough list of commands. This works on a fresh install of Ubuntu 12.04.
NOTE: These instructions assume you are using a separate server for your database. You will need to adjust the instructions if you are running the database on the same server.
NOTE: These instructions assume you are the root user. If you are not, prepend `sudo` to all shell commands (the ones that aren't at `mysql>` prompts) or temporarily become a user with root privileges with `sudo -s`.
## On the DB Server ##
aptitude install mysql-server mysql-client snmpd
apt-get install mysql-server mysql-client snmpd
mysql -uroot -p
enter root mysql password
Create database
Enter the MySQL root password to enter the MySQL command-line interface.
Create database.
CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.*
@@ -17,45 +19,45 @@ Create database
FLUSH PRIVILEGES;
exit
allow MySQL to listen on local LAN
Replace `<ip>` above with the IP of the server running LibreNMS. If your database is on the same server as LibreNMS, you can just use `localhost` as the IP address.
If you are deploying a separate database server, you need to change the `bind-address`. If your MySQL database resides on the same server as LibreNMS, you should skip this step.
vim /etc/mysql/my.cnf
edit line 47 (should be `bind-address = 127.0.0.1`)
and change it to your IP address
now restart MySQL
Find the line: `bind-address = 127.0.0.1`
Change `127.0.0.1` to the IP address that your MySQL server should listen on. Restart MySQL:
service mysql restart
## On the NMS ##
aptitude install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear snmp graphviz php5-mcrypt apache2 fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd mysql-client php-net-ipv4 php-net-ipv6 rrdtool
Install necessary software. The packages listed below are an all-inclusive list of packages that were necessary on a clean install of Ubuntu 12.04.
apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear snmp graphviz php5-mcrypt apache2 fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd mysql-client php-net-ipv4 php-net-ipv6 rrdtool
### Cloning ###
You can clone the repository via HTTPS or SSH. In either case, you need to ensure the appropriate port (443 for HTTPS, 22 for SSH) is open in the outbound direction for your server.
cd /opt
git clone https://github.com/librenms/librenms.git librenms
cd /opt/librenms
cp config.php.default config.php
vim config.php
NOTE: The recommended method of cloning a git repository is HTTPS. If you would like to clone via SSH instead, use the command `git clone git@github.com:librenms/librenms.git librenms` instead.
change lines 6-9 to match your db config
change lines 17 and 20 to 'librenms'
change line 31 to match your most common read-only SNMP community string
Change the values to the right of the equal sign for lines beginning with `$config[db_]` to match your database information as setup above.
copy sql commands to db server
Change the value of `$config['snmp']['community']` from `public` to whatever your read-only SNMP community is. If you have multiple communities, set it to the most common.
scp -r build.sql <ip>:
Initiate the follow database with the following command:
Subsitute your database server's IP address. If it's local host, the above step is unnecessary.
php build-base.php
## On DB Server ##
mysql -ulibrenms -p < build.sql
This assumes you used the username `librenms`. If you used something different, adjust here.
## On the NMS ##
Create admin user - priv should be 10
Create the admin user - priv should be 10
php adduser.php <name> <pass> 10
@@ -72,7 +74,7 @@ First, create and chown the `rrd` directory and create the `logs` directory
Note that if you're not running Ubuntu, you may need to change the owner to whomever the webserver runs as.
Next, add the following to `/etc/apache2/available-sites/librenms.conf`
Next, add the following to `/etc/apache2/sites-available/librenms.conf`
<VirtualHost *:80>
DocumentRoot /opt/librenms/html/
@@ -85,8 +87,7 @@ Next, add the following to `/etc/apache2/available-sites/librenms.conf`
</Directory>
</VirtualHost>
Don't forget to change 'example.com' to your domain
Enable the vhost and restart Apache
Don't forget to change 'example.com' to your domain, then enable the vhost and restart Apache:
a2ensite librenms.conf
a2enmod rewrite
@@ -98,13 +99,9 @@ Enable the vhost and restart Apache
This assumes you haven't made community changes--if you have, replace `public` with your community. It also assumes SNMP v2c. If you're using v3, there are additional steps (NOTE: instructions for SNMPv3 to come).
Discover localhost
Discover localhost and poll it for the first time:
php discovery.php -h all
First poller
php poller.php -h all
php discovery.php -h all && php poller.php -h all
Create the cronjob

123
INSTALL_RHEL.md Normal file
View File

@@ -0,0 +1,123 @@
NOTE: What follows is a very rough list of commands. This works on a fresh install of CentOS 6.4.
NOTE: These instructions assume you are the root user. If you are not, prepend `sudo` to all shell commands (the ones that aren't at `mysql>` prompts) or temporarily become a user with root privileges with `sudo -s`.
## On the DB Server ##
yum install net-snmp mysql-server
service snmpd start
service mysqld start
chkconfig --levels 235 mysqld on
chkconfig --levels 235 snmpd on
mysql_secure_installation
mysql -uroot -p
Enter the MySQL root password to enter the MySQL command-line interface.
Create database.
CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.*
TO 'librenms'@'<ip>'
IDENTIFIED BY '<password>'
;
FLUSH PRIVILEGES;
exit
Replace `<ip>` above with the IP of the server running LibreNMS. If your database is on the same server as LibreNMS, you can just use `localhost` as the IP address.
If you are deploying a separate database server, you need to change the `bind-address`. If your MySQL database resides on the same server as LibreNMS, you should skip this step.
vim /etc/my.cnf
Add the following line:
bind-address = <ip>
Change `<ip>` to the IP address that your MySQL server should listen on. Restart MySQL:
service mysqld restart
## On the NMS ##
Install necessary software. The packages listed below are an all-inclusive list of packages that were necessary on a clean install of CentOS 6.4. It also requires the EPEL repository.
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install php php-cli php-gd php-mysql php-snmp php-pear httpd net-snmp graphviz graphviz-php mysql ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils vixie-cron php-mcrypt fping git
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2
chkconfig --levels 235 httpd on
service httpd start
### Cloning ###
You can clone the repository via HTTPS or SSH. In either case, you need to ensure the appropriate port (443 for HTTPS, 22 for SSH) is open in the outbound direction for your server.
cd /opt
git clone https://github.com/librenms/librenms.git librenms
cd /opt/librenms
cp config.php.default config.php
vim config.php
NOTE: The recommended method of cloning a git repository is HTTPS. If you would like to clone via SSH instead, use the command `git clone git@github.com:librenms/librenms.git librenms` instead.
Change the values to the right of the equal sign for lines beginning with `$config[db_]` to match your database information as setup above.
Change the value of `$config['snmp']['community']` from `public` to whatever your read-only SNMP community is. If you have multiple communities, set it to the most common.
Add the following line to the end of `config.php`:
$config['fping'] = "/usr/sbin/fping";
Initiate the follow database with the following command:
php build-base.php
Create the admin user - priv should be 10
php adduser.php <name> <pass> 10
Substitute your desired username and password--and leave the angled brackets off.
### Web Interface ###
To prepare the web interface (and adding devices shortly), you'll need to create and chown a directory as well as create an Apache vhost.
First, create and chown the `rrd` directory and create the `logs` directory
mkdir rrd logs
chown apache:apache rrd/
Note that if you're not running Ubuntu, you may need to change the owner to whomever the webserver runs as.
Next, add the following to `/etc/apache2/sites-available/librenms.conf`
<VirtualHost *:80>
DocumentRoot /opt/librenms/html/
ServerName librenms.example.com
CustomLog /opt/librenms/logs/access_log combined
ErrorLog /opt/librenms/logs/error_log
<Directory "/opt/librenms/html/">
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
Don't forget to restart Apache to make this active:
service httpd restart
### Add localhost ###
php addhost.php localhost public v2c
This assumes you haven't made community changes--if you have, replace `public` with your community. It also assumes SNMP v2c. If you're using v3, there are additional steps (NOTE: instructions for SNMPv3 to come).
Discover localhost and poll it for the first time:
php discovery.php -h all && php poller.php -h all
Create the cronjob
cp librenms.cron /etc/cron.d/librenms

20
build-base.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
include( "config.php" );
$sql_file = 'build.sql';
$sql_fh = fopen( $sql_file, 'r' );
$connection = mysql_connect( $config['db_host'], $config['db_user'], $config['db_pass'] );
mysql_select_db( $config['db_name'] );
while( !feof( $sql_fh ) ) {
$line = fgetss( $sql_fh );
$creation = mysql_query( $line );
if( !$creation ) {
echo( mysql_error() . "\n" );
}
}
fclose($sql_fh);
?>

View File

@@ -217,7 +217,7 @@
}
// Html template
$logo = $pdf->serializeTCPDFtagParameters(array('images/observium-logo.png', 15, 18, 100, '', '', 'www.observium.org', 'T'));
$logo = $pdf->serializeTCPDFtagParameters(array('images/dummy-logo.png', 15, 18, 100, '', '', 'www.example.com', 'T'));
$html .= "<tcpdf method=\"Image\" params=\"".$logo."\" />";
$html .= "<h1 class=\"right\">Billing Report</h1>";
$html .= "<p></p>";

View File

@@ -54,7 +54,7 @@ class ObsPDF extends TCPDF
// Set Font
$this->SetFont('helvetica', 'N', 8);
// Set Footer text
$this->Cell(0, 0, 'Created by Observium (www.observium.org)', 0, false, 'L', 0, 'http://www.observium.org/', 0, false, 'M', 'M');
$this->Cell(0, 0, 'Created by '.$config['project_name'], 0, false, 'L', 0, $config['project_url'], 0, false, 'M', 'M');
$this->Cell(10, 0, 'Page '.$this->getAliasNumPAge().' of '.$this->getAliasNbPages(), 0, false, 'R', 0, '', 0, false, 'M', 'M');
}
}

View File

@@ -99,6 +99,7 @@ if (isset($_SERVER["SERVER_NAME"]) && isset($_SERVER["SERVER_PORT"]))
}
$config['project_name'] = "LibreNMS";
$config['project_url'] = "https://github.com/librenms/";
$config['title_image'] = "";
$config['stylesheet'] = "css/styles.css";
$config['mono_font'] = "DejaVuSansMono";

View File

@@ -16,8 +16,8 @@ foreach (dbFetch("SELECT COUNT(*) AS count,os from devices group by `os`") as $d
$stat_serial = base64_encode(serialize($stats));
$url = "http://www.observium.org/latest.php?i=".$stats['ports']."&d=".$stats['devices']."&stats=".$stat_serial."&v=".$config['version'];
$dataHandle = fopen($url, r);
#$url = "http://www.observium.org/latest.php?i=".$stats['ports']."&d=".$stats['devices']."&stats=".$stat_serial."&v=".$config['version'];
#$dataHandle = fopen($url, r);
if ($dataHandle)
{