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:
- Monit can start a process if it does not run
- Restart a process if it does not respond
- 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
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.
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.
To install istat on CentOS Linux follow the directions below.
- Download istat: Download istat for Linux here.
- 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.
-
./configure
-
- Install istat: Now issue the make and make install commands to compile and install istat on your server.
-
make
-
make install
-
- Create istat User: Now issue the below command to create a istat user to run istat.
-
useradd istat
-
- 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.
-
mkdir /var/run/istat
-
chown istat.istat /var/run/istat
-
- 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.
- Launch istat: Now launch the istat daemon by issuing the below command.
-
/usr/local/bin/istatd &
The server will automatically launch with the istat user and listen on port 5109.
-
- 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.
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!
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!
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.