摘要: JavaSript模塊化 在了解AMD,CMD規(guī)范前,還是需要先來簡單地了解下什么是模塊化,模塊化開發(fā)? 模塊化是指在解決某一個復(fù)雜問題或者一系列的雜糅問題時,依照一種分類的思維把問題進(jìn)行系統(tǒng)性的分解以之處理。模塊化是一種處理復(fù)雜系統(tǒng)分解為代碼結(jié)構(gòu)更合理,可維護(hù)性更高的可管理的模塊的方式。可以想象一個巨大的...
/**
* Shiro-1.2.2內(nèi)置的FilterChain
* @see =============================================================================================================================
* @see 1)Shiro驗證URL時,URL匹配成功便不再繼續(xù)匹配查找(所以要注意配置文件中的URL順序,尤其在使用通配符時)
* @see 故filterChainDefinitions的配置順序為自上而下,以最上面的為準(zhǔn)
* @see 2)當(dāng)運行一個Web應(yīng)用程序時,Shiro將會創(chuàng)建一些有用的默認(rèn)Filter實例,并自動地在[main]項中將它們置為可用
* @see 自動地可用的默認(rèn)的Filter實例是被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是第一組認(rèn)證過濾器
* @see perms,port,rest,roles,ssl是第二組授權(quán)過濾器
* @see 注意user和authc不同:當(dāng)應(yīng)用開啟了rememberMe時,用戶下次訪問時可以是一個user,但絕不會是authc,因為authc是需要重新認(rèn)證的
* @see user表示用戶不一定已通過認(rèn)證,只要曾被Shiro記住過登錄狀態(tài)的用戶就可以正常發(fā)起請求,比如rememberMe
* @see 說白了,以前的一個用戶登錄時開啟了rememberMe,然后他關(guān)閉瀏覽器,下次再訪問時他就是一個user,而不會authc
* @see =============================================================================================================================
* @see 4)舉幾個例子
* @see /admin=authc,roles[admin] 表示用戶必需已通過認(rèn)證,并擁有admin角色才可以正常發(fā)起'/admin'請求
* @see /edit=authc,perms[admin:edit] 表示用戶必需已通過認(rèn)證,并擁有admin:edit權(quán)限才可以正常發(fā)起'/edit'請求
* @see /home=user 表示用戶不一定需要已經(jīng)通過認(rèn)證,只需要曾經(jīng)被Shiro記住過登錄狀態(tài)就可以正常發(fā)起'/home'請求
* @see =============================================================================================================================
* @see 5)各默認(rèn)過濾器常用如下(注意URL Pattern里用到的是兩顆星,這樣才能實現(xiàn)任意層次的全匹配)
* @see /admins/**=anon 無參,表示可匿名使用,可以理解為匿名用戶或游客
* @see /admins/user/**=authc 無參,表示需認(rèn)證才能使用
* @see /admins/user/**=authcBasic 無參,表示httpBasic認(rèn)證
* @see /admins/user/**=user 無參,表示必須存在用戶,當(dāng)?shù)侨氩僮鲿r不做檢查
* @see /admins/user/**=ssl 無參,表示安全的URL請求,協(xié)議為https
* @see /admins/user/**=perms[user:add:*]
* @see 參數(shù)可寫多個,多參時必須加上引號,且參數(shù)之間用逗號分割,如/admins/user/**=perms["user:add:*,user:modify:*"]
* @see 當(dāng)有多個參數(shù)時必須每個參數(shù)都通過才算通過,相當(dāng)于isPermitedAll()方法
* @see /admins/user/**=port[8081]
* @see 當(dāng)請求的URL端口不是8081時,跳轉(zhuǎn)到schemal://serverName:8081?queryString
* @see 其中schmal是協(xié)議http或https等,serverName是你訪問的Host,8081是Port端口,queryString是你訪問的URL里的?后面的參數(shù)
* @see /admins/user/**=rest[user]
* @see 根據(jù)請求的方法,相當(dāng)于/admins/user/**=perms[user:method],其中method為post,get,delete等
* @see /admins/user/**=roles[admin]
* @see 參數(shù)可寫多個,多個時必須加上引號,且參數(shù)之間用逗號分割,如/admins/user/**=roles["admin,guest"]
* @see 當(dāng)有多個參數(shù)時必須每個參數(shù)都通過才算通過,相當(dāng)于hasAllRoles()方法
* @see
http://liureying.blog.163.com/blog/static/61513520136205574873/
spring中 shiro logout 配置方式
有兩種方式實現(xiàn)logout
1. 普通的action中 實現(xiàn)自己的logout方法,取到Subject,然后logout
這種需要在ShiroFilterFactoryBean 中配置 filterChainDefinitions
對應(yīng)的action的url為anon
<property name="filterChainDefinitions">
<value>
# some example chain definitions:
/index.htm = anon
/logout = anon
/unauthed = anon
/console/** = anon
/css/** = anon
/js/** = anon
/lib/** = anon
/admin/** = authc, roles[admin]
/docs/** = authc, perms[document:read]
/** = authc
# more URL-to-FilterChain definitions here
</value>
2. 使用shiro提供的logout filter
需要定義 相應(yīng)的bean
<bean id="logout" class="org.apache.shiro.web.filter.authc.LogoutFilter">
<property name="redirectUrl" value="/loginform" />
</bean>
然后將相應(yīng)的url filter配置為logout如下
<property name="filterChainDefinitions">
<value>
# some example chain definitions:
/index.htm = anon
/logout = logout
/unauthed = anon
/console/** = anon
/css/** = anon
/js/** = anon
/lib/** = anon
/admin/** = authc, roles[admin]
/docs/** = authc, perms[document:read]
/** = authc
# more URL-to-FilterChain definitions here
</value>
http://kdboy.iteye.com/blog/1154652
http://blog.csdn.net/peterwanghao/article/details/8084126
http://www.oschina.net/question/593111_62454
http://blog.csdn.net/shadowsick/article/details/17265625
確保安裝了python,大部分安裝失敗都是由于python版本過低導(dǎo)致。安裝之前,升級python版本,升級步驟 http://www.tomtalk.net/wiki/Python。
[root@SNDA-192-168-15-161 ~]# python -V
Python 2.7.3
開始安裝:
1).下載nodejs到本地并解壓縮
[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).進(jìn)入到該目錄編譯和安裝
[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
在export PATH USER 。。。一行的上面添加如下內(nèi)容,并將NODE_HOME/bin設(shè)置到系統(tǒng)path中
#set for nodejs
export NODE_HOME=/usr/local/node/0.9.0
export PATH=$NODE_HOME/bin:$PATH
保存退出后執(zhí)行如下命令,使剛才的配置生效
[root@SNDA-192-168-15-161 node-v0.9.0]# source /etc/profile
執(zhí)行node -h命令驗證設(shè)置成功
[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/
至此安裝設(shè)置完畢。
運行一個簡單的node應(yīng)用程序 + socket.io,首先需要安裝socket.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 &
更詳細(xì)的參照socket.io的官網(wǎng)的例子。
websocket與node.js的完美結(jié)合
http://wanshuiqianshan.iteye.com/blog/1618498
前言: Nagios是相當(dāng)不錯的監(jiān)控工具,被稱作是“監(jiān)控之神”,但同樣也有“難搞死”頭銜。發(fā)揮Nagios一切魅力的都是他的插件,正因為豐富多樣的插件讓 nagios有血有肉。監(jiān)控的內(nèi)容不斷在變化,插件也不斷變化,默認(rèn)的一些插件可能越來越不能滿足需求,這個時候就要自己來寫些插件了。
以下就是用我的第一個Nagios插件來說明編寫方法和我遇到一些問題調(diào)試方法。如果你有耐心可以通篇看完,應(yīng)該對第一次寫的人來說會有很大幫助(如果你看不懂,可能是我寫得不清楚 那就沒辦法了 表達(dá)能力有限)
需求:
監(jiān)控普通磁盤的健康狀況(普通磁盤以外還有RAID、陣列的監(jiān)控是不同方法來做的,這里先不討論,先從最簡單的入手),定期進(jìn)行檢測,并進(jìn)行報警,報警內(nèi)容磁盤是否正常,不正常是什么狀態(tài)。
分析編寫過程:
我寫腳本的前提都是先從手動成功完成,再到自動化(我想其它人的思路應(yīng)該都一樣的)
1、找到監(jiān)控磁盤的方法
通過一番查找 smartctl 這個命令是比較不錯的 centos slackware一般的默認(rèn)都有這個
smartctl -H /dev/sda 只檢測狀態(tài)
smartctl -i /dev/sda 只檢測硬盤信息
smartctl -a /dev/sda 檢測所有信息
2、獲取檢測信息
# 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
關(guān)鍵的最后一行說明磁盤的情況 截取 DISK_HEALTH=`smartctl -H /dev/sda | tail -1 | cut -d: -f2- `
3、 進(jìn)行關(guān)鍵判斷
據(jù)我所知道的 smartctl 5.38 是出以上的結(jié)果 為OK
而 smartctl 5.39 是出以下結(jié)果
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
關(guān)鍵詞是PASSED
所以要分析判斷多種情況
4、腳本編寫步驟
1)了解nagios插件編寫規(guī)范
Nagios的插件可以用腳本(shell、Perl)C編譯后的可執(zhí)行程序,但必須滿足以下兩件事:
A、既出時有一個返回值
B、至少向標(biāo)準(zhǔn)輸出設(shè)備(STDOUT)輸出一行文件。(但也不能太大,默認(rèn)是4K,如果想大些,修改源程序吧,方法搜。)
返回值定義:
Plugin Return Code Service State DISK State
0 OK OK 或者PASSED
1 WARNING 插件警告 DISK報警只分OK或者CRITICAL
2 CRITICAL DISK檢測非OK 或者PASSED
3 UNKNOWN 未知狀態(tài)
2)插件編寫SHELL速成法
在這里我選用我最熟悉的SHELL進(jìn)行腳本編寫 ,
我的速成法就是,直接去nagios exchange 去下比較成熟的比較簡單的shell腳本,這樣會從一開始借鑒別人好的方法,養(yǎng)成好的習(xí)慣,而且只要你有一點SHELL編程經(jīng)驗也可以很快寫得像一個老手。(不過不要把自己搞暈了就行)
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返回的狀態(tài)變量
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.
# 定義關(guān)鍵的核心命令smartctl 路徑 如果你的系統(tǒng)不是這個地址,請更改。 以下注釋的是調(diào)試的信息,是自動獲取命令路徑的方法。
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
# 定義默認(rèn)的檢測硬盤
CHECK_DISK="/dev/sda"
# Plugin variable description
# 插件描述信息
PROGNAME=$(basename $0)
RELEASE="Revision 1.2.0"
AUTHOR="(c) 2009 Ajian ()"
# Functions plugin usage
# 插件的使用方法函數(shù)
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
# 傳遞參數(shù)
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
#根據(jù)不同的操作進(jìn)行不同的操作,這里暫時只支持Linux
case `uname` in
Linux )
#最核心的部分 前面都是些腳本的基本功能 一個框架 因為第一個腳本牽扯到了很多東西,雖然功能很簡單,
#但折騰了我不少,在后面的分析中會具體說到 總之注意sudo用法 腳本一開始就有說哦
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的,以上腳本是已經(jīng)調(diào)試過后的,還需要配置一些其它的東西,慢慢看吧)
給與腳本執(zhí)行權(quán)限,手動執(zhí)行
# ./check_disk_health.sh
OK – /dev/sda status is OK
結(jié)果正確了,其實這個時候,高興得太早了。 我先不說問題、繼續(xù)正常的一般流程。
5、配置Nagios 調(diào)用插件
1)在遠(yuǎn)程NRPE 被監(jiān)控服務(wù)器上修改nrpe.conf
# vim /usr/local/nagios/etc/nrpe.cfg
添加 command[check_sda_health]=/usr/local/nagios/libexec/check_disk_health.sh -d /dev/sda
(注意這里了,先提醒下,這里是錯誤的,一般是正確的,是這個腳本的特殊性造成的)
2)在Nagios 監(jiān)控服務(wù)器上添加一些配置
定義服務(wù)
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
}
如果像上面定義一個服務(wù) 那么就要注意相關(guān)的定義了 ,
定義Disk-Health 模版 把硬盤檢測定義一個模版會比較好控制,因為硬盤的檢測不像其它服務(wù)一樣需要準(zhǔn)確的及時性反正檢測得太多可能會造成壓力,一般一天檢測幾次就夠了。
定義DB-56 主機(jī)需要定義
定義組 admins
以上這些只要安裝過nagios 一般都知道的了 只是強調(diào)下模版的單獨定義
3)通過WEB控制檢測 查看結(jié)果
結(jié)果是失敗 報警CRITCTL 但是狀態(tài)里面的信息都是空的 CRITCTL – /dev/sda status is
6、調(diào)試
從Nagios的遠(yuǎn)程監(jiān)控來看是失敗的,并且沒有獲取到任務(wù)有用的信息。
分析可以看到,說明nrpe調(diào)用 這個變量獲取到的是為空的信息
DISK_HEALTH=`$SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
即是空的 只有一個原因,肯定是沒有執(zhí)行 如果執(zhí)行了 肯定會有字段 不管這個字段是否相符。
但是手動執(zhí)行是沒有問題。
經(jīng)過對smartctl的查看 原來這個命令是只允許root進(jìn)行調(diào)用的。
現(xiàn)在需要解決的問題是:非root 用戶 如何遠(yuǎn)程調(diào)用含有需要有root權(quán)限命令的腳本進(jìn)行監(jiān)控。
(不要小看這一句話,每一個詞都是一個需要攻克的地方)
以下是調(diào)試步驟:
1)非root用戶
NRPE插件是用nagios這個用戶來執(zhí)行的 所以要得到真實的情況需要
A: su nagios 再執(zhí)行腳本 (這個方法比較好)
B: sudo -u nagios ./check_disk_health.sh
結(jié)果:
sudo -u nagios ./check_disk_health.sh
CRITICAL – /dev/sda status is
跟遠(yuǎn)程的結(jié)果是一樣的了 沒有信息
2)需要有root權(quán)限
需要root權(quán)限只有一個辦法就是用sudo
將DISK_HEALTH=`$SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
改為DISK_HEALTH=`/usr/bin/sudo $SMARTCTL -H $CHECK_DISK | tail -1 | cut -d: -f2- `
(最后發(fā)現(xiàn)這時加sudo 并不是關(guān)鍵 關(guān)鍵是很行腳本時用sudo )
結(jié)果:sudo -u nagios ./check_disk_health.sh
Password:
需要輸入密碼 sudo不用輸入密碼的方法
修改sudo配置文件
執(zhí)行 visudo
添加
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_disk_health.sh
建議:最好進(jìn)行sudo的一些控制,很多網(wǎng)方法就是nagios ALL=NOPASSWD:ALL
結(jié)果:
su nagios
/usr/bin/sudo check_disk_health.sh
OK – /dev/sda status is OK
那么在nrpe.conf配置文件中需要添加sudo
command[check_sda_health]=/usr/bin/sudo /usr/local/nagios/libexec/check_disk_health.sh
最開始那個是錯誤的 注意啊 這個是需要添加/usr/bin/sudo 就是說只要腳本中涉及到提升到root權(quán)限的命令那么就要用這個
3)遠(yuǎn)程調(diào)用
遠(yuǎn)程調(diào)用方法:./check_nrpe -H 192.168.0.56 -c check_sda_health
同上如果想模擬真實環(huán)境請切換到相應(yīng)的執(zhí)行用戶 su nagios 再執(zhí)行以上操作
結(jié)果: NRPE: Unable to read output
這個錯誤的原因一定要明白,之所以報這個錯意思是說NRPE沒有獲取到任何信息,也說是寫腳本之前說的其中第二條規(guī)范
問題:在沒有任何信息的情況下怎么來獲取NRPE執(zhí)行的日志呢
就是要確定問題在哪,經(jīng)過一大番的查找眼睛偶爾看到一個有趣的小方法
修復(fù)nrpe.conf配置文件 在要檢查的命令后面添加>>/tmp/output 2>&1 將錯誤導(dǎo)出到文件中進(jìn)行查看
command[check_sda_health]=/usr/bin/sudo /usr/local/nagios/libexec/check_disk_health.sh -d /dev/sda >>/tmp/output 2>&1
重記nrpe服務(wù)
遠(yuǎn)程調(diào)用 結(jié)果當(dāng)然還是NRPE: Unable to read output
查看/tmp/output
sudo: sorry, you must have a tty to run sudo
有錯誤就簡單了 原來這個是默認(rèn)不允許sudo 在后端進(jìn)行
visudo
注釋Defaults requiretty 就OK了
結(jié)果通過WEB查看也正確了。
(注意:注釋后 檢測仍然會是Unable 不過看/tmp/output就會有正確的結(jié)果,所以有正確的結(jié)果后,一定要去掉 >>/tmp/outpt 2>&1 信息都導(dǎo)到文件中了 nagios還是得不到任何消息。)
一個腳本執(zhí)行成功后,就是大批量應(yīng)用,用生產(chǎn)環(huán)境驗證,出現(xiàn)問題繼續(xù)調(diào)試。
以上為所有的分析調(diào)試方法。如果你看到最后一步了,說明你很有耐心,你也一定會成功的,至于寫得好與壞、對與錯請盡管說,這不會影響你的成功。呵呵。
摘要: 一、Nagios簡介 Nagios是一款開源的電腦系統(tǒng)和網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。在系統(tǒng)或服務(wù)狀態(tài)異常時發(fā)出郵件或短信報警第一時間通知網(wǎng)站運維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。 Nagios原名為NetSaint,由Ethan Galstad開發(fā)并維護(hù)至今。NAGIOS是一個縮寫形式: "Nagio...