Ada suatu permasalahan ketika dihadapkan pada sasaran mutu yang salah satunya menyebutkan bahwa downtime maksimal 95% dalam setahun. Dengan banyak server maka cara menghitungpun perlu dipertimbangkan, antara lain yaitu catatan server mati dan hidup kembali, catatan penjadwalan mati/perbaikan dan tentunya tindak lanjut jika ada server mati adalah yang utama.
Setelah mencari di internet maka menurut saya software nagios cukuplah tepat untuk keperluan diatas. Lihat saja tampilan previewnya yang saya peroleh dari internet
Gambar petanya bisa sangat bagus, ketahuan sistem operasinya, statusnya, hirarkinya
Setelah dicoba instal nagios di server Centos 5.3 saya, maka inilah ceritanya:
Tahapan instalasi nagios 1.
Aktifkan repository RPMFORGE
2.
install nagios # yum install nagios nagios-plugins nagios-plugins-nrpe nagios-devel
3.
Perhatikan lokasi hasil instalasi - konfigurasi di : /etc/nagios/ - plugin di : /etc/usr/lib/nagios - web di : /usr/share/nagios
Konfigurasi Website nagios Untuk konfigurasi website nagios ini saya lakukan di awal setelah instalasi nagios, dengan tujuan agar hasil dapat dilihat secara langsung. Website akan diletakkan di root dari website http://nagios.uii.ac.id
Buat virtual host di server dengan nama nagios.uii.ac.id dengan ini file konfigurasi sebagai berikuit
ServerAdmin [email protected]
DocumentRoot '/usr/share/nagios' ServerName nagios.uii.ac.id ErrorLog /var/log/httpd/nagios-error.log CustomLog /var/log/httpd/nagios-access.log combined # SSLRequireSSL Options None AllowOverride None Order allow,deny Allow from all # Order deny,allow # Deny from all # Allow from 127.0.0.1 AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Require valid-user ScriptAlias /cgi-bin "/usr/lib/nagios/cgi" # SSLRequireSSL Options ExecCGI AllowOverride None Order allow,deny Allow from all # Order deny,allow # Deny from all # Allow from 127.0.0.1 # AuthName "Nagios Access" # AuthType Basic # AuthUserFile /etc/nagios/htpasswd.users # Require valid-user Web nagios ini memerlukan otorisasi pengguna. sebagi admin, default nama usernay yaitu “nagiosadmin”, sehingga untuk mempermudah konfigurasi digunakan nama yang sama saja yaitu nagiosadmin.
Cara menambahkan usernay yaitu :
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin New password: type_your_password Re-type new password: re-type_your_password Adding password for user nagiosadmin Untuk menambahkan user yang lain dapat dilakukan dengan cara yang sama (opsi “-c” tidak dipakai)
htpasswd /etc/nagios/htpasswd.users prayitna New password: type_your_password Re-type new password: re-type_your_password Adding password for user prayitna Kemudian restart webserver dengan perintah ” service httpd restart ” dan hasil website bisa dilihat di http://nagios.uii.ac.id, dan tentunya kita diminta memasukkan nama dan password.
Nama user ini nantinya akan terkait dengan hak user atas data yang ada di nagios.
Konfigurasi Nagios Server
Ini adalah langkah yang terpenting, karena jalan atau tidaknya nagios ada dalam tahapan ini.
Folder kerja ada di /etc/nagios
File konfigurasi nagios yaitu /etc/nagios/nagios.cfg
Ada beberapa konfigurasi yang harus diperhatikan sebelumnya yang digunakan oleh nagios, yaitu : 1.
Konfigurasi commands (perintah)
2.
Konfigurasi timeperiods (waktu kerja)
3.
Konfigurasi contacs (nama user)
4.
Konfigurasi contactgroup (pengelompokan user)
5.
Konfigurasi hosts (server yang akan dimonitor)
6.
Konfugurasi hostgroup (pengelompokan server)
7.
Konfigurasi services (layanan / aplikasi )
Dalam instalasi default, contoh sudah dibuatkan di folder /etc/nagios/objects
Untuk mempermudah langkan berikutnya maka dilakukan konfigurasi dengan langkah-langkah sebagai berikut 1.
Konfigurasi commands, menggunakan contoh yang ada di /etc/nagios/objects/commands.cfg
2.
Konfigurasi timeperiods, menggunakan contoh yang ada di /etc/nagios/objects/timeperiods.cfg
3.
Konfigurasi contacs, dibuat file /etc/nagios/contacs.cfg yang isinya sebagai berikut:
# service_notification_options are w,u,c,r,f,n # w=warning u=unknown c=critical r=recovery f=flapping n=none # host_notification_options d,u,r,f,n # d=down u=unreachable r=recovery f=flapping n=none
# System development
define contact{ contact_name alias
prayitna prayitna
service_notification_period host_notification_period service_notification_options host_notification_options
24×7 24×7 c,r d,r
service_notification_commands host_notification_commands
notify-service-by-email notify-host-by-email
email
[email protected]
}
define contact{ contact_name
endro
alias
endro
service_notification_period host_notification_period
workhours workhours
service_notification_options host_notification_options
c,r d,r
service_notification_commands host_notification_commands email
notify-service-by-email notify-host-by-email
[email protected]
} 4.
Konfigurasi contactgroups, yaitu dibuat file /etc/nagios/contactgroup.cfg yang isinya
# ‘admin development’ contact group definitions define contactgroup{ contactgroup_name alias
admin
admin
members
prayitna, trisna
}
# ’staf development’ contact group definitions define contactgroup{ contactgroup_name alias
staf_sw
staf_sw
members
endro, tri
} 5.
Konfigurasi hosts
Dalam konfigurasi host ini, ada cukup banyak atribut yang dapat dipakai yang bisa dimiliki sebuah server, dan untuk mempermudah penulisan/pembacaan maka dibuatkan template terlebih dahulu. FIle yang digunakan yaitu /etc/nagios/hosts.cfg, dengan isi sebagai berikut:
# Generic host definitions define host{ name notifications_enabled event_handler_enabled
generic-host 1
; Generic template name ; Host notifications are enabled
1
; Host event handler is enabled
flap_detection_enabled
1
process_perf_data
; Flap detection is enabled
1
retain_status_information retain_nonstatus_information register
; Process performance data 1
; Retain status information across program restarts 1
0
; Retain non-status information across program restarts ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
# This creates a generic template that any host can use. # Notifies never, checks 15 times before showing critical on CGI interface,
define host{ name use
basic-host generic-host
check_command
check-host-alive
max_check_attempts
15
notification_interval
0
notification_period
none
notification_options
n
statusmap_image
centos.gd2
register
0
}
# This creates a generic host that your routers can use # monitors host(s) 24×7, notifies on down and recovery, checks 15 times before going critical, # notifies the contact_group every 30 minutes
define host{ name use
basic-routers generic-host
check_command
check-host-alive
max_check_attempts
15
notification_interval
30
notification_period
24×7
notification_options
d,r
statusmap_image register
mikrotik.gd2 0
}
define host{ name use
basic-client generic-host
check_command
check-host-alive
max_check_attempts
5
notification_interval
30
notification_period
workhours
notification_options
d,r
statusmap_image register
windowsxp.gd2 0
}
# # Berikut adalah daftar setiap host #
define host{ use host_name alias address contact_groups
basic-host nagios Nagios Server 127.0.0.1 admin
}
# # Server Klasiber, terkoneksi ke nagios server melalui switch.202 dan ke dadabase melalui switch.200 #
define host{ use host_name alias address contact_groups parents
basic-host klasiber3 Website klasiber 192.168.200.y kadiv switch.200, switch.202
}
define host{ use host_name alias address contact_groups
basic-host klasiber2 Backup klasiber 192.168.200.x kadiv
parents
switch.200, switch.202
}
define host{ use
basic-host
host_name
mysqlserver
alias
Database MySQL Klasiber
address
192.168.200.z
contact_groups
kadiv
parents
switch.200
} 6.
Konfigurasi hostgroup, ini dibuatkan juga file /etc/nagios/hostgroup.cfg yang isinya
define hostgroup{ hostgroup_name klasiber alias
server klasiber
members
klasiber1, klasiber2, mysqlserver
} 7.
Konfigurasi services, ini dibuatkan file /etc/nagios/services.cfg yang isinya
# Generic service definition template define service{ name
generic-service ; Generic service name
active_checks_enabled
1
passive_checks_enabled parallelize_check
; Active service checks are enabled
1 1
; Passive service checks are enabled/accepted ; Active service checks should be parallelized (Don’t disable)
obsess_over_service
1
; We should obsess over this service (if necessary)
check_freshness
0
; Default is to NOT check service ‘freshness’
notifications_enabled
1
; Service notifications are enabled
event_handler_enabled
1
flap_detection_enabled
1
process_perf_data
retain_nonstatus_information 0
}
# Generic for all services define service{
; Flap detection is enabled
1
retain_status_information
register
; Service event handler is enabled
; Process performance data 1
; Retain status information across program restarts 1
; Retain non-status information across program restarts ; DONT REGISTER THIS DEFINITION - NOT A REAL SERVICE, JUST A TEMPLATE!
use
generic-service
name
basic-service
is_volatile
0
check_period
24×7
max_check_attempts
15
normal_check_interval
10
retry_check_interval
2
notification_interval
0
notification_period
none
register
0
}
# # PING #
define service{ use
basic-service
name
ping-service
notification_options
n
check_command register
check_ping!1000.0,20%!2000.0,60% 0
}
define service{ use
ping-service
service_description
PING
contact_groups
admin
hostgroup_name #
klasiber
host_name
one_client
} 8.
Masukkan nama-nama file konfigurasi diatas dalam file /etc/nagios/nagios.cfg
cfg_file=/etc/nagios/objects/commands.cfg cfg_file=/etc/nagios/objects/timeperiods.cfg cfg_file=/etc/nagios/contactgroups.cfg cfg_file=/etc/nagios/contacts.cfg cfg_file=/etc/nagios/hostgroups.cfg cfg_file=/etc/nagios/hosts.cfg cfg_file=/etc/nagios/services.cfg
Dalam konfigurasi diatas dapat dijelaskan sebagai berikut: 1.
Jam kerja yang didefinisikan di timeperios ada 24×7 untuk menandakan nyala/aktif terus dan jam kerja workhours untuk senin s.d jum’at
2.
Kontak sebagai contoh ada 2 yaitu prayitna dan endro
3.
Pengelompokan kontak yaitu ada admin dengan member prayitna dan trisna, dan staf_sw ada endro dan tri.
4.
Untuk definisi template, baik itu di host maupun services diatas, ada baris “register 0″ ini sebagai tanda tidak akan diproses (hanya template saja)
5.
Host didefinisikan dari generic-host –> basic-host –> host
6.
Untuk icon server dalam peta di nagios di set para baris “statusmap_image
7.
Untuk perintah cek apakah server nyala atau mati dtentukan oleh perintah pada baris “check_command check-host-alive”
8.
Untuk services yang di contohkan disini yaitu PING. kalau dilihat dalam commans yaitu :
windowsxp.gd2″
######################################################################## ######## # # SAMPLE HOST CHECK COMMANDS # ######################################################################## ########
# This command checks to see if a host is “alive” by pinging it # The check must result in a 100% packet loss or 5 second (5000ms) round trip # average time to produce a critical error. # Note: Five ICMP echo packets are sent (determined by the ‘-p 5′ argument)
# ‘check-host-alive’ command definition define command{ command_name command_line
check-host-alive $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
######################################################################## ######## # NOTE: The following ‘check_…’ commands are used to monitor services on #
both local and remote hosts.
######################################################################## ########
# ‘check_ping’ command definition define command{ command_name command_line
check_ping $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
} 9.
Perintah diatas dapat dicoba secara langsung dengan cara /etc/lib/nagios/plugins/check_…..
10. Langkah terakhir sebelum menjalankan nagios yaitu cek apakah konfigurasi sudah sesuai.
nagios -v /etc/nagios/nagios.cfg
dan hasilnya tidak boleh ada error, jika ada error maka harus disesuiakan.
Dan hasilnya yaitu: