ManyCodes.com – codes & scripts Get free programming codes and tutorials!

21Aug/093

Ubuntu / Debian Linux: Install Monit Linux Server Monitoring Utility

How do I install monit to monitor my server under Debian / Ubuntu Linux?

Monit is a utility for managing and monitoring processes, files, directories and devices on a Debian / Ubuntu Linux server system. Here a few common uses of monit:

  1. Monit can start a process if it does not run
  2. Restart a process if it does not respond
  3. Stop a process if it uses to much resources etc

How do I install monit utility for monitoring services?

Type the following command as the root user:

$ sudo apt-get update
 $ sudo apt-get install monit

Configure monit

Open monit configuration file /etc/monit/monitrc using vi text editor or nano command in linux:

# vi /etc/monit/monitrc

OR

# nano /etc/monit/monitrc

You need to set following parameters:

set daemon  120
 set logfile syslog facility log_daemon
 set mailserver localhost               # primary mailserver
 set alert vivek@nixcraft.com                       # receive all alerts

The next step is to save and close this file. Where,

  • set daemon 120 : Start monit in background as daemon and check the services at 2-minute intervals.
  • set logfile syslog facility log_daemon : Log messages in /var/log/messsages file
  • set mailserver localhost : Send email alert via localmail server such as sendmail. Set list of mailservers for alert delivery. Multiple servers may be specified using comma separator. By default monit uses port 25 - it is possible to override it with the PORT option.
  • set alert vivek@nixcraft.com : You can set the alert recipients here, which will receive the alert for each service. The event alerts may be restricted using the list.

Now open /etc/default/monit file to turn on monit service:

# vi /etc/default/monit

OR

# nano /etc/default/monit

Set startup to 1, so monit can start:

startup=1

Save and close the file.

Start the monit Linux monitor tool / service:

# /etc/init.d/monit start
18Aug/091

Enable Read Only Mode on a MySQL server

Here are some useful options that can prevent writing to MySQL databases, while retaining the right reading.

The activation of these features may be particularly interesting in the case of a change of server. You can then export and import all data from one server to another, being sure to maintain data integrity. As for customers, they can only read data.

1. Method by changing a variable server

To do this, connect to the server with root user:

mysql-h localhost-u root-p

and run the command:

mysql> set GLOBAL read_only = true;

The data in all databases are accessible only for reading. Note that root guard on the other hand always have the right to write.

Example of inserting data with a simple user:

mysql> INSERT INTO foo VALUES ( 'tata2');
ERROR 1290 (HY000): The MySQL server is running with the-read-only
option so it can not execute this statement

To disable this mode, you can then run the following command:

mysql> set GLOBAL read_only = false;

2. Method of positioning locks

There is also a second method is to put locks via:

mysql> FLUSH TABLES WITH READ LOCK;

The latter will then close all open tables and locks all the reading tables and bases.

At this time, applications that wish to make an entry will be queued until the unlock command:

mysql> UNLOCK TABLES;

It will be possible to see a list of requests waiting in the listing process as follows:

mysql> SHOW processlist;
| 5 | root | localhost | test | Query | 160 | Waiting for release of readlock | INSERT INTO foo VALUES ( 'tata2') |

Conclusion

The first method seems more adapted when transferring data from one MySQL server to another, while the second plutût it will be used in case of a backup cold.

5Aug/090

Install istat On a CentOS Linux to Monitor Server from iPhone or Touch

The istat application is a monitoring application that can be used to obtain basic Linux server information from your iPhone or iPod Touch phone. This application has the ability to monitor CPU Usage, Memory Usage, Disk Usage, CPU Load, and Server  Uptime among many others.

istat: Linux Server Monitor From iPhone

To install istat on CentOS Linux follow the directions below.

  1. Download istat: Download istat for Linux here.
  2. Configure istat: Unpack the istat package you downloaded from Google Code and change the directory into the newly created istat directory. Once in this directory type the below command to configure istat for your server.
    1. ./configure
    ./configure
  3. Install istat: Now issue the make and make install commands to compile and install istat on your server.
    1. make
    2. make install
    make
    make install
  4. Create istat User: Now issue the below command to create a istat user to run istat.
    1. useradd istat
    useradd istat
  5. Create istat Directory: Use the below syntax to create a directory to store the istat.pid file which needs to be readable/writeable by the istat user you just created.
    1. mkdir /var/run/istat
    2. chown istat.istat /var/run/istat
    mkdir /var/run/istat
    chown istat.istat /var/run/istat
  6. Configure istat: Now make necessary configuration changes to the /usr/local/etc/istat.conf configuration file. The typical changes include modifying the server_code which is the access code used by your iDevice to obtain the server information, monitor_net which is the interface istat will listen for incoming connections, and monitor_disk which needs to be changed to the proper mounts such as /dev/hdb1, /dev/hdc1, etc.
  7. Launch istat: Now launch the istat daemon by issuing the below command.
    1. /usr/local/bin/istatd &
    /usr/local/bin/istatd &

    The server will automatically launch with the istat user and listen on port 5109.

  8. Connect From iPhone: Now configure the new server within istat on your iPod Touch or iPhone. Once you do so click on the server, type in the password you set in step 6, and verify you are collecting all of the server statistics properly.

