Before you can use Eyes, you’ll need to get it installed. This guide will guide you to a simple, minimal installation that’ll work while you walk through the introduction.
These instructions are specific to setting up an instance starting with a bare-bones Ubuntu 9.10 Server instance.
Connect to the host as root, and upgrade to the latest:
apt-get update
apt-get dist-upgrade
apt-get install openssh-server
apt-get install nagios-plugins rrdtool python-dev python-pip python-setuptools
apt-get install python-distutils-extra python-memcache python-openssl
apt-get install python-mysqldb mysql-server memcached
apt-get install nginx python-flup
Now we’ll get some expected and needed python libraries:
pip install simplejson
pip install httplib2
pip install elementtree
pip install pyrrd
pip install django
pip install python-dateutil
pip install South
edit /etc/default/memcached:
# Set this to yes to enable memcached.
ENABLE_MEMCACHED=yes
start memcached:
service memcached start
Set up a MySQL database for eyes:
mysql -u root -p
CREATE DATABASE eyesdb CHARACTER SET utf8;
CREATE USER eyes IDENTIFIED BY 'eyes345';
GRANT ALL PRIVILEGES ON *.* to 'eyes'@'localhost' IDENTIFIED BY 'eyes345';
FLUSH PRIVILEGES;
Get mercurial to download the latest from source:
apt-get install mercurial
Set up an account and directory to house the application:
adduser eyes
su - eyes
hg clone http://bitbucket.org/heckj/eyes
Make a link for the django admin media:
cd eyes/eyeswebapp
ln -s /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/
exit
Configure nginx by creating /etc/nginx/sites-available/eyes:
upstream djangoserv {
server 127.0.0.1:8801;
}
server {
listen 80;
root /home/eyes/eyes/eyeswebapp;
location /static_media {
root /home/eyes/eyes/eyeswebapp;
autoindex on;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
access_log off;
expires 30d;
}
location / {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:8801;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}
}
Disable the default site and enable eyes:
cd /etc/nginx/sites-enabled/
rm default
ln -s /etc/nginx/sites-available/eyes
Start nginx:
service nginx start
Update the settings and establish the Fire up the django application:
su - eyes
cd eyes/eyeswebapp/
first set up the database fields:
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'eyesdb' # Or path to database file if using sqlite3.
DATABASE_USER = 'eyes' # Not used with sqlite3.
DATABASE_PASSWORD = 'eyes345' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
then enable the caching backend:
CACHE_BACKEND = "memcached://127.0.0.1:11211/?timeout=60"
set up the database:
python manage.py validate
python manage.py syncdb --noinput
python manage.py createsuperuser --username=admin --email=admin@localhost.com --noinput
python setsuperuserpassword.py
Run the server:
python manage.py runfcgi method=threaded host=127.0.0.1 port=8801
Start the local poller:
nohup python util/poster.py &
Now log in to the site:
To get the updates from source, update using mercurial:
su - eyes
cd eyes
hg pull
hg update
If you have made local copies, ‘hg update’ may not work, in which case you should:
hg merge
hg commit
python manage.py migrate
You can always see the log of changes with:
hg log