Apache Agent 服務
記錄 Apache 設定方式
- 先在 .conf 設定檔下新增加下面的指令或者在
vim /etc/httpd/conf.d/server-status.conf
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
Allow from 127.0.0.1
Allow from 123.123.123.123 # 允許看到的 IP
</Location>
- 重啟 Apache 服務
systemctl restart httpd
or
systemctl reload httpd
- 如何檢測是否有設定成功,請輸入下的指令
curl http://localhost/server-status?auto
如果有用到 https
連線方式請改用
curl -k https://localhost/server-status?auto
- 成功的話出現下面的畫面才對
Total Accesses: 789874
Total kBytes: 54218215
CPULoad: .00554971
Uptime: 263437
ReqPerSec: 2.99834
BytesPerSec: 210750
BytesPerReq: 70289
BusyWorkers: 4
IdleWorkers: 9
Scoreboard: ..._K.R__W..._R__._.__..........................................................................................................................................................................................................................................
- Apache status 詳解
引數名稱 | 引數描述 |
---|---|
Total Accesses | 伺服器自啟動來接收到的請求連線數 |
Total kBytes | 傳輸的總資料量,單位是KB |
CPULoad | NCPU負荷 |
Uptime | 執行時間,單位秒 |
ReqPerSec | 每秒請求數 |
BytesPerSec | 每秒傳輸資料量,單位B/s |
BytesPerReq | 平均每個請求的資料傳輸量(事實上就是BytesPerSec/BytesPerSec) |
BusyWorkers | 在跑的程序數 |
IdleWorkers | 空閒的程序數 |
-
Total Accesses 就是伺服器啟動後,總訪問數,Total kBytes 對應於這些訪問共用了多少資料傳輸量,單位是 KB。
-
CPULoad 是指當前伺服器佔用 CPU 的負荷值。值的一提的是,在 2.4 版本里還有 Server Load1,Server Load5 和 Server Load15 三個引數,分別表示前 1、5 和 15 分鐘內 cpu 的平均負荷。
-
Uptime 就是從啟動到你看到不間斷的執行時間,單位秒。在 2.4 版裡也多了個 ServerUptime 引數,表示結果也人性化一點,會分開顯示天時分秒,然而這也改變不了它沒有什麼用命運。
-
ReqPerSec,BytesPerSec 和 BytesPerReq,這個就不用解釋了就是字面上的意思,前兩個分別是每秒請求數、每秒傳輸的資料量。第三個引數是前兩個引數計算來的,計算公式是BytesPerReq=BytesPerSec/ReqPerSec。
-
BusyWorkers,IdleWorkers 分別是在跑的程序和空閒的程序數。IdleWorkers 就是負責等待新的訪問(連線請求),而 BusyWorkers 就是在讀請求和傳送迴應。監控引數 Scoreboard 裡面的’_’對應於 IdleWorkers,’W’ 和 ‘R’ 對應於 BusyWorkers。
-
下載 Apache 套件 (此套件要在 Python3 版才能正常運行)
wget https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/apache-stats.py -O /etc/snmp/apache-stats.py
- 給予執行權限
chmod +x /etc/snmp/apache-stats.py
- 建立一個快取目錄
mkdir -p /var/cache/librenms/
- CentOS 7
yum install python-urlgrabber python-pycurl
- 到 SNMP 下新增 Apache 套件服務
vim /etc/snmp/snmpd.conf
extend apache /etc/snmp/apache-stats.py
# 指令
echo "extend apache /etc/snmp/apache-stats.py" >> /etc/snmp/snmpd.conf
- 重啟 SNMP 服務
systemctl restart snmpd
- 確認該腳本可以正常執行
./apache-stats.py
結果如下
793029
56133400576
.00630308
264791
2.99492
211991
70783.5
1
9
9
0
0
1
0
0
0
0
0
0
246
- 注意如果站台有使用到
https
的話要修改apache-stats.py
此程式vim /etc/snmp/apache-stats.py
#載入 ssl 模組
import ssl
# 新增此語法,程式就可以正常運行
ssl.match_hostname = lambda cert, hostname: True
# 不用認證此 SSL 憑證
ssl._create_default_https_context = ssl._create_unverified_context
補充說明
參考相關網站
- 安裝 Apache Agent 的方式
- Librenms官方 Apache
- ssl.CertificateError: hostname 'example.com' doesn't match either of 'exampleserver.com'?
- 教你如何監控 Apache?
- Apache Module mod_status
- 分析Apache Status模組資料
- [已解決] urllib.error.URLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
- 即時掌握Apache運作狀態 圖形化監看網頁伺服器