❶ tidtcpserver怎麼用
在桐並早學習idTCPServer的監聽機制前,先認識兩個對象:
1.TidListenerThread:下文稱之為監聽對象。這是一個線程對象。
2.TListenerThreads,下文稱之為監聽列表對象。負責保存並管理監聽對象。
在idTCPServer內部,使用一個監聽列表對象,來保存監聽對象。具體的監聽任務由監聽對象負責。為什麼要用監聽列表對象來管理監聽對象呢?是因為,一台伺服器可能有多個網卡,針對每個網卡idTCPServer都可以建立一個監聽對象,負責監聽每個網卡收到的客戶端的請求,這樣的話,就會有多個監聽對象需要統一進行管理。當然,這取決於你設置idTCPServer使用幾塊網蔽衡卡,局雀下文會繼續說明。
接下來,還要認識兩個新的對象:
3.Bindings,下文稱之為網卡綁定集合對象,類型為TIdSocketHandles。這是一個集合對象,集合元素為網卡綁定對象。同時,這個對象被idTCPServer公布為Bindings屬性,用戶在設計期就可以對這個對象進行設置,下圖為設置idTCPServer的Bindings屬性的窗口。通過這個窗口,可以看到,可以為idTCPServer設置多個IP與埠,同時可以指定IP的版本,是IPv4,還是IPv6。通過這個窗口提供的信息,可以理解為Server定義一個或多個Binding對象,即網卡綁定對象。
❷ 怎樣用ganglia監控windows伺服器
Ganglia 監控軟體主要是用來監控系統性能的軟體,如:cpu 、mem、硬碟利用率, I/O負載、網路流量情況等,通過曲線很容易見到每個節點的工作狀態,對合理調整、分配系激兆統資源,提高系統整體性能起到重要作用。支持瀏覽器方式訪問,但 不能監控節點硬體技術指標ganglia 是分喊鉛豎布式的監控系統,有兩個Daemon, 分別是:客戶端Ganglia Monitoring Daemon (gmond)
和服務端Ganglia Meta Daemon (gmetad),還有Ganglia php Web Frontend(基於web的動態訪問方式)組成。是一個linux下圖形化監控系統運行性能的軟體,界面美觀、豐富,功能強大。RRDtool是系統 存放和顯示time-series (即網路帶寬、溫度、人數、伺服器負載等) 。並且它提出有用的圖表由處理數據強制執行有些數據密度。
一、安裝RRDTool
gmetad需要先安裝RRDTool,安裝路徑:/usr/local/rrdtool
rrdtool安裝需要下面的庫文件,如果沒有請進行安裝。
pkgconfig安裝
./configure --prefix=/usr/local/pkgconfig CFLAGS="-O3 -fPIC"
zlib安裝
./configure --prefix=/usr/local/zlib CFLAGS="-O3 -fPIC" --shared
libpng安裝
env CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng
freetype安裝
./configure --prefix=/usr/local/freetype CFLAGS="-O3 -fPIC"
LibXML2安裝
./configure --prefix=/usr/local/libxml2 CFLAGS="-O3 -fPIC"
fontconfig安裝
fontconfig-2.4.2.tar.gz
./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config
Pixman安裝
./configure --prefix=/usr/local/pixman CFLAGS="-O3 -fPIC"
Cairo安裝
./configure --prefix=$INSTALL_DIR --enable-xlib=no --enable-xlib-xrender=no --enable-win32=no CFLAGS="-O3 -fPIC"
Glib安裝
glib-2.20.1.tar.bz2
./configure --prefix=/usr/local/glib CFLAGS="-O3 -fPIC"
pango安裝
pango-1.21.1.tar.bz2
需要PKG_CONFIG_PATH,就的指定相鄭大應的路徑
PKG_CONFIG_PATH=/usr/local/cairo/lib/pkgconfig:/usr/local/glib/lib/pkgconfig:/usr/local/pixman/lib/pkgconfig:/usr/local/freetype/lib/pkgconfig:/usr/local/fontconfig/lib/pkgconfig
export PKG_CONFIG_PATH
然後執行
./configure --prefix=/usr/local/pango --without-x
rrdtool安裝
需要PKG_CONFIG_PATH,就的指定相應的路徑
PKG_CONFIG_PATH=/usr/local/cairo/lib/pkgconfig:/usr/local/glib/lib/pkgconfig:/usr/local/pixman/lib/pkgconfig:/usr/local/freetype/lib/pkgconfig:/usr/local/fontconfig/lib/pkgconfig:/usr/local/pango/lib/pkgconfig
export PKG_CONFIG_PATH
./configure --prefix=/usr/local/rrdtool --disable-tcl --disable-python
二、安裝所需軟體,如果系統沒有請您先下載安裝.如果有軟體已安裝可以略過
apr
apr-util
http://apr.apache.org/
confuse
http://bzero.se/confuse/
expat
http://sourceforge.net/project/showfiles.php?group_id=10127
python
http://www.python.org/download/linux/
rrdtool
http://oss.oetiker.ch/rrdtool/
ganglia
http://ganglia.info
第二步:安裝所下載的軟體,
*1)安裝expat-2.0.1.tar.gz 大多數Linux 發行版在默認安裝的情況下就已經提供了
tar zxvf expat-2.0.1.tar.gz
cd expat
./configure --prefix=/usr/local/expat
make
make install
2)安裝apr-1.3.3.tar.gz
tar zxvf apr-1.3.3.tar.gz
cd apr-1.3.3
./configure --prefix=/usr/local/apr
make
make install
3)安裝apr-util-1.3.4.tar.gz
tar zxvf apr-util-1.3.4.tar.gz
cd apr-util-1.3.4
./configure --with-apr=/usr/local/apr
make
make install
如果系統沒有自帶expat,您安裝上面方法安裝了expat軟體,./configure後要加入--with-
expat=/usr/local/expat路徑
將/apr/include/apr-1/*拷貝到apr/include/目錄,因為ganglia安裝gmetad時默認會
去/usr/local/apr/include下尋找apr的庫文件
cp /usr/local/apr/include/apr-1/* /usr/local/apr/include/。
4)安裝confuse-2.6
tar zxvf confuse-2.6.tar.gz
cd confuse-2.6
./configure --prefix=/usr/local/confuse
make
make install
5)安裝rrdtool-1.3.4.tar.gz
tar zxvf rrdtool-1.3.4.tar.gz
cd rrdtool-1.3.4
./configure --prefix=/usr/local/rrdtool
make
make install
*6)安裝python-2.6.tgz 大多數Linux 發行版在默認安裝的情況下就已經提供了Python
tar zxvf python-2.6.tgz
cd python-2.6
./configure --prefix=/usr/local/python2.6
make
make install
二 安裝配置ganglig
1、安裝伺服器端gmetad
tar xvzf ganglia-3.1.2
2.tar.gz
cd ganglia-3.1.2
./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat --with-libconfuse=/usr/local/confuse --with-libpython=/usr/lib --with-gmetad --enable-gexec --enable-status --with-python=/usr/lib/python2.2
make
make install
註: 關於--with-librrd、--with-libapr、 --with-libexpat、 --with-libconfuse、 --with-libpython,ganglia安裝所需要的庫文件,要依據實際庫文件路徑設置,就是要依照您安裝這些軟體的路徑。如果在安裝這些軟體 時並未指定安裝路徑,一般ganglia安裝時就不需要指定--with-libexpat、 --with-libconfuse。其它的還是需要指的,因為ganglia默認安裝找不到它們的。
2、伺服器端gmetad設置
a、為了保證在開始時啟動,需要將gmetad.init文件拷貝到 /etc/rc.d/init.d/
Your_prompt> cd ganglia-3.1.2/gmetad
Your_prompt> cp gmetad.init /etc/rc.d/init.d/gmetad
將配置文件拷貝到/etc/ganglia目錄下
Your_prompt>mkdir -p /etc/ganglia
Your_prompt> cp gmetad.conf /etc/ganglia/gmetad.conf
b、Add GMETAD to the list of programs at startup
Your_prompt> chkconfig --add gmetad
Your_prompt> chkconfig --list gmetad
GMETAD 0:ff 1:ff 2:n 3:n 4:n 5:n 6:ff
建立rrds目錄並修改許可權(需與gmetad.conf中的數據存放路徑保持一致,這里採用gmetad默認的存放路徑)
Your_prompt> mkdir -p /var/lib/ganglia/rrds
Your_prompt>chown -R nobody /var/lib/ganglia/rrds
c、啟動gmetad
Your_prompt>service gmetad start
Starting GANGLIA gmetad: [ OK ]
d.Your_prompt>telnet localhost 8651 | grep 「hostname」
就可以得到監控的各個主機的狀態。
3、gmetad.conf的配置
# data_source "another source" 1.3.4.7:8655 1.3.4.8
data_source "SERVER" 10 node1:埠號 node2:埠號
data_source是最重要的參量,在GMOND的Cluser name配置必須與data_source的相同,這個參量被設
置為群的名字,被監測以便能監測那群狀態。如果有二個或更多監測對象,當有一對象不能被監測,
將讀取data_source 配置的下一個對象。埠號可以根據您自己的要求任意設置,這樣可以起到一定
的安全作用,防止其它的gmetad訪問到你的客戶機數據。
data_source後面如果添加的都是ip 話,效果是:有二個或更多監測對象,當有一對象不能被監測, 才
會將讀取data_source 配置的下一個對象。
所以永遠是你的第一個有圖象
如果這樣配置可以實現分組問題。下面是一個簡單的例子
一、先單獨設置數據源,這時客戶端不需要配置
data_source "A" 1.1.1.1
data_source "B" 1.1.1.2
data_source "C" 1.1.2.1
二、我們需要將這三個監測對象添加到同一數據源組,組名為all
1、需要配置A、B、C的客戶端配置 name = "all"
2、在服務端添加要分配的數據源組
data_source "all" A B C (這里也可以包含一個ip)
# The name of this Grid. All the data sources above will be wrapped in a GRID
# tag with this name.
# default: Unspecified
gridname "Network-status"#在web上顯示GRID的名字,自己可以隨意設置
# List of machines this gmetad will share XML with. Localhost
# is always trusted.
# default: There is no default value
# trusted_hosts 127.0.0.1 169.229.50.165 my.gmetad.org #可以設置多台gmetad的XML數據共享,
這樣您可以對不同網域設置多台gmetad,由中央gmetad收集XML數據顯示在web上。
#設置用戶的訪問,自己可以根據需要進行修改
# If you don't want gmetad to setuid then set this to off
# default: on #默認需要驗證用戶
# setuid off
#User gmetad will setuid to (defaults to "nobody")
# default: "nobody" #默認用戶為nobody
# setuid_username "認證用戶"
#數據存放路徑為默認/var/lib/ganglia/rrds,在這里可以看到監測群及群內的機器.
# Where gmetad stores its round-robin databases
# default: "/var/lib/ganglia/rrds"
# rrd_rootdir "/some/other/place"
2) client端安裝和配置
a.在linux客戶機上安裝ganglia,需要apr、apr-util、confuse
apr、apr-util、confuse安裝
安裝apr-1.3.3.tar.gz
tar zxvf apr-1.3.3.tar.gz
cd apr-1.3.3
./configure --prefix=/usr/local/apr
make
make install
安裝apr-util-1.3.4.tar.gz
tar zxvf apr-util-1.3.4.tar.gz
cd apr-util-1.3.4
./configure --with-apr=/usr/local/apr
make
make install
將/apr/include/apr-1/*拷貝到apr/include/目錄,因為ganglia安裝gmond時默認會去/usr/local/apr/include下尋找apr的庫文件
cp /usr/local/apr/include/apr-1/* /usr/local/apr/include/。
安裝confuse-2.6
tar zxvf confuse-2.6.tar.gz
cd confuse-2.6
./configure --prefix=/usr/local/confuse
make
make install
安裝ganglia client端
Your_prompt>tar -zxvf ganglia-3.1.2.tar.gz
Your_prompt>cd ganglia-3.1.2
Your_prompt>./configure --prefix=/usr/local/ganglia --with-libapr=/usr/local/apr --with-libconfuse=/usr/local/confuse --enable-gexec --with-pythoy=/usr/local/python/bin/python
Your_prompt>make
Your_prompt>make install
Your_prompt>cd gmond
Your_prompt>gmond –t > /etc/ganglia/gmond.conf
Your_prompt>cp gmond.init /etc/rc.d/init.d/gmond
Your_prompt> chkconfig --add gmond
Your_prompt> chkconfig --list gmond
gmond 0:ff 1:ff 2:n 3:n 4:n 5:n 6:ff
Your_prompt>service gmond start
Starting GANGLIA gmond: [ OK ]
Your_prompt>telnet localhost 8649 就可以獲取機群內運行gmond的主機的信息
b.在windows客戶機上安裝ganglia
安裝ganglia-3.0.0-setup,解壓ganglia-3.1.1-bin.zip,然後將解壓ganglia-3.1.1-bin,將裡面全部
文件拷貝到ganglia目錄gmond下,執行一下gmond.bat。
c.配置gmond.conf
Linux: vi /etc/ganglia/gmond.conf
Windows:開始菜單-程序-ganglia- Configure Ganglia Monitoring Service-gmond.conf
#可修改來驗證可讀取數據的用戶,也可以不做修改。
setuid =
globals {
daemonize = yes
setuid = yes #windows版默認值為no,linux版默認值為yes。如需要驗證用戶windows版需要修改為yes
user = nobody #默認用戶為任意。也可以通過修改來驗證可讀取數據的用戶 ,但此用戶必須為本機用戶。
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
host_dmax = 0 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
send_metadata_interval = 0
}
#根據您在gmetad設置的組名稱修改name監控組名稱,其它項可以自定義。
/* If a cluster attribute is specified, then all gmond hosts are wrapped inside
* of a <CLUSTER> tag. If you do not specify a cluster tag, then all <HOSTS> will
* NOT be wrapped inside of a <CLUSTER> tag. */
cluster {
name = "unspecified"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified"
}
#埠port為gmetad設置的埠號
/* Feel free to specify as many udp_send_channels as you like. Gmond
used to only support having a single channel */
udp_send_channel {
mcast_join = 239.2.11.71
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
mcast_join = 239.2.11.71
port = 8649
}
/* You can specify as many tcp_accept_channels as you like to share
an xml description of the state of the cluster */
tcp_accept_channel {
port = 8649
#ACCESS CONTROL #訪問控制
#The udp_recv_channel and tcp_accept_channel directives can contain an Access Control
List (ACL). This ACL allows you to specify exactly which hosts gmond process data from
udp_recv_channel #udp接受信道
#在裡面添加訪問控制命令
acl {
default = "allow"
access {
ip = x.x.x.x
mask = netmask
action = "deny"
}
}
或
tcp_accept_channel
#在裡面添加訪問控制命令
acl {
default = "deny"
access {
ip = x.x.x.x
mask = netmask
action = "allow"
}
}
配置完成後重新啟動gmond
service gmond restart
多ip的時候,多播有問題
/sbin/route add -host 239.2.11.71 dev eth0 #把eth0換成你想收集信息的interface就好了
***************
安裝後不顯示圖形
如果你在RHEL 4以上版本安裝Ganglia那麼就是SELinux在作怪,可以關閉SELinux
或者執行以下步驟:
vi /etc/selinux/targeted/contexts/files/file_contexts
添加:
/var/lib/ganglia/rrds(/.*)? system_u:bject_r:httpd_sys_script_exec_t
保存退出
執行:setfiles /etc/selinux/targeted/contexts/files/file_contexts /var/lib/ganglia/rrds/
如果還有問題
vi /$web'DocumentRoot/web/conf.php
將define("RRDTOOL", "/usr/local/bin/rrdtool"); 修改成自己的rrdtool路徑
好久沒有寫什麼東西了,最近有時間對用ganglia的應用做了一些研究,以前發的關於用ganglia監控伺服器狀態寫簡單,這個就算它的補充吧。內容上不正確的地方,還需要大家指正,希望能完善對ganglia的研究與應用。
❸ 怎樣監測一個windows伺服器
Windows伺服器的監控方式有三種,分別為Agent監測方式、SNMP監測方式和WMI監測方式,下面分別對每一種監測方式進行介紹:
Agent監測方式
使用Agent方式來採集數據,首先需要在被監測伺服器上安裝Windows Agent代理程序,安裝過程請參考安裝Agent代理。
1、登錄CreCloud雲網管平台後,點擊系統右上方的【監測】按鈕,再點擊左下方的【設備管理】。右鍵點擊【設備管理】樹下的【設備列表】,彈出菜單。
(也可在設備列表的空白處【圖標視圖】和【詳細信息】中右鍵選擇【增加管理對象】或在快速工具欄中點擊【增加管理對象】,下同)
2、選擇【增加管理對象】,彈出【添加管理對象】對話框,在【全部設備】下看到「AgentWindows」。
選中上圖中的【AgentWindows】,點擊【確定】,彈出【AgentWindows】對話框,如下圖所示(也可左鍵雙擊【AgentWindows】彈出下面對話框)。
3、在「基本設置」欄下進行設置:
Windows伺服器地址:輸入被監測的伺服器的IP地址
Agent埠號:Agent埠,默認為2198
標題:填寫顯示的標題,可以自己定義
是否禁止:禁止則不進行監測
監測伺服器:默認即可
4、在「高級設置」欄可以對該管理對象進行詳細描述以及設置依靠條件,如下圖:
依靠:從下拉列表中選擇要依靠的監測點,可以設置多個監測點依靠。
描述:填寫對該設備的簡單描述,可以不填寫。
5、「基本設置」和「高級設置」填寫完畢,點擊【確定】即可,彈出顯示正在獲取管理對象屬性提示框。如果獲取正常,就會彈出【配置監測點】對話框。
勾選要監測的選項後,點擊右邊的【確定】即可,Agent監測方式添加完成。添加完成後,在【設備管理】的樹下和設備列表的圖標視圖中都會有添加的設備顯示。
SNMP監測方式
注意:如果採用SNMP方式監控,請檢查遠程機器的SNMP協議是否打開 。
1、登錄CreCloud雲網管平台後,點擊系統右上方的【監測】按鈕。
再點擊左下方的【設備管理】,如下圖所示:
2、右鍵點擊【設備管理】樹下的【設備列表】,彈出菜單,如下圖所示:
3、選擇【增加管理對象】,彈出【添加管理對象】對話框,在【全部設備】下選擇設備類型為「SNMP Windows」,點擊【確定】,如下圖所示:
4、選擇「SNMP Windows」,點擊【確定】後,彈出如下圖所示對話框:
5、「基本設置」選項卡:
Windows伺服器IP:填寫被監測伺服器的IP地址
SNMP埠號:填寫SNMP的埠號
可讀共同體名稱:填寫SNMP的可讀共同體名稱
標題:填寫顯示的標題
監測伺服器:默認即可
6、「高級設置」選項卡:
該選項卡中的設置和Agent中的設置相同。
點擊【確定】後,SNMP Windows的監測方式添加完成。添加完成後在設備管理中設備列表下和右側【設備列表】的圖標視圖中都會有該設備。
WMI監測方式
注意:如果用WMI方式,需要安裝WMI和服務
1、用WMI方式監測,需要將CreCloud Task Server 服務改為用管理員用戶啟動。
CreCloud Task Server 服務右鍵「屬性」,選擇「登錄」選項卡
登錄帳戶選擇「此帳戶」,點擊「瀏覽」按鈕,彈出「選擇用戶」窗口
點擊「高級」按鈕後,點擊「一般性查詢」右側的「立即查找」按鈕,在下方查詢結果中選擇「Administartor」用戶後確定
返回到屬性窗口,點擊確認,並重啟CreCloud Task Server服務
2、登錄CreCloud雲網管平台後,點擊系統右上方的【監測】按鈕。
再點擊左下方的【設備管理】,如下圖所示:
3、右鍵點擊【設備管理】樹下的【設備列表】,彈出菜單,如下圖所示:
4、選擇【增加管理對象】,彈出【添加管理對象】對話框,在【全部設備】下選擇設備類型為「WMI Windows」,點擊【確定】,如下圖所示:
點擊【確定】後,彈出如下圖對話框:
5、「基本設置」選項卡
Windows伺服器IP:填寫被監測的伺服器的IP地址
登錄名:填寫被監測的伺服器的系統管理員名稱
❹ oracle如何配置監聽
一、監聽器(LISTENER)
監聽器是Oracle基於伺服器端的一種網路服務,主要用於監聽客戶端向資料庫伺服器端提出的連接請求。既然是基於伺服器端的服務,那麼它也只存在於資料庫伺服器端,進行監聽器的設置也是在資料庫伺服器端完成的。
二、本地服務名(Tnsname)
Oracle客戶端與伺服器端的連接是通過客戶端發出連接請求,由伺服器端監聽器對客戶端連接請求進行合法檢查,如果連接請求有效,則進行連接,否則拒絕該連接。
本地服務名是Oracle客戶端網路配置的一種,另外還有Oracle名字伺服器(Oracle Names Server)等。Oracle常用的客戶端配置就是採用的本地服務名,本文中介紹的也主要是基於本地服務名的配置。
三、Oracle網路連接配置方法
配置Oracle伺服器端與客戶端都可以在其自帶的圖形化Oracle網路管理器(Oracle Net Manager)里完成(強烈建議在這個圖形化的工具下完成Oracle服務端或客戶端的配置)。在Windows下,點擊「開始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager」啟動Oracle網路管理器工具,在Linux/Unix下,利用netmgr命令來啟動圖形化Oracle網路管理器,如:
$ netmgr
Windows下啟動Net Manager圖形窗口如下圖示:
樹形目錄下的服務命名可以通過編輯菜單里的重命名菜單更改成任意合法字元組成的服務名稱,注意服務名稱前不能有空格字元,否則可能無法連接資料庫伺服器。
3、連接資料庫伺服器
(1)啟動伺服器端監聽器與資料庫服務
Linux/Unix下,啟動監聽器:
$ lsnrctl start
關閉監聽器:
$ lsnrctl stop
查看監聽狀態:
$ lsnrctl status
啟動資料庫:
$ sqlplus /nolog
SQL>conn sys@myoracle as sysdba --這里的myoracle是前面配置的客戶端本地服務名
或
SQL>conn / as sysdba
SQL>startup
Windows下,啟動監聽器:
C:lsnrctl start
啟動Oracle實例服務:
C:oradim ?a href="http://game.pchome.net/pcgame" class="none" title="cs" rel="external">cstartup –sid myoracle
關閉Oracle實例服務:
C:oradim –shutdown –sid myoracle
以上服務必須同時啟動,客戶端才能連接資料庫。由於默認配置的監聽器名稱是Listener,上述命令可以正常啟動監聽器,如果監聽器名稱是其它名稱,如aListener,則需要用下列方式才能啟動:
Linux/Unix下:
$ lsnrctl start aListener
Windows下:
C:lsnrctl start aListener
(2)測試連接資料庫伺服器
測試的方法多種多樣,可以在上面配置本地服務名時進行測試,也可以是第三方客戶端工具,如PL/SQL Developer,最方便的是用Oracle自帶的sqlplus工具,以下利用sqlplus進行測試:
C:sqlplus /nolog
SQL>conn zgh@myoracle
已連接。
❺ zookeeper怎麼監聽的伺服器
Zookeeper 作為一個分布式的服務框架,主要用來解決分布式集群中應用系統的一致性問題,它能提供基於類似於文件系統的目錄節點樹方式的數據存儲,但是 Zookeeper 並不是用來專門存儲數據的,它的作用主要是用來維護和監控你存儲的數據的狀態變化。通過監控這些數據狀態的變化,從而可以達到基於數據的集群管理,後面將會詳細介紹 Zookeeper 能夠解決的一些典型問題,這里先介紹一下,Zookeeper 的操作介面和簡單殲纖使用示例。
常用介面列表
客戶端要連接 Zookeeper 伺服器可以通過創建 org.apache.zookeeper. ZooKeeper 的一個實例對象,然後調用這個類提好伏供的介面來和伺服器交互。
前面說了 ZooKeeper 主要是用來維護和監控一個目錄節點樹中存儲的數據的狀態,所有我們能夠操作 ZooKeeper 的也和操作目錄節點樹大體一樣,如創建一個目錄節點,給某個目錄節點設置數據,獲取某個目錄節點的所有子目錄節點,給某個目錄節點設友改攜置許可權和監控這個目錄節點的狀態變化。
❻ 如何查看遠程伺服器的監聽服務監聽了哪些資料庫服務
lsnrctl status <伺服器地址 如: lsnrctl status 192.168.0.126 如果遠程伺服器監聽的是其它局喊埠,那需要在本機的對遠程伺服器監聽的連接配置,具體桐頌野做法是有$ORACLE_HOME/network/admin/listener.ora文件中增加一個監聽器,監聽器的地址是遠程伺服器址,埠是遠程的埠,如: LISTENER126 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.126)(PORT = 1522)))表示連接到192.168.0.126的1522監聽埠。 然後用lsnrctl status LISTENER126 就可顯示遠程伺服器的監聽狀態了櫻歷。 同理,可以用這種方法啟動和停止遠程伺服器的監聽。
❼ android socket用TCP方式client端怎麼監聽伺服器發送來的數據
伺服器端就是需要一個循環不停的接收,這樣才能保證伺服器能一直監聽客戶端傳過來的數據
你這是同步的,如果用非同步socket的話,BeginReceive裡面注冊了一個回調函數,在回調裡面再次調用BeginReceive就可以一直監聽了
❽ 易語言伺服器如何監聽客戶埠
可以考慮用java實現監聽客戶埠,參考例子如下:
packagetest;
importjava.io.ByteArrayOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.lang.reflect.Method;
importjava.net.DatagramPacket;
importjava.net.DatagramSocket;
importjava.net.InetAddress;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.net.SocketException;
importjava.util.HashMap;
importjava.util.LinkedList;
importjava.util.List;
importjava.util.Random;
/**
*該程序用的DatagramSocket,實現UDP的通訊
*@authorD'Addario
*
*/
publicclassTest{
privateintheadLen=12;//消息起點和終點的記錄例如classAclassB就是發往classA的消息,發送者是classB
privateRandomrandom;
privateStringserverIp;
privateintserverPort;
privateHashMap<String,Classes>map;
{
serverIp="127.0.0.1";
serverPort=9999;
random=newRandom(System.currentTimeMillis());
map=newHashMap<String,Classes>();
ClassesA=Test.this.newClasses();
A.ip="127.0.0.1";
A.name="我是A";
A.port=10000;
map.put("classA",A);
ClassesB=Test.this.newClasses();
B.ip="127.0.0.1";
B.name="我是B";
B.port=10001;
map.put("classB",B);
}
publicstaticvoidmain(String[]a)throwsException{
Testtest=newTest();
newThread(test.newServer()).start();
Clientclient1=test.newClient();
client1.mine="classA";
client1.remote="classB";
newThread(client1).start();
Clientclient2=test.newClient();
client2.mine="classB";
client2.remote="classA";
newThread(client2).start();
}
/**
*成員用於記錄每個成員的個性信息
*@authorD'Addario
*
*/
privateclassClasses{
privateStringname;//成員姓名
privateStringip;//成員ip
privateintport;//成員的clientserver監聽埠
}
/**
*server用於轉發兩個client之間消息的類
*@authorD'Addario
*
*/
{
publicvoidrun(){
//TODOAuto-generatedmethodstub
booleanstart=false;
DatagramSocketsocket=null;
try{
socket=newDatagramSocket(serverPort);
start=true;
}catch(SocketExceptione1){
e1.printStackTrace();
}
while(start)
{
try{
byte[]data=newbyte[1024];
DatagramPacketpacket=newDatagramPacket(data,data.length);
socket.receive(packet);
intlen=packet.getLength();
//System.out.println("receviedata:"+newString(data,0,len));
if(len<headLen)
thrownewIOException("無效數據");
Stringid=newString(data,0,headLen/2);//獲取發往對象的ID
Stringid2=newString(data,headLen/2,headLen/2);
System.out.println("receivefrom"+id2+",sendto"+id+",msg["+newString(data,headLen,len-headLen)+"]");
Classesone=map.get(id.trim());
DatagramPacketretPack=newDatagramPacket(data,0,len,InetAddress.getByName(one.ip),one.port);
socket.send(retPack);
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
/**
*Client客戶端類,用於客戶端消息的發送
*@authorD'Addario
*
*/
{
privateStringmine;
privateStringremote;
publicvoidrun(){
//TODOAuto-generatedmethodstub
Stringmsg=remote+mine;
DatagramSocketsocket=null;
try{
socket=newDatagramSocket(map.get(mine).port);
ClientServersrv=newClientServer();
srv.setSocket(socket);
newThread(srv).start();
}catch(SocketExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
byte[]data;
while(true)
{
StringsendStr=msg+"給我"+random.nextInt(5000)+"分吧";
data=sendStr.getBytes();
try{
DatagramPacketretPack=newDatagramPacket(data,0,data.length,InetAddress.getByName(serverIp),serverPort);
socket.send(retPack);
Thread.sleep(random.nextInt(5)*1000);
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
/**
*客戶端server用於監聽伺服器的消息
*@authorD'Addario
*
*/
{
DatagramSocketsocket;
publicDatagramSocketgetSocket(){
returnsocket;
}
publicvoidsetSocket(DatagramSocketsocket){
this.socket=socket;
}
publicvoidrun(){
byte[]data=newbyte[1024];
DatagramPacketpacket=newDatagramPacket(data,data.length);
while(true){
try{
socket.receive(packet);
intlen=packet.getLength();
if(len<headLen)
thrownewIOException("無效數據");
System.out.println("Igetthemessage:"+Thread.currentThread().getId()+"-->["+newString(data,0,len)+"]");
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}}
}
}
}
❾ 怎麼才能實現隨時隨地監測伺服器運行情況
針對每一個問答都本著絕不大膽胡說,只管小心求證的態度,瘋評科技來解答您的提問。
想要隨時隨地監測伺服器的運行情況,需要使用專業的監控軟體。下面具體來說一說。
監控軟體的功能要求
首先理清楚自己的需求,需要監控什麼指標,監控方式,能否預警,歷史數據是否保存,是否需要圖形,只有對這些進行了充分了解,才能進行目標選定。
常用監控指標如下:
設備的運行狀態有cpu使用情況,內存使用情況,硬碟使用情況,設備溫度,運行時間等。
網路運行狀態有流量,網卡狀態,埠狀態,路由條目數,路由協議狀態等。
其它有ups運行狀態,電量,光纖功率,電源狀態等。
監控方式有snmp,,wmi,agent等。
預警需求有簡訊,電話,郵件,微信等。
相信經過這一系列的了解,對監控軟體就走了選型了,這里我自己管理的網路用的流量監控軟體是cacti和zabbix,其它狀態監控用的是PRTG,還有設備廠商自帶的監控軟體。
監控軟體的安裝部署
在選定了監控軟體後就是進行安裝部署了,選畢碧用本宴槐地伺服器還是雲伺服器都是可以的,需要伺服器保持穩定,能夠存儲一定量的監控數據。
有的監控軟體安裝比較簡單,比如Windows環境下的,涉及到資料庫安裝的就復雜一些,相比較而言,Linux下的監控軟體性能更好,更穩定,當然非專業人員部署起來也比較困難。
監控軟體安裝完成後,需要進行必要的配置,包括監控目標的添加,參數調整,閾值設置,預警方式等。
在設置完整後,需要對所有配置保存並備份,並做定期備份計劃,以確保數據安全。
隨時隨監測伺服器
經過手祥舉前面的准備,我們已經可以實現隨時隨地監測伺服器了。具體實施可以如下來做:
有web登錄功能的監控軟體直接在手機瀏覽器中訪問,並存入收藏夾,以被隨時登錄查看伺服器狀態。
有app客戶端的監控軟體則直接在手機上安裝app進行查看。
沒有web和app登錄方式的則手機需要有遠程軟體,進行遠程登錄查看。
通過上述所說,用手機即可以輕松實現隨時隨地監測伺服器的情況,當然有條件的,可以對監控軟體進行二次開發或者自己開發所需功能的監控軟體。
❿ java如何實現在伺服器開一個監聽,如果客戶
1. className 此Valve 實現的Java 類名
2. debug 調試等級,0 表示不調試,而正數則表示不同程度的調試等級,數字愈高,顯示的調試信息就愈詳細。默認值是0
3. escapeQuotes 在執行請求前,決定此Valve 是否要轉義請求消息中的任何引號(包括雙及單引號)。默認值為false
4. escapeAngleBrackets 在執行請求前,決定此Valve 是否要轉義請求消息中的任何尖括弧。默認值為false
5. escapeJavaScript 決定此Valve是否要轉義請求消息中任何對JavaScript函數與對象的可能有危險的引用。默認值為false
6. allow 此Valve 允許的正則表示式清單,以逗號分隔 [可選]
7. deny 此Valve 禁止的正則表示式清單,以逗號分隔 [可選]