/**
* Shiro-1.2.2鍐呯疆鐨凢ilterChain
* @see =============================================================================================================================
* @see 1)Shiro楠岃瘉URL鏃?URL鍖歸厤鎴愬姛渚夸笉鍐嶇戶緇尮閰嶆煡鎵?鎵浠ヨ娉ㄦ剰閰嶇疆鏂囦歡涓殑URL欏哄簭,灝ゅ叾鍦ㄤ嬌鐢ㄩ氶厤絎︽椂)
* @see 鏁協ilterChainDefinitions鐨勯厤緗『搴忎負鑷笂鑰屼笅,浠ユ渶涓婇潰鐨勪負鍑?
* @see 2)褰撹繍琛屼竴涓猈eb搴旂敤紼嬪簭鏃?Shiro灝嗕細鍒涘緩涓浜涙湁鐢ㄧ殑榛樿Filter瀹炰緥,騫惰嚜鍔ㄥ湴鍦╗main]欏逛腑灝嗗畠浠疆涓哄彲鐢?
* @see 鑷姩鍦板彲鐢ㄧ殑榛樿鐨凢ilter瀹炰緥鏄DefaultFilter鏋氫婦綾誨畾涔夌殑,鏋氫婦鐨勫悕縐板瓧孌靛氨鏄彲渚涢厤緗殑鍚嶇О
* @see anon---------------org.apache.shiro.web.filter.authc.AnonymousFilter
* @see authc--------------org.apache.shiro.web.filter.authc.FormAuthenticationFilter
* @see authcBasic---------org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
* @see logout-------------org.apache.shiro.web.filter.authc.LogoutFilter
* @see noSessionCreation--org.apache.shiro.web.filter.session.NoSessionCreationFilter
* @see perms--------------org.apache.shiro.web.filter.authz.PermissionAuthorizationFilter
* @see port---------------org.apache.shiro.web.filter.authz.PortFilter
* @see rest---------------org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
* @see roles--------------org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
* @see ssl----------------org.apache.shiro.web.filter.authz.SslFilter
*@see user---------------org.apache.shiro.web.filter.authz.UserFilter
* @see =============================================================================================================================
* @see 3)閫氬父鍙皢榪欎簺榪囨護鍣ㄥ垎涓轟袱緇?
* @see anon,authc,authcBasic,user鏄涓緇勮璇佽繃婊ゅ櫒
* @see perms,port,rest,roles,ssl鏄浜岀粍鎺堟潈榪囨護鍣?
* @see 娉ㄦ剰user鍜宎uthc涓嶅悓錛氬綋搴旂敤寮鍚簡rememberMe鏃?鐢ㄦ埛涓嬫璁塊棶鏃跺彲浠ユ槸涓涓猽ser,浣嗙粷涓嶄細鏄痑uthc,鍥犱負authc鏄渶瑕侀噸鏂拌璇佺殑
* @see user琛ㄧず鐢ㄦ埛涓嶄竴瀹氬凡閫氳繃璁よ瘉,鍙鏇捐Shiro璁頒綇榪囩櫥褰曠姸鎬佺殑鐢ㄦ埛灝卞彲浠ユ甯稿彂璧瘋姹?姣斿rememberMe
* @see 璇寸櫧浜?浠ュ墠鐨勪竴涓敤鎴風櫥褰曟椂寮鍚簡rememberMe,鐒跺悗浠栧叧闂祻瑙堝櫒,涓嬫鍐嶈闂椂浠栧氨鏄竴涓猽ser,鑰屼笉浼歛uthc
* @see =============================================================================================================================
* @see 4)涓懼嚑涓緥瀛?
* @see /admin=authc,roles[admin] 琛ㄧず鐢ㄦ埛蹇呴渶宸查氳繃璁よ瘉,騫舵嫢鏈塧dmin瑙掕壊鎵嶅彲浠ユ甯稿彂璧?/admin'璇鋒眰
* @see /edit=authc,perms[admin:edit] 琛ㄧず鐢ㄦ埛蹇呴渶宸查氳繃璁よ瘉,騫舵嫢鏈塧dmin:edit鏉冮檺鎵嶅彲浠ユ甯稿彂璧?/edit'璇鋒眰
* @see /home=user 琛ㄧず鐢ㄦ埛涓嶄竴瀹氶渶瑕佸凡緇忛氳繃璁よ瘉,鍙渶瑕佹浘緇忚Shiro璁頒綇榪囩櫥褰曠姸鎬佸氨鍙互姝e父鍙戣搗'/home'璇鋒眰
* @see =============================================================================================================================
* @see 5)鍚勯粯璁よ繃婊ゅ櫒甯哥敤濡備笅(娉ㄦ剰URL Pattern閲岀敤鍒扮殑鏄袱棰楁槦,榪欐牱鎵嶈兘瀹炵幇浠繪剰灞傛鐨勫叏鍖歸厤)
* @see /admins/**=anon 鏃犲弬,琛ㄧず鍙尶鍚嶄嬌鐢?鍙互鐞嗚В涓哄尶鍚嶇敤鎴鋒垨娓稿
* @see /admins/user/**=authc 鏃犲弬,琛ㄧず闇璁よ瘉鎵嶈兘浣跨敤
* @see /admins/user/**=authcBasic 鏃犲弬,琛ㄧずhttpBasic璁よ瘉
* @see /admins/user/**=user 鏃犲弬,琛ㄧず蹇呴』瀛樺湪鐢ㄦ埛,褰撶櫥鍏ユ搷浣滄椂涓嶅仛媯鏌?
* @see /admins/user/**=ssl 鏃犲弬,琛ㄧず瀹夊叏鐨刄RL璇鋒眰,鍗忚涓篽ttps
* @see /admins/user/**=perms[user:add:*]
* @see 鍙傛暟鍙啓澶氫釜,澶氬弬鏃跺繀欏誨姞涓婂紩鍙?涓斿弬鏁頒箣闂寸敤閫楀彿鍒嗗壊,濡?admins/user/**=perms["user:add:*,user:modify:*"]
* @see 褰撴湁澶氫釜鍙傛暟鏃跺繀欏繪瘡涓弬鏁伴兘閫氳繃鎵嶇畻閫氳繃,鐩稿綋浜巌sPermitedAll()鏂規硶
* @see /admins/user/**=port[8081]
* @see 褰撹姹傜殑URL绔彛涓嶆槸8081鏃?璺寵漿鍒皊chemal://serverName:8081?queryString
* @see 鍏朵腑schmal鏄崗璁甴ttp鎴杊ttps絳?serverName鏄綘璁塊棶鐨凥ost,8081鏄疨ort绔彛,queryString鏄綘璁塊棶鐨刄RL閲岀殑?鍚庨潰鐨勫弬鏁?
* @see /admins/user/**=rest[user]
* @see 鏍規嵁璇鋒眰鐨勬柟娉?鐩稿綋浜?admins/user/**=perms[user:method],鍏朵腑method涓簆ost,get,delete絳?
* @see /admins/user/**=roles[admin]
* @see 鍙傛暟鍙啓澶氫釜,澶氫釜鏃跺繀欏誨姞涓婂紩鍙?涓斿弬鏁頒箣闂寸敤閫楀彿鍒嗗壊,濡?admins/user/**=roles["admin,guest"]
* @see 褰撴湁澶氫釜鍙傛暟鏃跺繀欏繪瘡涓弬鏁伴兘閫氳繃鎵嶇畻閫氳繃,鐩稿綋浜巋asAllRoles()鏂規硶
* @see紜繚瀹夎浜唒ython錛屽ぇ閮ㄥ垎瀹夎澶辮觸閮芥槸鐢變簬python鐗堟湰榪囦綆瀵艱嚧銆傚畨瑁呬箣鍓嶏紝鍗囩駭python鐗堟湰錛屽崌綰ф楠?http://www.tomtalk.net/wiki/Python銆?/p>
[root@SNDA-192-168-15-161 ~]# python -V
Python 2.7.3
寮濮嬪畨瑁咃細
1).涓嬭澆nodejs鍒版湰鍦板茍瑙e帇緙?
[root@SNDA-192-168-15-161 node]# wget http://nodejs.org/dist/v0.9.0/node-v0.9.0.tar.gz
[root@SNDA-192-168-15-161 node]# tar zxvf node-v0.9.0.tar.gz
2).榪涘叆鍒拌鐩綍緙栬瘧鍜屽畨瑁?
[root@SNDA-192-168-15-161 node-v0.9.0]# cd node-v0.9.0
[root@SNDA-192-168-15-161 node-v0.9.0]# ./configure --prefix=/usr/local/node/0.9.0
榪欓噷瀹夎鍦ㄤ簡/usr/local/node/0.9.0鐩綍涓?
[root@SNDA-192-168-15-161 node-v0.9.0]# make
[root@SNDA-192-168-15-161 node-v0.9.0]# make install
3).閰嶇疆NODE_HOME
[root@SNDA-192-168-15-161 node-v0.9.0]# vi /etc/profile
鍦╡xport PATH USER 銆傘傘備竴琛岀殑涓婇潰娣誨姞濡備笅鍐呭錛屽茍灝哊ODE_HOME/bin璁劇疆鍒扮郴緇焢ath涓?
#set for nodejs
export NODE_HOME=/usr/local/node/0.9.0
export PATH=$NODE_HOME/bin:$PATH
淇濆瓨閫鍑哄悗鎵ц濡備笅鍛戒護錛屼嬌鍒氭墠鐨勯厤緗敓鏁?
[root@SNDA-192-168-15-161 node-v0.9.0]# source /etc/profile
鎵цnode -h鍛戒護楠岃瘉璁劇疆鎴愬姛
[root@SNDA-192-168-15-161 ~]# node -h
Usage: node [options] [ -e script | script.js ] [arguments]
node debug script.js [arguments]
Options:
-v, --version print node's version
-e, --eval script evaluate script
-p, --print print result of --eval
-i, --interactive always enter the REPL even if stdin
does not appear to be a terminal
--no-deprecation silence deprecation warnings
--trace-deprecation show stack traces on deprecations
--v8-options print v8 command line options
--max-stack-size=val set max v8 stack size (bytes)
Environment variables:
NODE_PATH ':'-separated list of directories
prefixed to the module search path.
NODE_MODULE_CONTEXTS Set to 1 to load modules in their own
global contexts.
NODE_DISABLE_COLORS Set to 1 to disable colors in the REPL
Documentation can be found at http://nodejs.org/
鑷蟲瀹夎璁劇疆瀹屾瘯銆?/p>
榪愯涓涓畝鍗曠殑node搴旂敤紼嬪簭 + socket.io錛岄鍏堥渶瑕佸畨瑁卻ocket.io妯″潡
[root@SNDA-192-168-15-161 ~]# npm install socket.io
[root@SNDA-192-168-15-161 ~]# vi app.js
var http=require('http');
var io =require('socket.io');
var server = http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/plain'});
res.end('Hello world');
});
server.listen(process.argv[2]);
var socket = io.listen(server);
socket.on('connection',function(client){
console.log('client has connected');
client.on('message',function(){ });
});
[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8001 &
[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8002 &
[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8003 &
[root@SNDA-192-168-15-161 ~]# nodejs ./app.js 8004 &
鏇磋緇嗙殑鍙傜収socket.io鐨勫畼緗?/a>鐨勪緥瀛愩?
鍓嶈█錛? Nagios鏄浉褰撲笉閿欑殑鐩戞帶宸ュ叿錛岃縐頒綔鏄?#8220;鐩戞帶涔嬬”錛屼絾鍚屾牱涔熸湁“闅炬悶姝?#8221;澶磋銆傚彂鎸agios涓鍒囬瓍鍔涚殑閮芥槸浠栫殑鎻掍歡錛屾鍥犱負涓板瘜澶氭牱鐨勬彃浠惰 nagios鏈夎鏈夎倝銆傜洃鎺х殑鍐呭涓嶆柇鍦ㄥ彉鍖栵紝鎻掍歡涔熶笉鏂彉鍖栵紝榛樿鐨勪竴浜涙彃浠跺彲鑳借秺鏉ヨ秺涓嶈兘婊¤凍闇姹傦紝榪欎釜鏃跺欏氨瑕佽嚜宸辨潵鍐欎簺鎻掍歡浜嗐?/p>
浠ヤ笅灝辨槸鐢ㄦ垜鐨勭涓涓狽agios鎻掍歡鏉ヨ鏄庣紪鍐欐柟娉曞拰鎴戦亣鍒頒竴浜涢棶棰樿皟璇曟柟娉曘傚鏋滀綘鏈夎愬績鍙互閫氱瘒鐪嬪畬錛屽簲璇ュ絎竴嬈″啓鐨勪漢鏉ヨ浼氭湁寰堝ぇ甯姪錛堝鏋滀綘鐪嬩笉鎳傦紝鍙兘鏄垜鍐欏緱涓嶆竻妤?閭e氨娌″姙娉曚簡 琛ㄨ揪鑳藉姏鏈夐檺錛?/p>
闇姹傦細
鐩戞帶鏅氱鐩樼殑鍋ュ悍鐘跺喌錛堟櫘閫氱鐩樹互澶栬繕鏈塕AID銆侀樀鍒楃殑鐩戞帶鏄笉鍚屾柟娉曟潵鍋氱殑錛岃繖閲屽厛涓嶈璁猴紝鍏堜粠鏈綆鍗曠殑鍏ユ墜錛夛紝瀹氭湡榪涜媯嫻嬶紝騫惰繘琛屾姤璀︼紝鎶ヨ鍐呭紓佺洏鏄惁姝e父錛屼笉姝e父鏄粈涔堢姸鎬併?/p>
鍒嗘瀽緙栧啓榪囩▼錛?/p>
鎴戝啓鑴氭湰鐨勫墠鎻愰兘鏄厛浠庢墜鍔ㄦ垚鍔熷畬鎴愶紝鍐嶅埌鑷姩鍖栵紙鎴戞兂鍏跺畠浜虹殑鎬濊礬搴旇閮戒竴鏍風殑錛?/p>
1銆佹壘鍒扮洃鎺х鐩樼殑鏂規硶
閫氳繃涓鐣煡鎵?smartctl 榪欎釜鍛戒護鏄瘮杈冧笉閿欑殑 centos slackware涓鑸殑榛樿閮芥湁榪欎釜
smartctl -H /dev/sda 鍙嫻嬬姸鎬?/p>
smartctl -i /dev/sda 鍙嫻嬬‖鐩樹俊鎭?/p>
smartctl -a /dev/sda 媯嫻嬫墍鏈変俊鎭?/p>
2銆佽幏鍙栨嫻嬩俊鎭?/p>
# smartctl -H /dev/sda
smartctl version 5.38 [x86_64-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
SMART Health Status: OK
鍏抽敭鐨勬渶鍚庝竴琛岃鏄庣鐩樼殑鎯呭喌 鎴彇 DISK_HEALTH=`smartctl -H /dev/sda | tail -1 | cut -d: -f2- `
3銆?榪涜鍏抽敭鍒ゆ柇
鎹垜鎵鐭ラ亾鐨?smartctl 5.38 鏄嚭浠ヤ笂鐨勭祼鏋?涓篛K
鑰?smartctl 5.39 鏄嚭浠ヤ笅緄愭灉
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
鍏抽敭璇嶆槸PASSED
鎵浠ヨ鍒嗘瀽鍒ゆ柇澶氱鎯呭喌
4銆佽剼鏈紪鍐欐楠?/p>
1錛変簡瑙agios鎻掍歡緙栧啓瑙勮寖
Nagios鐨勬彃浠跺彲浠ョ敤鑴氭湰錛坰hell銆丳erl錛塁緙栬瘧鍚庣殑鍙墽琛岀▼搴忥紝浣嗗繀欏繪弧瓚充互涓嬩袱浠朵簨錛?/p>
A銆佹棦鍑烘椂鏈変竴涓繑鍥炲?/p>
B銆佽嚦灝戝悜鏍囧噯杈撳嚭璁懼錛圫TDOUT錛夎緭鍑轟竴琛屾枃浠躲傦紙浣嗕篃涓嶈兘澶ぇ錛岄粯璁ゆ槸4K錛屽鏋滄兂澶т簺錛屼慨鏀規簮紼嬪簭鍚э紝鏂規硶鎼溿?
榪斿洖鍊煎畾涔夛細
Plugin Return Code Service State DISK State
0 OK OK 鎴栬匬ASSED
1 WARNING 鎻掍歡璀﹀憡 DISK鎶ヨ鍙垎OK鎴栬匔RITICAL
2 CRITICAL DISK媯嫻嬮潪OK 鎴栬匬ASSED
3 UNKNOWN 鏈煡鐘舵?
2)鎻掍歡緙栧啓SHELL閫熸垚娉?/p>
鍦ㄨ繖閲屾垜閫夌敤鎴戞渶鐔熸倝鐨凷HELL榪涜鑴氭湰緙栧啓 ,
鎴戠殑閫熸垚娉曞氨鏄紝鐩存帴鍘籲agios exchange 鍘諱笅姣旇緝鎴愮啛鐨勬瘮杈冪畝鍗曠殑shell鑴氭湰錛岃繖鏍蜂細浠庝竴寮濮嬪熼壌鍒漢濂界殑鏂規硶錛屽吇鎴愬ソ鐨勪範鎯紝鑰屼笖鍙浣犳湁涓鐐筍HELL緙栫▼緇忛獙涔熷彲浠ュ緢蹇啓寰楀儚涓涓佹墜銆傦紙涓嶈繃涓嶈鎶婅嚜宸辨悶鏅曚簡灝辮錛?/p>
3錛変互涓嬫槸鎴戠殑check_disk_health.sh
#!/bin/bash
# ========================================================================================
# disk health plugin for Nagios
#
# Written by : Ajian
# Release : 1.2.0
# Creation date : 2009-07-28
# Revision date : 2009-07-30
# Description : Nagios plugin (script) to check disk health .
# This script has been designed and written on Linux System.
#
# USAGE : ./check_disk_health.sh [-d (disk)]
#
# Exemple: ./check_cpu_stats.sh
# ./check_cpu_stats.sh -d /dev/sda
#
#
# HISTORY :
# Release | Date | Authors | Description
# --------------+---------------+----------------------+-----------------------------------
# 1.0.0 | 2009-07-28 | Ajian | Create the script
# 1.2.0 | 2009-07-30 | Ajian | modify the script and run well ,fix a bug.
# -----------------------------------------------------------------------------------------
# NOTICE:
#-----------------------------------------------------------------------------------------
# You should have the root Permissions ,You can use sudo to realize .
# -----------------------------------------------------------------------------------------
# Nagios return codes
#瀹氫箟 nagios榪斿洖鐨勭姸鎬佸彉閲?br />STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
# Paths to commands used in this script. These may have to be modified to match your system setup.
# 瀹氫箟鍏抽敭鐨勬牳蹇冨懡浠martctl 璺緞 濡傛灉浣犵殑緋葷粺涓嶆槸榪欎釜鍦板潃錛岃鏇存敼銆?浠ヤ笅娉ㄩ噴鐨勬槸璋冭瘯鐨勪俊鎭紝鏄嚜鍔ㄨ幏鍙栧懡浠よ礬寰勭殑鏂規硶銆?br />SMARTCTL="/usr/sbin/smartctl"
#SMARTCTL=`which smartctl`
#if [ $? -ne 0 ]; then
# echo " smartctl is found in $SMARTCTL ; Go on ... "
# echo "smartctl the command cannot find"
# exit $STATE_UNKNOWN
#fi
# Plugin parameters value if not define
# 瀹氫箟榛樿鐨勬嫻嬬‖鐩?br />CHECK_DISK="/dev/sda"
# Plugin variable description
# 鎻掍歡鎻忚堪淇℃伅
PROGNAME=$(basename $0)
RELEASE="Revision 1.2.0"
AUTHOR="(c) 2009 Ajian ()"
# Functions plugin usage
# 鎻掍歡鐨勪嬌鐢ㄦ柟娉曞嚱鏁?br />print_release() {
echo "$RELEASE $AUTHOR"
}
print_usage() {
echo ""
echo "$PROGNAME $RELEASE - Disk health check script for Nagios"
echo ""
echo "Usage: check_disk_health.sh -d /dev/sdb"
echo ""
echo " -d the disk (/dev/sda) "
echo " not the Hard disk partition(sda2 is wrong)"
echo " -v check the version"
echo " -h Show this page"
echo ""
echo "Usage: $PROGNAME"
echo "Usage: $PROGNAME --help"
echo ""
exit 0
}
print_help() {
print_usage
echo ""
echo "This plugin will check disk health "
echo ""
exit 0
}
# Parse parameters
# 浼犻掑弬鏁?br />while [ $# -gt 0 ]; do
case "$1" in
-h | --help)
print_help
exit $STATE_OK
;;
-v | --version)
print_release
exit $STATE_OK
;;
-d | --disk)
shift
CHECK_DISK=$1
#鍒ゆ柇紓佺洏鏄惁瀛樺湪
if [ ! -b $CHECK_DISK ];then
echo "$CHECK_DISK is no exsit,Please change it "
exit $STATE_CRITICAL
fi
;;
*) echo "Unknown argument: $1"
print_usage
exit $STATE_UNKNOWN
;;
esac
shift
done
錛冩牴鎹笉鍚岀殑鎿嶄綔榪涜涓嶅悓鐨勬搷浣滐紝榪欓噷鏆傛椂鍙敮鎸丩inux
case `uname` in
Linux )
#鏈鏍稿績鐨勯儴鍒?鍓嶉潰閮芥槸浜涜剼鏈殑鍩烘湰鍔熻兘 涓涓鏋?鍥犱負絎竴涓剼鏈壍鎵埌浜嗗緢澶氫笢瑗匡紝铏界劧鍔熻兘寰堢畝鍗曪紝
#浣嗘姌鑵句簡鎴戜笉灝戯紝鍦ㄥ悗闈㈢殑鍒嗘瀽涓細鍏蜂綋璇村埌 鎬諱箣娉ㄦ剰sudo鐢ㄦ硶 鑴氭湰涓寮濮嬪氨鏈夎鍝?br /> DISK_HEALTH=`$SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
#DISK_HEALTH="OK"
# DISK_INFO=`/usr/bin/sudo $SMARTCTL -i $CHECK_DISK | grep "Device:"`
if [ "$DISK_HEALTH" = " OK" ]|| [ "$DISK_HEALTH" = " PASSED" ];then
echo "OK - $CHECK_DISK status is $DISK_HEALTH "
#echo "OK - $CHECK_DISK status is $DISK_HEALTH | $DISK_INFO"
exit $STATE_OK
else
echo "CRITICAL - $CHECK_DISK status is $DISK_HEALTH "
#echo "CRITICAL - $CHECK_DISK status is $DISK_HEALTH | $DISK_INFO"
exit $STATE_CRITICAL
fi
;;
*) echo "UNKNOWN: `uname` not yet supported by this plugin. Coming soon !"
exit $STATE_UNKNOWN
;;
esac4)榪愯鑴氭湰
錛堟敞鎰忥細鍦ㄦ渶寮濮嬭嚜宸卞啓鐨勮剼鏈槸娌℃湁sudo鐨勶紝浠ヤ笂鑴氭湰鏄凡緇忚皟璇曡繃鍚庣殑錛岃繕闇瑕侀厤緗竴浜涘叾瀹冪殑涓滆タ錛屾參鎱㈢湅鍚э級
緇欎笌鑴氭湰鎵ц鏉冮檺錛屾墜鍔ㄦ墽琛?/p>
# ./check_disk_health.sh
OK – /dev/sda status is OK
緄愭灉姝g‘浜嗭紝鍏跺疄榪欎釜鏃跺欙紝楂樺叴寰楀お鏃╀簡銆?鎴戝厛涓嶈闂銆佺戶緇甯哥殑涓鑸祦紼嬨?/p>
5銆侀厤緗甆agios 璋冪敤鎻掍歡
1錛夊湪榪滅▼NRPE 琚洃鎺ф湇鍔″櫒涓婁慨鏀筺rpe.conf
# vim /usr/local/nagios/etc/nrpe.cfg
娣誨姞 command[check_sda_health]=/usr/local/nagios/libexec/check_disk_health.sh -d /dev/sda
錛堟敞鎰忚繖閲屼簡錛屽厛鎻愰啋涓嬶紝榪欓噷鏄敊璇殑錛屼竴鑸槸姝g‘鐨勶紝鏄繖涓剼鏈殑鐗規畩鎬ч犳垚鐨勶級
2錛夊湪Nagios 鐩戞帶鏈嶅姟鍣ㄤ笂娣誨姞涓浜涢厤緗?/p>
瀹氫箟鏈嶅姟
define service{
use Disk-Health
host_name DB-56
servicegroups Disk-Health
service_description check sda disk health
contact_groups admins
check_command check_nrpe!check_sda_health
}
濡傛灉鍍忎笂闈㈠畾涔変竴涓湇鍔?閭d箞灝辮娉ㄦ剰鐩稿叧鐨勫畾涔変簡 錛?br />瀹氫箟Disk-Health 妯$増 鎶婄‖鐩樻嫻嬪畾涔変竴涓ā鐗堜細姣旇緝濂芥帶鍒訛紝鍥犱負紜洏鐨勬嫻嬩笉鍍忓叾瀹冩湇鍔′竴鏍烽渶瑕佸噯紜殑鍙婃椂鎬у弽姝f嫻嬪緱澶鍙兘浼氶犳垚鍘嬪姏錛屼竴鑸竴澶╂嫻嬪嚑嬈″氨澶熶簡銆?br />瀹氫箟DB-56 涓繪満闇瑕佸畾涔?br />瀹氫箟緇?admins
浠ヤ笂榪欎簺鍙瀹夎榪噉agios 涓鑸兘鐭ラ亾鐨勪簡 鍙槸寮鴻皟涓嬫ā鐗堢殑鍗曠嫭瀹氫箟
3)閫氳繃WEB鎺у埗媯嫻?鏌ョ湅緄愭灉
緄愭灉鏄け璐?鎶ヨCRITCTL 浣嗘槸鐘舵侀噷闈㈢殑淇℃伅閮芥槸絀虹殑 CRITCTL – /dev/sda status is
6銆佽皟璇?/p>
浠嶯agios鐨勮繙紼嬬洃鎺ф潵鐪嬫槸澶辮觸鐨勶紝騫朵笖娌℃湁鑾峰彇鍒頒換鍔℃湁鐢ㄧ殑淇℃伅銆?/p>
鍒嗘瀽鍙互鐪嬪埌錛岃鏄巒rpe璋冪敤 榪欎釜鍙橀噺鑾峰彇鍒扮殑鏄負絀虹殑淇℃伅
DISK_HEALTH=`$SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
鍗蟲槸絀虹殑 鍙湁涓涓師鍥狅紝鑲畾鏄病鏈夋墽琛?濡傛灉鎵ц浜?鑲畾浼氭湁瀛楁 涓嶇榪欎釜瀛楁鏄惁鐩哥銆?br />浣嗘槸鎵嬪姩鎵ц鏄病鏈夐棶棰樸?br />緇忚繃瀵箂martctl鐨勬煡鐪?鍘熸潵榪欎釜鍛戒護鏄彧鍏佽root榪涜璋冪敤鐨勩?br />鐜板湪闇瑕佽В鍐崇殑闂鏄細闈瀝oot 鐢ㄦ埛 濡備綍榪滅▼璋冪敤鍚湁闇瑕佹湁root鏉冮檺鍛戒護鐨勮剼鏈繘琛岀洃鎺с?br />錛堜笉瑕佸皬鐪嬭繖涓鍙ヨ瘽錛屾瘡涓涓瘝閮芥槸涓涓渶瑕佹敾鍏嬬殑鍦版柟錛?br />浠ヤ笅鏄皟璇曟楠わ細
1錛夐潪root鐢ㄦ埛
NRPE鎻掍歡鏄敤nagios榪欎釜鐢ㄦ埛鏉ユ墽琛岀殑 鎵浠ヨ寰楀埌鐪熷疄鐨勬儏鍐甸渶瑕?br />A錛?su nagios 鍐嶆墽琛岃剼鏈?(榪欎釜鏂規硶姣旇緝濂?
B錛?sudo -u nagios ./check_disk_health.sh
緄愭灉錛?/p>
sudo -u nagios ./check_disk_health.sh
CRITICAL – /dev/sda status is
璺熻繙紼嬬殑緄愭灉鏄竴鏍風殑浜?娌℃湁淇℃伅
2錛夐渶瑕佹湁root鏉冮檺
闇瑕乺oot鏉冮檺鍙湁涓涓姙娉曞氨鏄敤sudo
灝咲ISK_HEALTH=`$SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
鏀逛負DISK_HEALTH=`/usr/bin/sudo $SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
錛堟渶鍚庡彂鐜拌繖鏃跺姞sudo 騫朵笉鏄叧閿?鍏抽敭鏄緢琛岃剼鏈椂鐢╯udo 錛?br />緄愭灉錛歴udo -u nagios ./check_disk_health.sh
Password:
闇瑕佽緭鍏ュ瘑鐮?nbsp; sudo涓嶇敤杈撳叆瀵嗙爜鐨勬柟娉?br />淇敼sudo閰嶇疆鏂囦歡
鎵ц visudo
娣誨姞
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_disk_health.sh
寤鴻錛氭渶濂借繘琛宻udo鐨勪竴浜涙帶鍒訛紝寰堝緗戞柟娉曞氨鏄痭agios ALL=NOPASSWD:ALL
緇撴灉錛?br />su nagios
/usr/bin/sudo check_disk_health.sh
OK – /dev/sda status is OK
閭d箞鍦╪rpe.conf閰嶇疆鏂囦歡涓渶瑕佹坊鍔爏udo
command[check_sda_health]=/usr/bin/sudo /usr/local/nagios/libexec/check_disk_health.sh
鏈寮濮嬮偅涓槸閿欒鐨?娉ㄦ剰鍟?榪欎釜鏄渶瑕佹坊鍔?usr/bin/sudo 灝辨槸璇村彧瑕佽剼鏈腑娑夊強鍒版彁鍗囧埌root鏉冮檺鐨勫懡浠ら偅涔堝氨瑕佺敤榪欎釜
3錛夎繙紼嬭皟鐢?br />榪滅▼璋冪敤鏂規硶錛?/check_nrpe -H 192.168.0.56 -c check_sda_health
鍚屼笂濡傛灉鎯蟲ā鎷熺湡瀹炵幆澧冭鍒囨崲鍒扮浉搴旂殑鎵ц鐢ㄦ埛 su nagios 鍐嶆墽琛屼互涓婃搷浣?br />緇撴灉錛?nbsp; NRPE: Unable to read output
榪欎釜閿欒鐨勫師鍥犱竴瀹氳鏄庣櫧錛屼箣鎵浠ユ姤榪欎釜閿欐剰鎬濇槸璇碞RPE娌℃湁鑾峰彇鍒頒換浣曚俊鎭紝涔熻鏄啓鑴氭湰涔嬪墠璇寸殑鍏朵腑絎簩鏉¤鑼?br />闂錛氬湪娌℃湁浠諱綍淇℃伅鐨勬儏鍐典笅鎬庝箞鏉ヨ幏鍙朜RPE鎵ц鐨勬棩蹇楀憿
灝辨槸瑕佺‘瀹氶棶棰樺湪鍝紝緇忚繃涓澶х暘鐨勬煡鎵劇溂鐫涘伓灝旂湅鍒頒竴涓湁瓚g殑灝忔柟娉?br />淇nrpe.conf閰嶇疆鏂囦歡 鍦ㄨ媯鏌ョ殑鍛戒護鍚庨潰娣誨姞>>/tmp/output 2>&1 灝嗛敊璇鍑哄埌鏂囦歡涓繘琛屾煡鐪?br />command[check_sda_health]=/usr/bin/sudo /usr/local/nagios/libexec/check_disk_health.sh -d /dev/sda >>/tmp/output 2>&1
閲嶈nrpe鏈嶅姟
榪滅▼璋冪敤 緇撴灉褰撶劧榪樻槸NRPE: Unable to read output
鏌ョ湅/tmp/output
sudo: sorry, you must have a tty to run sudo
鏈夐敊璇氨綆鍗曚簡 鍘熸潵榪欎釜鏄粯璁や笉鍏佽sudo 鍦ㄥ悗绔繘琛?br />visudo
娉ㄩ噴Defaults requiretty 灝監K浜?br />緇撴灉閫氳繃WEB鏌ョ湅涔熸紜簡銆?br />(娉ㄦ剰錛氭敞閲婂悗 媯嫻嬩粛鐒朵細鏄疷nable 涓嶈繃鐪?tmp/output灝變細鏈夋紜殑緄愭灉錛屾墍浠ユ湁姝g‘鐨勭祼鏋滃悗錛屼竴瀹氳鍘繪帀 >>/tmp/outpt 2>&1 淇℃伅閮藉鍒版枃浠朵腑浜?nagios榪樻槸寰椾笉鍒頒換浣曟秷鎭?
涓涓剼鏈墽琛屾垚鍔熷悗錛屽氨鏄ぇ鎵歸噺搴旂敤錛岀敤鐢熶駭鐜楠岃瘉錛屽嚭鐜伴棶棰樼戶緇皟璇曘?/p> 浠ヤ笂涓烘墍鏈夌殑鍒嗘瀽璋冭瘯鏂規硶銆傚鏋滀綘鐪嬪埌鏈鍚庝竴姝ヤ簡錛岃鏄庝綘寰堟湁鑰愬績錛屼綘涔熶竴瀹氫細鎴愬姛鐨勶紝鑷充簬鍐欏緱濂戒笌鍧忋佸涓庨敊璇峰敖綆¤錛岃繖涓嶄細褰卞搷浣犵殑鎴愬姛銆傚懙鍛點?/div>杞嚜: