基礎監控伺服器資源的腳本
1. 如何使用PHP實時監控linux伺服器的cpu,內存,硬碟信息
1,Linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
其實應該通過Physical Processor ID來區分單核和雙核。而Physical Processor ID可以從cpuinfo或者dmesg中找到. flags 如果有 ht 說明支持超線程技術 判斷物理CPU的個數可以查看physical id 的值,相同則為同一個物理CPU
2,查看內存大小:
cat /proc/meminfo |grep MemTotal
3,其他一些可以查看詳細linux系統信息的命令和方法:
uname -a # 查看內核/操作系統/CPU信息的linux系統信息命令
head -n 1 /etc/issue # 查看操作系統版本,是數字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系統信息命令
hostname # 查看計算機名的linux系統信息命令
lspci -tv # 列出所有PCI設備
lsusb -tv # 列出所有USB設備的linux系統信息命令
lsmod # 列出載入的內核模塊
env # 查看環境變數資源
free -m # 查看內存使用量和交換區使用量
df -h # 查看各分區使用情況
-sh # 查看指定目錄的大小
grep MemTotal /proc/meminfo # 查看內存總量
grep MemFree /proc/meminfo # 查看空閑內存量
uptime # 查看系統運行時間、用戶數、負載
cat /proc/loadavg # 查看系統負載磁碟和分區
mount | column -t # 查看掛接的分區狀態
fdisk -l # 查看所有分區
swapon -s # 查看所有交換分區
hdparm -i /dev/hda # 查看磁碟參數(僅適用於IDE設備)
dmesg | grep IDE # 查看啟動時IDE設備檢測狀況網路
ifconfig # 查看所有網路介面的屬性
iptables -L # 查看防火牆設置
route -n # 查看路由表
netstat -lntp # 查看所有監聽埠
netstat -antp # 查看所有已經建立的連接
netstat -s # 查看網路統計信息進程
ps -ef # 查看所有進程
top # 實時顯示進程狀態用戶
w # 查看活動用戶
id # 查看指定用戶信息
last # 查看用戶登錄日誌
cut -d: -f1 /etc/passwd # 查看系統所有用戶
cut -d: -f1 /etc/group # 查看系統所有組
crontab -l # 查看當前用戶的計劃任務服務
chkconfig –list # 列出所有系統服務
chkconfig –list | grep on # 列出所有啟動的系統服務程序
rpm -qa # 查看所有安裝的軟體包
cat /proc/cpuinfo :查看CPU相關參數的linux系統命令
cat /proc/partitions :查看linux硬碟和分區信息的系統信息命令
cat /proc/meminfo :查看linux系統內存信息的linux系統命令
cat /proc/version :查看版本,類似uname -r
cat /proc/ioports :查看設備io埠
cat /proc/interrupts :查看中斷
cat /proc/pci :查看pci設備的信息
cat /proc/swaps :查看所有swap分區的信息
2. zabbix 3.0.1怎麼配置腳本
配置方式:
1. 完成自定義監控腳本的編寫(windows或linux腳本)
腳本要求:(1)既然是監控,那必然要有輸出結果值(字元串,數字皆可)
(2)必須要求zabbix用戶有執行許可權,當然可以直接設置所有用戶都有執行許可權(chmod 777 腳本文件)
(3)若腳本需要傳入參數,按照參數傳入的順序,在腳本中可用$1-$9來引用傳入的參數
2 找到zabbix agent的配置文件zabbix_agentd.conf,修改如下兩個參數
UnsafeUserParameters=0 => UnsafeUserParameters=1並去掉前面的注釋符
UserParameter= => UserParameter=aaa.bbb[*], /usr/local/script/monitor.sh $1 $2 ...
說明:aaa.bbb[*] ---zabbix伺服器添加監控信息時需要用到的key值,
格式:aaa.bbb[*](例:system.file.size[*])
/usr/local/script/monitor.sh ----監控腳本絕對路徑
為了便於靈活監控,有時腳本需要傳入參數,此參數可從zabbix伺服器端傳入,所有參數按順序分別從$1-$9表示
註:(1)若無需傳入參數,則紅色部分可省略
(2)該自定義腳本可由zabbix伺服器控制收集數據的頻率(如:每30s運行一次),無需再添加計劃任務
(3)以上參數請根據實際情況填寫,並注意去除參數前注釋符(#)
(4)注意在key值和後面的腳本之間有個逗號隔開
至此,自定義監控腳本zabbix agent端配置結束
3. 測試
測試命令: /usr/local/bin/zabbix_agentd -t key[參數]
示例:/usr/local/bin/zabbix_agentd -t system.file.size[/etc/a.txt,abc,...]
4. 監控腳本舉例:
腳本名稱:/usr/local/script/monitor.sh
腳本內容:echo `date +"%F %T"`
腳本要求:必須在控制台輸出值,該值將作為返回值返回給zabbix伺服器端
3. 請問監控Linux伺服器磁碟容量的腳本怎麼寫
看看下面這個腳本(注意要用英文的標點符號):
#!/bin/bash
partion_list=( 'df -h | awk 『NF>3&&NR>1{sub(/%/,」」,$(NF-1));print $NF,$(NF-1)}』' )
critical=90
notification_email()
{
emailuser='[email protected]' 「發送郵件地址」
emailpasswd='password' 「成功開啟POP3/SMTP服務,在第三方客戶端登錄時,密碼框請輸入的授權碼」
emailsmtp='smtp.qq.com'
sendto='[email protected]' 「接收郵箱地址」
title='Disk Space Alarm' 「郵件標題」
/usr/local/bin/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $emailmessage
}
crit_info=」」
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
if [ 「${partition_list[ ((i+1)) ]}」 -lt 「$critical」 ];then
echo 「ok! ${partition_list[i]} used ${partition_list[ ((i+1)) ]}%」
else
if [ 「${partition_list[ ((i+1)) ]}」 -gt 「$critical」 ];then
crit_info=$crit_info」Warning!!! ${partition_list[i]}
used ${partition_list[ ((i+1) ] }%\n」
fi
fi
done
if [ 「$crit_info」 != 」」 ];then
echo -e $crit_info | notification_email
fi
上面腳本的功能是監控每個磁碟分區,當磁碟分區使用空間超過90%時,就通過sendEmail來發送郵件告警。sendEmail是個開源工具,可以從http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz下載;
解壓後把sendEmail拷貝到/usr/local/bin下即可。
4. 如何利用shell腳本監控伺服器溫度
統:centos 5.5 1.監控伺服器狀態腳本內容:
01 #!/bin/bash 02
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
03
04 cpu_num=`grep -c 'model name' /proc/cpuinfo` 05
06 load_15=`uptime | awk '{print $NF}'` 07 08
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`
09
10 average_int=`echo $average_load | cut -f 1 -d "."` 11
12 load_warn=0.70 13
14 if (($average_int > 0)); then
15 echo "$IP伺服器15分鍾的系統平均負載為$average_load,超過警
戒值1.0,請立即處理!!!" | mailx -s "$IP 伺服器系統負載嚴重告警!!!
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
" [email protected] 16 else 17
18 load_now=`expr $average_load \> $load_warn` 19
20 if (($load_now == 1)); then
21 echo "$IP伺服器15分鍾的系統平均負載達到 $average_load,超過警戒值0.70,請及時處理。" | mailx -s "$IP 伺服器系統負載告警
" [email protected] 22 fi 23 24 fi 25
26 cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` 27
28 if (($cpu_idle < 20)); then
29
echo "$IP伺服器cpu剩餘$cpu_idle%,使用率已經超過80%,請及時
處理。" | mailx -s"$IP 伺服器CPU告警" [email protected]
30 fi 31
32 swap_total=`free -m | grep Swap | awk '{print $2}'` 33
猜你喜歡租賃一體電腦dell電腦特約維修蘋果肌注射後休息蘋果店怎麼分期付款蘋果6s64g分期付款蘋果6s零首付分期付款加固筆記本品牌孩子 培訓 電腦手機微店 app蘋果6s5.5分期付款
34 swap_free=`free -m | grep Swap | awk '{print $4}'` 35
36 swap_used=`free -m | grep Swap | awk '{print $3}'` 37
38 if (($swap_used != 0)); then
39 swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc` 40
41 swap_warn=0.20 42
43 swap_now=`expr $swap_per \> $swap_warn` 44
45 if (($swap_now == 0)); then
46 echo "$IP伺服器swap交換分區只剩下 $swap_free M 未使用,剩餘不足20%,使用率已經超過80%,請及時處理。" | mailx -s "$IP 伺服器
內存告警" [email protected] 47 fi 48 49 fi 50
51
#disk_sda=`df -h | grep /dev/sda3 | awk '{print $5}' | cut -f 1 -d "%"`
52 disk_sda=`df -Ph |grep /dev/mapper/VolGroup00-LogVol00|awk '{print
5. 如何用shell腳本監控伺服器負載,cpu,內存,硬碟和登錄用戶數
試試檔廳這個方法:告襪Check if this entry is a directory or a file.
const size_t filenameLength = strlen(fileName);
if (fileName[filenameLength-1] == '行友隱/')
{
{
6. linux伺服器監控的幾個方法和命令
監控會降低性能的。同問filter、simls是什麼?沒用過。
當伺服器系統性能突然低於平均應有的情況,問題可能來自在執行的進程、內存的使用率、磁碟的性能和CPU 的壓力。在預算有限的時代,理解如何優化系統性能比以往任何時候都重要。要實現它的前提是,你必須充分了解自己的伺服器,從而找到真正的瓶頸所在。本文提供一些基礎的工具來辨別和處理一些性能問題。工作過程是:首先查看整個系統的狀態(伺服器整體)後是檢查特定的子系統(內存、處理器、IO等)。
一、系統負載監測
1.使用uptime命令
2.使用cron命令進行定時監測系統負載:
二、Unix進程運行的監測
1.使用ps命令
Unix系統提供了ps等察看進程信息的系統調用,通過結合使用這些系統調用,我們可以清晰地了解進程的運行狀態以及存活情況,從而採取相應的措施,來確保Unix系統的性能。它們是目前在Unix下最常見的進程狀況查看工具,是隨 Unix版本發行的,安裝好系統之後,用戶就可以使用。 這里以ps命令為例,ps命令是最基本同時也是非常強大的進程查看命令。利用它可以確定有哪些進程正在運行及運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等。ps命令可以監控後台進程的工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入/輸出設備進行通信的
2.使用進程監控工具
如果安裝了CDE環境,可以使用圖形界面進程等系統信息,使用方法是單擊「前面板」上「工具」子面板上的「查找進程」控制項。 顯示「進程管理器」主窗口。它立即對工作站進行采樣,並顯示所有當前進程的采樣。
三、內存使用情況監測
內存是Unix內核所管理的最重要的資源之一。內存管理系統是操作系統中最為重要的部分,因為系統的物理內存總是少於系統所需要的內存數量。虛擬內存就是為了克服這個矛盾而採用的策略。系統的虛擬內存通過在各個進程之間共享內存而使系統看起來有多於實際內存的內存容量。Unix支持虛擬內存, 就是使用磁碟作為RAM的擴展,使可用內存相應地有效擴大。核心把當前不用的內存塊存到硬碟,騰出內存給其他目的。當原來的內容又要使用時,再讀回內存。
7. 求一個linux伺服器巡檢腳本,50多台伺服器,結果要做成一個excel表格,每天手動開始執行即可!
你可以在每台伺服器上面放同一個腳本。
這個linux腳本加入cron,這個腳本每天定時把df -k free -m uptime 這三項的結果保存到文本文件裡面,比如uptime可以保存到uptime_20140112.txt,以此類推。
然後腳本把這些文件ftp到一個單獨的伺服器上面,比如192.168.1.100,這個伺服器可以是windows。
然後寫個程序讀當天或者幾天的txt文件,然後輸出到excel。可以用你熟悉的語言來寫,應該不難。
8. 怎樣使用loadrunner監控linux系統資源
1 准備工作
首先,監視Linux一定要有rstatd這個守護進程,有的Linux版本里也有可能是rpc.rstatd這里只是名字不同而已,功能是一樣的
一般來說LINUX需要下載一個包才有這個服務,包名字是rpc.rstatd-4.0.1.tar.gz. 這是一個源碼,需要編譯,
下載並安裝rstatd
tar -ivh rpc.rstatd-4.0.1.tar.gz
./configure —配置
make —編譯
make install —安裝
rpc.rstatd —啟動rstatd進程
配置rstatd 目標守護進程是xinetd,它的主配置文件是/etc/xinetd.conf 裡面內容是
只有基本信息
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
裡面內容的意思在這里就不說了!網上有具體解釋,
我們這里需要修改的是/etc/xinetd.d/下的三個conf文件 rlogin ,rsh,rexec 這三個配置文件,
打這三個文件里的disable = yes都改成 disable = no ( disabled 用在默認的 {} 中 禁止服務)
或是把# default: off都設置成 on 這個的意思就是在xinetd啟動的時候默認都啟動上面的三個服務!
(由於貌似用ps ax不能看到rlogin ,rsh ,rexec這三個進程是否開啟,所以使用default: on,因為rstatd和xinetd這二個服務是否啟動在ps ax里是看的到的)
然後你在保證Linux機器上的進程里有rstatd和xinetd這二個服務就可以用LR去監視了
幾點小的技巧:
檢查是否啟動: rsh server 監聽和TCP 是514。
# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到514在監聽說明rsh伺服器已經啟動。
檢查是否啟動: rstatd
輸入命令: rpcinfo -p
如果能看到
程序 版本 協議 埠
*** **** udp 741 rstatd
Average load:
Average number of processes simultaneously in Ready state ring the last minute
上一分鍾同時處於「就緒」狀態的平均進程數
Collision rate
Collisions per second detected on the Ethernet
每秒鍾在乙太網上檢測到的沖突數。
Context switches rate
Number of switches between processes or threads, per second
每秒鍾在進程或線程之間的切換次數。
CPU utilization
Percent of time that the CPU is utilized
CPU 的使用時間百分比。
Disk rate
Rate of disk transfers
磁碟傳輸速率。
Incoming packets error rate
Errors per second while receiving Ethernet packets
接收乙太網數據包時每秒鍾接收到的錯誤數。
Incoming packets rate
Incoming Ethernet packets per second
每秒鍾傳入的乙太網數據包數。
Interrupt rate
Number of device interrupts per second
每秒內的設備中斷數。
Outgoing packets errors rate
Errors per second while sending Ethernet packets
發送乙太網數據包時每秒鍾發送的錯誤數。
Outgoing packets rate
Outgoing Ethernet packets per second
每秒鍾傳出的乙太網數據包數。
Page-in rate
Number of pages read to physical memory, per second
指標表明的是每秒交換到物理內存中的頁面數。
Page-out rate
Number of pages written to pagefile(s) and removed from physical memory, per second
表示每秒從物理內存中移出或者寫入到頁面數。
Paging rate
Number of pages read to physical memory or written to pagefile(s), per second
每秒鍾讀入物理內存或寫入頁面文件中的頁數。
Swap-in rate
Number of processes being swapped
每秒交換到內存的進程數。
Swap-out rate
Number of processes being swapped
每秒從內存交換出來的進程數。
System mode CPU utilization
Percent of time that the CPU is utilized in system mode
在系統模式下使用 CPU 的時間百分比。
User mode CPU utilization
Percent of time CPU is utilized in user mode
在用戶模式下使用 CPU 的時間百分比。
一些常見的問題及處理方法:
1、在執行配置或安裝命令過程中出現「拒絕的許可權」的提示?
答:是由於文件的許可權引起的,應該給當前用戶所有文件的「777」許可權,即完全控制許可權。
2、安裝好後從LoadRunner中看不到信息,但是沒有報錯?
答:可能是返回的信息值比較小,所以在圖中幾乎看不到,例如:如果沒有運行程序的話,CPU的使用率接近於0,所以在監視圖中看不到變化。也有可能是采樣的頻率過大,可以在圖表中設置沒1 秒獲取一次信息,這樣界面就刷新的比較及時了。
3、監視一段時間後LoadRunner中提示有錯誤發生不能繼續監視到信息?
答:可能是由於CPU長時間處於高負荷狀態,而導致系統自動關閉了該服務。可以在LoadRunner中重新加一次計數器,並且設置取樣的時間稍長一點,就會避免這種情況。
4、以前用LoadRunner監視都是成功的,但是再次監視不到信息?
答:有可能是由於系統重新啟動,而沒有打開rstatd守護進程。可以手工重新打開一次,使用命令「rpc.rstatd」,另外可以使用「rpcinfo -p」命令來查看當前系統是否已經啟動了rstatd守護進程。
5、使用LR監視Linux窗口,經常丟失?
這是你圖形顯示時間設置問題,跟lr穩定不穩定沒關系,具體設置如下:
1.運行Controller
2.在"Unix Resources"圖形窗口中,點擊右鍵,選擇Configure選項
3.隨後彈出「Graph Configuration」窗口,在該窗口有一個選項「Graph Time(sec)」,默認顯示是60秒
這里共有4個選項:60秒,180秒,600秒,3600秒,whole scenario(整個場景運行都顯示圖形數據)
註:如果按照你疲勞測試動則十幾小時的情況來看,應該選擇whole scenario(整個場景運行都顯示圖形數據)
9. 如何在Loadrunner中監控伺服器資源使用情況
一 監控需要進行的配置:在LR控制台設置監控Windows伺服器的資源比較容易,直接添加Measurements即可。但是大多情況下面伺服器的操作系統是Linux或者Unix,這時想監控系統的資源使用情況就需要進行一些設置:1 由於LR是通過rpc rstatd進程獲得系統的性能數據,因此首先查看進程中是否存在該進程,或者能否通過運行 rpc rstatd啟動該進程,如果可以,恭喜你,你可以直接在LR的控制台添加Measurements;否則需要下載rstatd tar gz,下載地址: 安裝rstatd tar xvzf rstatd tar gz cd rpc rstatd configure prefix usr make sudo su mak