The istat application is a nifty little application to provide you a quick view of servers on your network or servers that you monitor outside of your network. More information about the iPhone version of istat can be located here.

21Jul/090

Install easy_install Via yum on Linux CentOS Server

To install easy_install on Linux using yum you will need to install the python-setuptools package. Installing this package with yum is easy by following the directions below.

Run this command in your ssh termianl bash:

yum install python-setuptools 

An example of a python-setuptools install is below.

[root@server ~]# yum install python-setuptools
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
* base: pubmirrors.reflected.net
* updates: mirrors.serveraxis.net
* addons: mirror.anl.gov
* ruby: repo.premiumhelp.eu
* extras: mirror.sanctuaryhost.com
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package python-setuptools.noarch 0:0.6c5-2.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
python-setuptools noarch 0.6c5-2.el5 base 479 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 479 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): python-setuptools- 100% |=========================| 479 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: python-setuptools ######################### [1/1]

Installed: python-setuptools.noarch 0:0.6c5-2.el5
Complete!
21Jul/090

How to Install dig on a CentOS Linux Server?

Installing dig on a CentOS Linux server is easy with yum. Dig is actually a bind tool so you will be required to install some bind libraries along with the bind utility package.

 [root@server ~]# yum install bind-utils  

Now you can run something like the below using dig to find MX records.

 [root@server ~]# dig @NAMESERVER EXAMPLE.COM MX  

Your install will look something like the below showing how yum looks for dependencies and installs them automatically.


[root@server ~]# yum install bind-utils
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bind-utils to pack into transaction set.
bind-utils-9.3.4-6.0.2.P1 100% |=========================| 40 kB 00:00
---> Package bind-utils.x86_64 30:9.3.4-6.0.2.P1.el5_2 set to be updated
--> Running transaction check
--> Processing Dependency: libisccc.so.0()(64bit) for package: bind-utils
--> Processing Dependency: bind-libs = 30:9.3.4-6.0.2.P1.el5_2 for package: bind-utils
--> Processing Dependency: libbind9.so.0()(64bit) for package: bind-utils
--> Processing Dependency: libdns.so.22()(64bit) for package: bind-utils
--> Processing Dependency: libisccfg.so.1()(64bit) for package: bind-utils
--> Processing Dependency: liblwres.so.9()(64bit) for package: bind-utils
--> Processing Dependency: libisc.so.11()(64bit) for package: bind-utils
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bind-libs to pack into transaction set.
bind-libs-9.3.4-6.0.2.P1. 100% |=========================| 41 kB 00:01
---> Package bind-libs.x86_64 30:9.3.4-6.0.2.P1.el5_2 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
bind-utils x86_64 30:9.3.4-6.0.2.P1.el5_2 updates 171 k
Installing for dependencies:
bind-libs x86_64 30:9.3.4-6.0.2.P1.el5_2 updates 874 k

Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 1.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): bind-libs-9.3.4-6. 100% |=========================| 874 kB 00:35
(2/2): bind-utils-9.3.4-6 100% |=========================| 171 kB 00:04
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: bind-libs ######################### [1/2]
Installing: bind-utils ######################### [2/2]

Installed: bind-utils.x86_64 30:9.3.4-6.0.2.P1.el5_2
Dependency Installed: bind-libs.x86_64 30:9.3.4-6.0.2.P1.el5_2
Complete!

21Jul/090

How to Verify a CentOS Linux Server is 32 Bit or 64 Bit?

To verify if a system is 32 bit versus 64 bit you can use the uname command. Below are examples of using the uname command from the CLI on a 32 bit system followed by using the uname command on a 64 bit system.

32 Bit CentOS Linux Server
view plaincopy to clipboardprint?

[root@server ~]# uname -a
Linux server1.example.com 2.6.18-92.1.13.el5 #1 SMP Wed Sep 24 19:33:52 EDT 
2008 i686 i686 i386 GNU/Linux

64 Bit CentOS Linux Server
view plaincopy to clipboardprint?

[root@server ~]# uname -a
Linux server.example.com 2.6.18-53.1.21.el5 #1 SMP Tue May 20 09:35:07 EDT 
2008 x86_64 x86_64 x86_64 GNU/Linux

As you can see above the 64 bit server will show x86_64 numerous times after the install date and time. The 32 bit system will show i686 and i386 after the install date and time. So it is very easy to verify if a system is 32 bit versus 64 bit using the “uname -a” command from a shell.