跳到主內容

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

補充說明


參考相關網站