Saturday, June 13, 2009

How VMware to configure a network interface in Linux

This is funny but true. System developer updated the system including libc and other critical files. After upgrading system, they just rebooted the system and everything worked fine except VMWARE networking. Since they skipped the Linux kernel upgrade, VMWARE workstation was coming up but vmnet1 was not starting for some weird reason.

First, I restarted vmware service:

# /etc/init.d/vmware restart


Output:

Stopping VMware services:
Virtual machine monitor done
Bridged networking on /dev/vmnet0 done
DHCP server on /dev/vmnet1 done
Host-only networking on /dev/vmnet1 done
Virtual ethernet done
Starting VMware services:
Virtual machine monitor done
Virtual ethernet done
Bridged networking on /dev/vmnet0 done
Host-only networking on /dev/vmnet1 (background) done

I thought vmnet1 is up and running (at least above output indicates this) but when I run ifconfig command:
# /sbin/ifconfig -a

There was no vmnet1 interface at all. This is one of production system and now things are complicated. Oh, boy I hate stupid developer(s) they will do anything to setup and run their development environment.

Anyways one of our senior UNIX admin pointed out me to use vmnet-netifup command :D . It is use to configure a virtual networking i.e. VMWARE network interfaces. The syntax is easy:
# vmnet-netifup -d /var/run/vmnet1.pid /dev/vmnet1 vmnet1
Where,

* -d /var/run/vmnet1.pid : PID file for daemon mode
* /dev/vmnet1 : Device file
* vmnet1: Interface name (it can be eth1)

Assign an IP address:

# ifconfig vmnet xxx.xxx.xxx.xxx up

It worked like a charm. It saved me from restoring OS updates as well as reinstalling VMWARE.

//Lin U x U niL

Friday, June 12, 2009

Installing ZABBIX on Ubuntu - from source files

Preparing your system

Following are instructions on installing ZABBIX on Ubuntu. Beware that the packages in the Ubuntu repository are quite probably an old version. You can check this with

apt-cache showpkg zabbix-server-mysql

They currently apply to ZABBIX v1.4.2 and Ubuntu 7.04 but may apply to other versions. These instructions have been compiled from various sources so a big thanks to the sources. These instructions have been tested on Ubuntu 8.04 as well.

Install pre-requisites: Apache MySQL-Server PHP5 Net-Snmp libraries Curl libraries

sudo apt-get install build-essential mysql-server libmysqlclient15-dev php5 php5-gd php5-mysql snmp libsnmp-dev snmpd libcurl3-dev fping

If you aren’t going to be using Web Monitoring, you can exclude libcurl3-dev from above.

