標籤:一鍵 nagios 監控主機
聲明
昨夜星辰
部落格:http://yestreenstars.blog.51cto.com/
本文由本人創作,如需轉載,請註明出處,謝謝合作!
目的
一鍵建立nagios監控主機指令碼。
環境
OS: CentOS 6.6 64
配置
#!/bin/bash# 指令碼名稱:一鍵建立nagios監控主機指令碼# 指令碼描述:該指令碼是用來自動建立nagios監控主機的,目前只適用於建立系統類別型為Linux的監控主機,並只支援少量常用服務。# 建立時間:2015-04-07# 修改時間:2015-04-07echo ‘請選擇目標監控主機的作業系統類型:‘select OS in Linux Windowsdocase $OS inLinux)host_template=‘linux-server‘break;;Windows)host_template=‘windows-server‘break;;*)echo ‘無此類型!請重新輸入!‘;;esacdonewhile read -p ‘請輸入目標監控主機的主機名稱:‘ host_namedoif [ -n "$host_name" ]; thenbreakfiecho ‘主機名稱不可為空!請重新輸入!‘doneread -p ‘請輸入該主機的別名(為空白則與主機名稱相同):‘ aliasif [ -z $alias ]; thenalias=$host_namefiwhile read -p ‘請輸入目標監控主機的IP地址:‘ addressdoif [ -n "$address" ]; thenbreakfiecho ‘IP地址不可為空!請重新輸入!‘doneecho "cfg_file=/usr/local/nagios/etc/objects/$address.cfg" >> /usr/local/nagios/etc/nagios.cfgecho "define host{use$host_templatehost_name$host_namealias$aliasaddress$address}" > /usr/local/nagios/etc/objects/$address.cfghead="define service{usegeneric-servicehost_name$host_name"tail="}"services[1]="service_descriptionPINGcheck_commandcheck_ping!100.0,20%!500.0,60%"services[2]="service_descriptionRoot Partitioncheck_commandcheck_local_disk!20%!10%!/"services[3]="service_descriptionCurrent Userscheck_commandcheck_local_users!20!50"services[4]="service_descriptionTotal Processescheck_commandcheck_local_procs!250!400!RSZDT"services[5]="service_descriptionCurrent Loadcheck_commandcheck_local_load!5.0,4.0,3.0!10.0,6.0,4.0"services[6]="service_descriptionSwap Usagecheck_commandcheck_local_swap!20!10"services[7]="service_descriptionSSHcheck_commandcheck_ssh"services[8]="service_descriptionHTTPcheck_commandcheck_http"echo ‘1)PING2)Root Partition3)Current Users4)Total Processes5)Current Load6)Swap Usage7)SSH8)HTTP‘echo ‘請根據實際需求選擇一種方式輸入:一、如果你只需監控一種服務,那麼你只需輸入該服務對應的序號即可;二、如果你需要監控的服務比較多,那麼你可以用逗號將它們分隔(比如1,3,5);三、如果你需要監控的服務比較多,並且它們的序號是連續的,那麼你可以用破折號串連起始序號和終止序號(比如1-3);四、如果你需要監控的服務比較多,並且有些服務的序號是連續的,有些是不連續的,那麼你可以混合使用逗號和破折號(比如1,3,5-7,9)。‘while read -p ‘請選擇需要監控的服務:‘ choosedoif [ -n "$choose" ]; thenchoose=$(awk -F, ‘{for(i=0;i++<NF;){if($i~/-/){split($i,a,/-/);for(j=a[1];j<=a[2];j++)print j;continue}print $i}}‘ <<< $choose)for no in ${choose[@]}doecho "$head${services[$no]}$tail" >> /usr/local/nagios/etc/objects/$address.cfgdonebreakfiecho ‘你沒有輸入服務的序號,請重新輸入!‘done
本文出自 “昨夜星辰” 部落格,請務必保留此出處http://yestreenstars.blog.51cto.com/1836303/1629452
一鍵建立nagios監控主機指令碼