Halaman

Selasa, 07 Februari 2012

Konfigurasi snmp dan mrtg di linux


Bagaimana cara Installasi dan Konfigurasi SNMP dan MRTG untuk monitoring kinerja server mulai dari bandwidth sampai dengan performance CPU serta memory. Hal ini diperlukan untuk analisa ketika server kita terlihat lambat. Berikut langkah-langkah Installasi dan Konfigurasi snmp dan mrtg untuk sistem operasi Linux

Step # 1 : Pastikan snmp server Terinstall
--------------------------------------------------------------------------------
Harap dicatat bahwa snmpd konfigurasi tidak memerlukan menggunakan mrtg dengan perangkat remote jaringan seperti router dan switch.

Jika Anda hanya ingin mrtg grafik untuk router atau switch silakan lihat pada langkah # 4 (semua perangkat ini dikonfigurasi sebelumnya menggunakan Sofware SNMP)

Jalankan perintah rpm untuk mengecek apakah sudah terinstall atau belum snmp servernya:

# rpm -qa | grep snmp

Jika snmp sudah terinstall lanjutkan pada langkah 2. Jika belum terinstall maka lakukan installasi snmp terlebih dahulu dengan langkah berikut(sebagai user root):

# yum install net-snmp-utils net-snmp

(b) Jika pada RHEL gunakan up2date seperti dibawah:

#up2date -v -i net-snmp-utils net-snmp
================================================================================

Step # 2 : Pastikan snmp server berjalan
--------------------------------------------------------------------------------
Jalankan perintah 'ps' untuk melihat snmp server jalan atau tidak:

# ps -aux | grep snmp

Output:

root   5512  0.0  2.3  5872 3012 pts/0    S    22:04   0:00 /usr/sbin/snmpd

Sebagai alternatif anda dapat melakukannya dengan perintah berikut:


# lsof -i :199

Output:

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
snmpd   5512 root    4u  IPv4  34432       TCP *:smux (LISTEN)

atau perintah netstat:

# netstat -natv | grep ':199'

Output:

tcp        0      0 0.0.0.0:199             0.0.0.0:*               LISTEN

Jika service snmp berjalan dengan port 199 lanjutkan pada step #3; perintah untuk menjalankan service snmp adalah sebagai berikut:

# service snmpd start

Pastikan service snmp otomatis dijalankan ketika komputer hidup:

# chkconfig --add snmpd

atau

# cd /etc/init.d/
# /sbin/chkconfig --level 345 snmpd on
================================================================================
Step # 3 : Pastikan SNMP terkonfigurasi dengan baik
--------------------------------------------------------------------------------
Jalankan perintah snmpwalk untuk meminta informasi tentang perangkat jaringan anda. secara sederhana kueri snmp server untuk ip address anda(eth0, eth1, lo dan lainnya)

# snmpwalk -v 1 -c server localhost IP-MIB::ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.172.16.10.21 = INTEGER: 3
IP-MIB::ipAdEntIfIndex.192.168.20.201 = INTEGER: 2

Jika anda melihat IP anda, lanjutkan pada step #4; kalau belum konfigurasi snmp server seperti berikut:

Konfigurasi SNMP
--------------
(1) Edit file /etc/snmp/snmpd.conf using text editor:

# vi /etc/snmp/snmpd.conf

Change/Modify line(s) as follows:

Find following Line:

com2sec notConfigUser  default       public

Replace with (make sure you replace 192.168.0.0/24 replace with your network IPs) following lines:

com2sec local   localhost              server
com2sec lan     192.168.0.0/24         server

Scroll down bit and change:

Find Lines:

group   notConfigGroup v1            notConfigUser
group   notConfigGroup v2c           notConfigUser

Replace with:

group   server          v1              local
group   server          v1              lan
group   server          v2c             local
group   server          v2c             lan
group   server          usm             local
group   server          usm             lan

Again scroll down bit and locate following line:

Find line:

view    systemview     included      system

Replace with:

view all    included  .1                               80

Again scroll down bit and change:

Find line:

access  notConfigGroup ""      any       noauth    exact  systemview none none

Replace with:

view    all-mibs        included        .1              80
view    all-mibs        included        .1              443

Scroll down bit and change:

Find lines:

syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root  (configure /etc/snmp/snmp.local.conf)

Replace with (make sure you supply appropriate values):

syslocation VSNL, Indonesia
syscontact Root <youremail@domain.com>

<--- Akhir Konfigurasi--->

Untuk menghindari kesalahan fatal dalam konfigurasi snmp sebaiknya sebelum melakukan konfigurasi backup dulu file lamanya.
Jalankan snmp anda dan lakukan testing:

(a) Perintah dibawah dilakukan untuk mengaktifkan service snmp ketika komputer hidup apabila belum diseting otomatis start:

 # chkconfig snmpd on

(b) Perintah dibawah untuk menjalankan service snmp apabila belum hidup:

 # service snmpd start

(c) Perintah berikut untuk testing snmp anda:

 # snmpwalk -v 1 -c server localhost IP-MIB::ipAdEntIfIndex
================================================================================
Step # 4 : Install mrtg jika belum terinstall
--------------------------------------------------------------------------------
Software MRTG mungkin sudah terinstall sebelumnya. Untuk memverifikasinya jalankan perintah berikut :

rpm -qa | grep mrtg

Apabila sudah terinstall lanjutkan pada step #5; jika belum lakukan proses installasi seperti berikut:
Untuk RHEL

# up2date -v -i mrtg

Atau gunakan fasilitas yum:

# yum install mrtg
================================================================================
Step # 5 : Konfigurasi mrtg
--------------------------------------------------------------------------------
--> Konfigurasi /etc/mrtg/mrtg.cfg
EnableIPv6: no
WorkDir: /opt/web-server/htdocs/mrtg

Target[localhost_2]: 2:server@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="192.168.20.201" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 12500000
Title[localhost_2]: Traffic Analysis for 2 -- server
PageTop[localhost_2]: <h1>Traffic Analysis for 2 -- server</h1>
                <div id="sysdetails">
                        <table>
                                <tr>
                                        <td>System:</td>
                                        <td>server in VSNL, Indonesia</td>
                                </tr>
                                <tr>
                                        <td>Maintainer:</td>
                                        <td>Root &lt;youremail@domain.com&gt;</td>
                                </tr>
                                <tr>
                                        <td>Description:</td>
                                        <td>eth0  </td>
                                </tr>
                                <tr>
                                        <td>ifType:</td>
                                        <td>ethernetCsmacd (6)</td>
                                </tr>
                                <tr>
                                        <td>ifName:</td>
                                        <td>eth0</td>
                                </tr>
                                <tr>
                                        <td>Max Speed:</td>
                                        <td>12.5 MBytes/s</td>
                                </tr>
                                <tr>
                                        <td>Ip:</td>
                                        <td>192.168.20.201 (yourdomain.com)</td>
                                </tr>
                        </table>
                </div>
--------------------------------------------------------------------------------
--> Konfigurasi /etc/mrtg/server-info.cfg
#
# File: /etc/mrtg/server-info.cfg
#
# Configuration file for non bandwidth server statistics
#

#
# Define global options
#

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt
workdir: /opt/web-server/htdocs/mrtg/


#
# CPU Monitoring
# (Scaled so that the sum of all three values doesn't exceed 100)
#

Target[server.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:server@localhost + ssCpuRawSystem.0&ssCpuRawSystem.0:server@localhost + ssCpuRawNice.0&ssCpuRawNice.0:server@localhost
Title[server.cpu]: Server CPU Load
PageTop[server.cpu]: <h1>CPU Load - System, User and Nice Processes</h1>
MaxBytes[server.cpu]: 100
ShortLegend[server.cpu]: %
YLegend[server.cpu]: CPU Utilization
Legend1[server.cpu]: Current CPU percentage load
LegendI[server.cpu]: Used
LegendO[server.cpu]:
Options[server.cpu]: growright,nopercent
Unscaled[server.cpu]: ymwd


#
# Memory Monitoring (Total Versus Available Memory)
#

Target[server.memory]: memAvailReal.0&memTotalReal.0:server@localhost
Title[server.memory]: Free Memory
PageTop[server.memory]: <h1>Free Memory</h1>
MaxBytes[server.memory]: 100000000000
ShortLegend[server.memory]: B
YLegend[server.memory]: Bytes
LegendI[server.memory]: Free
LegendO[server.memory]: Total
Legend1[server.memory]: Free memory, not including swap, in bytes
Legend2[server.memory]: Total memory
Options[server.memory]: gauge,growright,nopercent
kMG[server.memory]: k,M,G,T,P,X


#
# Memory Monitoring (Percentage usage)
#
Title[server.mempercent]: Percentage Free Memory
PageTop[server.mempercent]: <h1>Percentage Free Memory</h1>
Target[server.mempercent]: ( memAvailReal.0&memAvailReal.0:server@localhost ) * 100 / ( memTotalReal.0&memTotalReal.0:server@localhost )
options[server.mempercent]: growright,gauge,transparent,nopercent
Unscaled[server.mempercent]: ymwd
MaxBytes[server.mempercent]: 100
YLegend[server.mempercent]: Memory %
ShortLegend[server.mempercent]: Percent
LegendI[server.mempercent]: Free
LegendO[server.mempercent]: Free
Legend1[server.mempercent]: Percentage Free Memory
Legend2[server.mempercent]: Percentage Free Memory


#
# New TCP Connection Monitoring (per minute)
#

Target[server.newconns]: tcpPassiveOpens.0&tcpActiveOpens.0:server@localhost
Title[server.newconns]: Newly Created TCP Connections
PageTop[server.newconns]: <h1>New TCP Connections</h1>
MaxBytes[server.newconns]: 10000000000
ShortLegend[server.newconns]: c/s
YLegend[server.newconns]: Conns / Min
LegendI[server.newconns]: In
LegendO[server.newconns]: Out
Legend1[server.newconns]: New inbound connections
Legend2[server.newconns]: New outbound connections
Options[server.newconns]: growright,nopercent,perminute


#
# Established TCP Connections
#

Target[server.estabcons]: tcpCurrEstab.0&tcpCurrEstab.0:server@localhost
Title[server.estabcons]: Currently Established TCP Connections
PageTop[server.estabcons]: <h1>Established TCP Connections</h1>
MaxBytes[server.estabcons]: 10000000000
ShortLegend[server.estabcons]:
YLegend[server.estabcons]: Connections
LegendI[server.estabcons]: In
LegendO[server.estabcons]:
Legend1[server.estabcons]: Established connections
Legend2[server.estabcons]:
Options[server.estabcons]: growright,nopercent,gauge

--------------------------------------------------------------------------------
(a) Buat dokumen root untuk grafik mrtg/html pages:

# mkdir -p /opt/web-server/htdocs/mrtg/

(b) Jalankan perintah berikut untuk membuat file konfigurasi mrtg:

# /usr/bin/cfgmaker --global 'WorkDir: /opt/web-server/htdocs/mrtg' --output /etc/mrtg/mrtg.cfg server@localhost               

(c) Buat default index page untuk konfigurasi MRTG yang sudah kita buat:

# /sbin/service snmpd restart
Stopping snmpd:                                            [  OK  ]
Starting snmpd:                                            [  OK  ]

# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg /etc/mrtg/server-info.cfg --logging /var/log/mrtg.log

# indexmaker --output=/opt/web-server/htdocs/mrtg/index.html --title="Memory And CPU Usage" --sort=name --enumerate
  /etc/mrtg/mrtg.cfg /etc/mrtg/server-info.cfg

(d) Kopi semua file yang berekstensi png ke direktori mrtg yang sudah kita buat:

# cp -av /var/www/mrtg/*.png /var/www/html/mrtg/

(e) Pastikan eksekusi MRTG setiap 5 menit sekali menggunakan fasilitas crontab:

# crontab -e
add this script

*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
*/5 * * * * env LANG=c /usr/bin/mrtg /etc/mrtg/server-info.cfg --logging /var/log/mrtg.log

OR masukan perintah berikut pada /etc/cron.d/mrtg file.
0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/server-stats.cfg
================================================================================

Tidak ada komentar:

Posting Komentar