NOTE: For Jabber support make sure to include libiksemel3 and libiksemel-dev packages and then add –with-jabber=/usr/ to your configure command (STEP #4 below). The script wants the /include dir for the .h file and /lib for .c files and it needs to look in the root of the directory for them. For Ubuntu /usr is the place. Therefore, if you make sure that it knows to look in “/usr/” Jabber support should build fine. This is tested on Ubuntu Dapper 6.06 with Zabbix 1.4.2 but should work for more recent versions of Ubuntu as well.
Installing and Configuring Zabbix

1 - Make the zabbix user and group:

sudo adduser zabbix
enter in new password
confirm

use the remaining defaults.

Add zabbix to the admin group:

sudo adduser zabbix admin

2 - Download and Untar the sources:

su - zabbix
wget http://optusnet.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.6.2.tar.gz
tar zxvpf zabbix-1.6.2.tar.gz

You might want to confirm that this is actually the latest version. You might also want to find a mirror closer to you by going to http://sourceforge.net/project/showfiles.php?group_id=23494.

3 - Create a zabbix database and populate it:

sudo mysql -e"create database zabbix;"
sudo mysql -e"grant all privileges on zabbix.* to zabbix@localhost identified by 'enter-password-here';"

The following steps will require the password you assigned to the new zabbix database user account in the step above.

mysql -D zabbix -uzabbix -pzabbix < /home/zabbix/zabbix-1.6.2/create/schema/mysql.sql
mysql -D zabbix -uzabbix -pzabbix < /home/zabbix/zabbix-1.6.2/create/data/data.sql
mysql -D zabbix -uzabbix -pzabbix < /home/zabbix/zabbix-1.6.2/create/data/images_mysql.sql

4 - Configure, compile and install the server:

cd zabbix-1.6.2/
./configure --prefix=/usr --with-mysql --with-net-snmp \
--with-libcurl --enable-server --enable-agent &&
make
sudo make install

If you aren’t going to be using Web Monitoring, you can exclude –with-libcurl from above.

If you wish to add Jabber support add –with-jabber=/usr/ and make sure you have libiksemel3 and libiksemel-dev packages as noted above before STEP #1

5 - Prepare the rest of the system:

sudo nano /etc/services

Add at the end:

zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp

Save and exit.

sudo mkdir /etc/zabbix
sudo chown -R zabbix.zabbix /etc/zabbix/
cp misc/conf/zabbix_* /etc/zabbix/

Edit /etc/zabbix/zabbix_agentd.conf:

nano /etc/zabbix/zabbix_agentd.conf

Make sure that the Server parameter points to the server address, for the agent that runs on the server it is like this:

Server=127.0.0.1

Save and exit.

Edit /etc/zabbix/zabbix_server.conf:

nano /etc/zabbix/zabbix_server.conf

For small sites this default file will do, however if you are into tweaking your config for your 10+ hosts site, this is the place.

Change this:

# Database user
DBUser=zabbix
# Database password
# Comment this line if no password used
DBPassword=Secret

Save and exit.

Copy the init.d scripts to the right spot:

sudo cp misc/init.d/debian/zabbix-server /etc/init.d
sudo cp misc/init.d/debian/zabbix-agent /etc/init.d

You may need to edit these script files as the compiled versions of the zabbix files is placed under /usr/sbin (/usr/bin in older versions).

sudo nano /etc/init.d/zabbix-server

Look for the following line:

DAEMON=/home/zabbix/bin/${NAME}

and replace it with:

DAEMON=/usr/sbin/${NAME} (old versions use /usr/bin/${NAME})

Save and exit.

sudo nano /etc/init.d/zabbix-agent

Look for the following line:

DAEMON=/home/zabbix/bin/${NAME}

and replace it with:

DAEMON=/usr/sbin/${NAME} (old versions use /usr/bin/${NAME})

Save and exit.

Now set the correct permissions and set ZABBIX to start when the machine boots:

sudo chmod 755 /etc/init.d/zabbix-server
sudo update-rc.d zabbix-server defaults

sudo chmod 755 /etc/init.d/zabbix-agent
sudo update-rc.d zabbix-agent defaults

Start the server :

sudo /etc/init.d/zabbix-server start

Start the agent:

sudo /etc/init.d/zabbix-agent start

Now check to make sure that they are running:

ps -aux | grep zabbix

You should see multiple instances of zabbix_server and zabbix_client running if everything has gone ok.

6 - Configure web interface

mkdir /home/zabbix/public_html
cp -R frontends/php/* /home/zabbix/public_html/

Edit /etc/apache2/sites-enabled/000-default:

sudo nano /etc/apache2/sites-enabled/000-default

Work into file:

Alias /zabbix /home/zabbix/public_html/

AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

Order allow,deny
Allow from all


Order deny,allow
Deny from all



Save and exit.

Make php.ini adjustments:

sudo nano /etc/php5/apache2/php.ini

Change the following values:

max_execution_time = 300 ; Maximum execution time of each script, in seconds
date.timezone = America/Kentucky/Louisville

(use this url to find your correct timezone format: http://us3.php.net/manual/en/timezones.php )

Restart Apache:

sudo /etc/init.d/apache2 restart

Web Interface Configuration

Now point your browser to:

http:///zabbix/

1. Introduction

read and click Next

2. License Agreement

Read, check ‘I Agree’, click Next

3. Check of Pre-Requisites

Fix any problems, click retry. Click Next when all pre-requisites are OK.

4. Configure DB Connection

Enter appropriate settings and click Test Connection. Click Next when OK.

5. Pre-Installation Summary

Verify installation settings, click Next.

6. Install

Click Save Configuration file and save to machine. Copy zabbix.conf.php to /home/zabbix/public_html/conf/zabbix.conf.php

One way to do this from a desktop machine (requires ssh installed): scp zabbix.conf.php zabbix@:/home/zabbix/public_html/conf/

If using a windows workstation, you can use winscp http://winscp.net/eng/index.php to drag/drop the file onto your zabbix machine. This also requires ssh to be installed. (sudo apt-get install openssh-server)

Click Retry and click Next when OK.

7. Finish Click Finish to complete installation.

Your New Zabbix install will now be shown.

Log in with username: Admin No Password

First go to the tab Configuration and then Hosts.

Now create a host-group, see that you can give it some templates, e.g: Application.MySQL, Host.SNMP, Host.Standalone, Host.Unix.

Then some hosts:

Select your host-group and use Link with Template Host.Unix

Now a lot of triggers are imported and the game begins.

Go to the monitoring tab and watch the latest values roll in.

For specifics on configuration, please refer to the Zabbix user manual.

############################
change has to be taken care
# apt-get install libcurl4-openssl-dev
# wget http://nchc.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.6.4.tar.gz