1. 如何監控linux空間
Linux系統中需要監控磁碟各分區的使用情況,避免由於各種突發情況,造成磁碟空間被消耗殆盡的情況,例如某個分區被Oracle的歸檔日誌耗盡,導致後續的日誌文件無法歸檔,這時ORACLE資料庫就會出現錯誤。監控磁碟空間的使用情況,其實有許多工具,例如Nagios等,其實最簡單的還是使用Shell腳本。下面就介紹一下如何通過Shell腳本和Crontab作業結合來實現對磁碟空間的監控、告警。
一般查看磁碟各分區的使用情況可以通過df命令來查看,網上有兩種獲取磁碟使用百分比的Shell腳本。
1:df -h | grep /dev | awk '{print $5}' | cut -f 1 -d "%"
2:df -h | grep /dev | awk '{print $5}' | sed 's/%//g'
但是這兩個命令還是有些bug,例如如下截圖所示:當顯示內容過長,導致換行時。此時上面的Shell腳本就無法獲取其值。
2. 如何監控linux伺服器上的數據
linux伺服器性能監測是很重要的工作,伺服器運行應該提供最有效的系統性能。當伺服器系統性能突然低於平均應有的情況,問題可能來自在執行的進程、內存的使用率、磁碟的性能、網路流量和cpu
的壓力。在預算短缺的今天,理解如何優化系統性能比以往任何時候都重要。
要實現它的前提是,你必須充分了解自己的計算機和網路,從而找到真正的瓶頸所在。本文提供一些基礎的工具來辨別和處理一些性能問題。使用的linux
發行版本是red
hat
enterprise
linux
4,工作過程是:首先查看整個系統的狀態,然後是檢查特定的子系統。
linux伺服器進行性能監控有幾種方法,每種方法都各有其優缺點。
使用snmp等標准工具
標准及非標准工具能執行一個或多個收集、合並及傳輸階段,如rstatd或snmp工具,然而標準的rstat後台程序提供的信息是有限的,速度慢而且效率低。
內核模塊
幾個系統監控工程利用內核模塊來存取監控數據。一般情況下,這是很有效的收集系統數據的方法。然而這種方法存在的問題是,當主內核源內有其它改變時,必須保持代碼一致性。一個內核模塊可能與用戶想使用的其它內核模塊相沖突。此外,在使用監控系統之前,用戶必須獲得或申請模塊。
/proc虛擬文件系統
/proc虛擬文件系統是一個較快的、高效率執行系統監控的方法。使用/proc的主要缺點是必須保持代碼分析與/proc
文件格式改變的同步。事實表明,linux內核的改變比/proc
文件格式的改變要更頻繁,所以,用/proc虛擬文件系統比用內核模塊存在的問題要少。本文介紹的方法即基於/proc虛擬文件系統。
一、
/proc文件系統特點
linux
系統向管理員提供了非常好的方法,使他們可以在系統運行時更改內核,而不需要重新引導內核系統。這是通過
/proc
虛擬文件系統實現的。/proc
文件虛擬系統是一種內核和內核模塊用來向進程
(process)
發送信息的機制
(所以叫做
/proc)。這個偽文件系統讓你可以和內核內部數據結構進行交互,獲取
有關進程的有用信息,在運行中
(on
the
fly)
改變設置
(通過改變內核參數)。
與其他文件系統不同,/proc
存在於內存之中而不是硬碟上。不用重新啟動而去看
cmos
,就可以知道系統信息。這就是
/proc
的妙處之一。
小提示:
每個linux系統根據軟硬體不同/proc
虛擬文件系統的內容也有些差異。/proc
虛擬文件系統有三個很重要的目錄:net,scsi和sys。sys目錄是可寫的,可以通過它來訪問或修改內核的參數,而net和scsi則依賴於內核配置。
3. 幾個常用的Linux監控腳本
是需要inotify? 還是incrontab
4. linux監控命令都有哪些啊
要監控什麼
內存 free
進程 top
登錄用戶 w 或who
5. linux下有沒有比較好的網路監控軟體
有一個免費的軟體,nagios,你可以搜索一下,他可以監控網路ping的狀態,然後有windows的監控插件,可以在windows中實時查看linux機器的狀態
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性能監控命令
1. sar
每兩秒刷新一次, 總共5次
[root@dbhost01 ~]# sar 2 5
Linux 2.6.32-504.el6.x86_64 (dbhost01) 03/30/2018 _x86_64_ (4 CPU)
02:53:15 PM CPU %user %nice %system %iowait %steal %idle
02:53:17 PM all 0.66 0.00 1.72 0.66 0.00 96.96
02:53:19 PM all 1.34 0.00 3.35 0.80 0.00 94.51
02:53:21 PM all 0.79 0.00 1.59 1.45 0.00 96.17
02:53:23 PM all 0.40 0.00 2.00 0.80 0.00 96.80
02:53:25 PM all 0.66 0.00 1.85 0.79 0.00 96.70
Average: all 0.77 0.00 2.10 0.90 0.00 96.23
2. top
top -a 按照內存降序
[root@dbhost01 ~]# top -a
top - 15:00:54 up 6:04, 1 user, load average: 0.31, 0.19, 0.11
Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.8%us, 2.4%sy, 0.0%ni, 88.9%id, 0.8%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4048972k total, 3848576k used, 200396k free, 134844k buffers
Swap: 4194300k total, 1788k used, 4192512k free, 1835360k cached
3. vmstat
vmstat用於顯示虛擬內存,內核線程,磁碟,系統進程, CPU活動等統計信息。
需要安裝sysstat工具。
[root@dbhost01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 1788 202508 135064 1835920 0 0 32 26 96 276 1 2 95 1 0
[root@dbhost01 ~]#
[root@dbhost01 ~]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 1788 202336 135068 1836000 0 0 32 26 97 276 1 2 95 1 0
0 0 1788 202624 135068 1836000 0 0 25 29 4012 6682 0 1 98 1 0
0 0 1788 202624 135072 1836004 0 0 57 87 4003 6685 0 1 98 1 0
1 0 1788 202508 135072 1836004 0 0 57 33 4402 7353 1 1 98 0 0
0 0 1788 202540 135076 1836004 0 0 33 47 4002 6674 0 1 98 1 0
4. lsof(list open files)
[root@dbhost01 ~]# lsof | grep 1521
certmonge 2348 root 16r FIFO 0,8 0t0 15212 pipe
certmonge 2348 root 18r FIFO 0,8 0t0 15218 pipe
gipcd.bin 2754 grid 109u unix 0xffff880139152180 0t0 36936 socket
5. tcpmp
tcpmp -i eth1
15:24:28.777779 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.777809 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.778976 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779011 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779013 IP 192.168.2.82.50990 > dbhost01.ssh: Flags [.], ack 393968, win 16652, options [nop,nop,TS val 2443327 ecr 22996360], length 0
15:24:28.779481 IP dbhost02-priv.23602 > dbhost01-priv.24271: UDP, length 556
15:24:28.779585 IP dbhost01-priv.24271 > dbhost02-priv.23602: UDP, length 80
15:24:28.779909 IP dbhost01-priv.24271 > dbhost02-priv.23602: UDP, length 80
15:24:28.780584 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780590 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780820 IP dbhost01-priv.24271 > dbhost02-priv.23602: UDP, length 556
15:24:28.782232 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
15:24:28.782235 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
6.netstat
[root@dbhost01 ~]# netstat -a | grep oracle
unix 2 [ ACC ] STREAM LISTENING 31861 /var/tmp/.oracle/ora_gipc_sdbhost01gridmyracdb-clusterCRFM_SIPC
unix 2 [ ACC ] STREAM LISTENING 33820 /var/tmp/.oracle/sdbhost01DBG_LOGD
unix 2 [ ACC ] STREAM LISTENING 41177 /var/tmp/.oracle/sdbhost01DBG_EVMD
unix 2 [ ACC ] STREAM LISTENING 65106 /var/tmp/.oracle/sAevm
unix 2 [ ACC ] STREAM LISTENING 65108 /var/tmp/.oracle/sSYSTEM.evm.acceptor.auth
7. htop
需要安裝
8. iostat
Total DISK READ: 91.48 K/s | Total DISK WRITE: 45.27 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
4071 be/4 oracle 30.18 K/s 0.00 B/s 0.00 % 4.69 % ora_lmon_orcl1
4117 be/4 oracle 60.36 K/s 15.09 K/s 0.00 % 3.69 % ora_ckpt_orcl1
2989 rt/4 grid 965.71 B/s 0.00 B/s 0.00 % 2.13 % ocssd.bin
4099 be/4 oracle 0.00 B/s 30.18 K/s 0.00 % 0.07 % ora_ckpt_test
2987 rt/4 grid 0.00 B/s 482.86 B/s 0.00 % 0.03 % ocssd.bin
2979 rt/3 root 0.00 B/s 3.77 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
2980 rt/3 root 0.00 B/s 15.09 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
9. iftop(流量監控工具)
8. LINUX 伺服器是否被監控了
你這台明顯是extmail伺服器
截圖是你自己伺服器的服務不是當前運行的服務截圖
而且監控也不是這樣隨隨便便看到的
機房肯定會監控你伺服器的網路流量最基礎的這個是他們在路由器上設置的和你沒關系
9. Linux日常監控都需要監控哪些
1)硬體:
CPU:/procuinfo
內存:/proc/meminfo
硬碟:fdisk-l
2)系統:
負載:/proc/loadavg
uptime查看實時loadaverage、swap
虛擬內存:vmstat(參數-s;24)
SUID,用戶,進程
系統日誌:tail-far/log/messages
logwatch--print--rangeToday--serviceSSHD--servicepam_unix
3)網路:Host_Alive,Ping,埠,連接 答案摘自希賽系統學院
都是需要的
10. java如何監控Linux系統。
啥叫監控linux系統?
寫java程序執行linux命令?
try {
String command = "ping localhost";
Process ps = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(ps
.getInputStream()));
String line;
System.out.println("------------------------");
while ((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println("------------------------");
} catch (Exception e) {
e.printStackTrace();
}
執行結果:
------------------------
Pinging xxx [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
------------------------
修改對應的command就應該可以了 不知道你是不是這個需求?