Step # 1 : Make sure snmp server installed
Type the following rpm command to find out, if snmp server installed or not:
# rpm -qa | grep snmp
If snmp installed then
# yum install net-snmp-utils net-snmp
Step # 2 : Determine if snmp server is running or not
Run 'ps' command to see if snmp server is running or not:
# ps -aux | grep snmp
Output:
root 5512 0.0 2.3 5872 3012 pts/0 S 22:04 0:00 /usr/sbin/snmpd
# netstat -natv | grep ':199'
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN
If you found snmp service is running or listing on port 199
# service snmpd start
Make sure snmpd service starts automatically, when linux comes us (add snmpd service):
# chkconfig --add snmpd
Turn on snmpd service, enter:
# chkconfig snmpd on
Step # 3 : Make sure snmp server configured properly
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
Sample outputs:
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.0.3 = 2
Configure SNMP
(1) Edit the file /etc/snmp/snmpd.conf using a text editor such as vi, enter:
# vi /etc/snmp/snmpd.conf
Change/Modify line(s) as follows:
Find the following Line:
com2sec notConfigUser default public
Replace with (make sure you replace 192.168.0.0/24 with your network/subnet) the following lines:
com2sec local localhost public
com2sec mynetwork 192.168.0.0/24 public
(a) Make sure when linux comes up snmpd always starts after the system reboot:
# chkconfig snmpd on
(b) Start the snmpd service:
# service snmpd start
(c) Finally, test your snmp server:
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
Step # 4 : Install mrtg if not installed
Mrtg software may install during initial installation; you can verify if MRTG installed or not with the following RPM command:
rpm -qa | grep mrtg
Step # 5 : Commands to Configure mrtg
mkdir -p /var/www/html/mrtg/
Now you need to make the config (cfg) file for the device you want to monitor.
Quote
##/usr/bin/cfgmaker --output=/etc/mrtg/69.250.150.54.cfg --ifref=ip --global "workdir: /var/www/mrtg" --snmp-options=:::::1 public@69.250.150.54
/usr/bin/cfgmaker --output=/etc/mrtg/172.22.81.1.cfg --ifref=ip --global "workdir: /var/www/html/mrtg" --snmp-options=:::::1 public@172.22.81.1
Copy the image files--
cp -av /var/www/html/images/*.png /var/www/html/mrtg/
Now you need to run the env statement "three" times:
Quote
#run three times
#env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
#env LANG=C /usr/bin/mrtg /etc/mrtg/69.250.150.54.cfg
#You should see this after each time ran:
env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
[root@nagios mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_10.67.51.106.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_10.255.65.214.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_172.22.81.1.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_172.29.81.2.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_172.29.81.6.old updating log file
[root@nagios mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
[root@nagios mrtg]#
Now you need to make the actual index files for each machine:
#Very important you need to append the new machine to the line each time, if you do not you will only see the newest entry
Quote
indexmaker --output=/var/www/html/mrtg/index.html /etc/mrtg/mrtg.cfg /etc/mrtg/172.22.81.1.cfg
Note: The above command should be run for each router
Quote
vim /etc/cron.d/mrtg
#Enter in you machines like my example below:
0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
Note: one entry will be added for every router
Now restart the crond service.
Quote
service crond restart
[root@nagios mrtg]# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
[root@nagios mrtg]#
---Log Location
/var/www/mrtg
# 'check_mrtgtraf.pl' command definition #
define command{
command_name check_mrtgtraf.pl
command_line $USER1$/check_mrtgtraf.pl -L $ARG1$ -F $ARG2$ -w $ARG3$ -c $ARG4$ -u $ARG5$
}
define service{
use local-service
host_name mrtghost1
service_description Check bandwidth router1 customer1
check_command check_mrtgtraf.pl!/usr/home/www/mrtg/customer1/router1/1.1.1.1_ae0.log!MAX!10,20!11,21!mbyte!
}
define service{
use generic-service
host_name core_router_neweskaton_172.22.81.1
service_description Port 1 Bandwidth Usage
check_command check_mrtgtraf.pl!/var/www/html/mrtg/172.22.81.1_172.22.81.1.log!MAX!10,20!11,21!mbyte!
}
---compile the command----
/usr/bin/nagios -v /etc/nagios/nagios.cfg
/usr/lib/nagios/plugins/check_mrtgtraf -F /var/www/mrtg/172.22.81.1_172.22.81.1.log -a AVG -w 1000000,1000000 -c 5000000,5000000 -e 10
/usr/lib/nagios/plugins/check_mrtgtraf.pl - F /var/www/mrtg/172.22.81.1_172.22.81.1.log -a MAX -w 10,20 -c 11,21 -e mbyte
-----------------Note-----------
I almost forgot the simple one security is turned on by default and you can't connect remotely unless you change it. In the example below
I canged it to allow all so I could connect to it from anywhere I wanted to from the internet or local lan.
Quote
vi /etc/httpd/conf.d/mrtg.conf
#
# This configuration file maps the mrtg output (generated daily)
# into the URL space. By default these results are only accessible
# from the local host.
#
Alias /mrtg /var/www/mrtg
Order allow,deny
Allow from all
----Finally
http://192.168.10.29/mrtg/
Type the following rpm command to find out, if snmp server installed or not:
# rpm -qa | grep snmp
If snmp installed then
# yum install net-snmp-utils net-snmp
Step # 2 : Determine if snmp server is running or not
Run 'ps' command to see if snmp server is running or not:
# ps -aux | grep snmp
Output:
root 5512 0.0 2.3 5872 3012 pts/0 S 22:04 0:00 /usr/sbin/snmpd
# netstat -natv | grep ':199'
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN
If you found snmp service is running or listing on port 199
# service snmpd start
Make sure snmpd service starts automatically, when linux comes us (add snmpd service):
# chkconfig --add snmpd
Turn on snmpd service, enter:
# chkconfig snmpd on
Step # 3 : Make sure snmp server configured properly
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
Sample outputs:
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.0.3 = 2
Configure SNMP
(1) Edit the file /etc/snmp/snmpd.conf using a text editor such as vi, enter:
# vi /etc/snmp/snmpd.conf
Change/Modify line(s) as follows:
Find the following Line:
com2sec notConfigUser default public
Replace with (make sure you replace 192.168.0.0/24 with your network/subnet) the following lines:
com2sec local localhost public
com2sec mynetwork 192.168.0.0/24 public
(a) Make sure when linux comes up snmpd always starts after the system reboot:
# chkconfig snmpd on
(b) Start the snmpd service:
# service snmpd start
(c) Finally, test your snmp server:
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
Step # 4 : Install mrtg if not installed
Mrtg software may install during initial installation; you can verify if MRTG installed or not with the following RPM command:
rpm -qa | grep mrtg
Step # 5 : Commands to Configure mrtg
mkdir -p /var/www/html/mrtg/
Now you need to make the config (cfg) file for the device you want to monitor.
Quote
##/usr/bin/cfgmaker --output=/etc/mrtg/69.250.150.54.cfg --ifref=ip --global "workdir: /var/www/mrtg" --snmp-options=:::::1 public@69.250.150.54
/usr/bin/cfgmaker --output=/etc/mrtg/172.22.81.1.cfg --ifref=ip --global "workdir: /var/www/html/mrtg" --snmp-options=:::::1 public@172.22.81.1
Copy the image files--
cp -av /var/www/html/images/*.png /var/www/html/mrtg/
Now you need to run the env statement "three" times:
Quote
#run three times
#env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
#env LANG=C /usr/bin/mrtg /etc/mrtg/69.250.150.54.cfg
#You should see this after each time ran:
env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
[root@nagios mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_10.67.51.106.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_10.255.65.214.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_172.22.81.1.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_172.29.81.2.old updating log file
07-11-2013 11:59:05, Rateup WARNING: /usr/bin/rateup Can't remove 172.22.81.1_172.29.81.6.old updating log file
[root@nagios mrtg]# env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
[root@nagios mrtg]#
Now you need to make the actual index files for each machine:
#Very important you need to append the new machine to the line each time, if you do not you will only see the newest entry
Quote
indexmaker --output=/var/www/html/mrtg/index.html /etc/mrtg/mrtg.cfg /etc/mrtg/172.22.81.1.cfg
Note: The above command should be run for each router
Quote
vim /etc/cron.d/mrtg
#Enter in you machines like my example below:
0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/172.22.81.1.cfg
Note: one entry will be added for every router
Now restart the crond service.
Quote
service crond restart
[root@nagios mrtg]# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
[root@nagios mrtg]#
---Log Location
/var/www/mrtg
# 'check_mrtgtraf.pl' command definition #
define command{
command_name check_mrtgtraf.pl
command_line $USER1$/check_mrtgtraf.pl -L $ARG1$ -F $ARG2$ -w $ARG3$ -c $ARG4$ -u $ARG5$
}
define service{
use local-service
host_name mrtghost1
service_description Check bandwidth router1 customer1
check_command check_mrtgtraf.pl!/usr/home/www/mrtg/customer1/router1/1.1.1.1_ae0.log!MAX!10,20!11,21!mbyte!
}
define service{
use generic-service
host_name core_router_neweskaton_172.22.81.1
service_description Port 1 Bandwidth Usage
check_command check_mrtgtraf.pl!/var/www/html/mrtg/172.22.81.1_172.22.81.1.log!MAX!10,20!11,21!mbyte!
}
---compile the command----
/usr/bin/nagios -v /etc/nagios/nagios.cfg
/usr/lib/nagios/plugins/check_mrtgtraf -F /var/www/mrtg/172.22.81.1_172.22.81.1.log -a AVG -w 1000000,1000000 -c 5000000,5000000 -e 10
/usr/lib/nagios/plugins/check_mrtgtraf.pl - F /var/www/mrtg/172.22.81.1_172.22.81.1.log -a MAX -w 10,20 -c 11,21 -e mbyte
-----------------Note-----------
I almost forgot the simple one security is turned on by default and you can't connect remotely unless you change it. In the example below
I canged it to allow all so I could connect to it from anywhere I wanted to from the internet or local lan.
Quote
vi /etc/httpd/conf.d/mrtg.conf
#
# This configuration file maps the mrtg output (generated daily)
# into the URL space. By default these results are only accessible
# from the local host.
#
Alias /mrtg /var/www/mrtg
Order allow,deny
Allow from all
----Finally
http://192.168.10.29/mrtg/
No comments:
Post a Comment