LibreNMS 各服務的 Agent 服務
BUBU 我用的系統是 CentOS 7 版本,這個服務安裝還滿簡單的,只要照著官方的手冊下去安裝可以很順利的安裝完成
設定流程
Check_MK 安裝
- 安裝 librenms-agent 服務
cd /opt/
git clone https://github.com/librenms/librenms-agent.git
cd librenms-agent
- check_mk_agent 相關服務複製到
/usr/bin
cp check_mk_agent /usr/bin/check_mk_agent
設定可以執行服務
chmod +x /usr/bin/check_mk_agent
- 設定系統啟動服務
cp [email protected] check_mk.socket /etc/systemd/system
- 建立 check_mk_agent 目錄
mkdir -p /usr/lib/check_mk_agent/plugins /usr/lib/check_mk_agent/local
- 將 agent-local 目錄下的檔案都複製到
/usr/lib/check_mk_agent/local
cp -P agent-local/* /usr/lib/check_mk_agent/local/
讓此目錄下的檔案都能執行
chmod +x /usr/lib/check_mk_agent/local/$script
啟用 check_mk 服務
systemctl enable check_mk.socket && systemctl start check_mk.socket
Nginx 設定
- 先在 .conf 設定檔下新增加下面的指令
location /nginx-status {
stub_status on;
access_log off;
allow 123.123.123.123; # 允許看到的 IP
allow 127.0.0.1;
deny all;
}
or
location /nginx-status {
stub_status on;
access_log off;
# allow 123.123.123.123; # 允許看到的 IP
# allow 127.0.0.1;
# deny all;
}
- 如何檢測是否有設定成功,請輸入下的指令
curl http://localhost/nginx_status
- 成功的話出現下面的畫面才對
Active connections: 816
server accepts handled requests
39600484 39600484 24795538
Reading: 0 Writing: 4 Waiting: 794
-
nginx status 詳解
- active connections – 活動連接數量
- server accepts handled requests — 總共處理了11989個連接 ,成功創建11989次握手,總共處理了11991個請求
- reading — 讀取客戶端的連接數
- writing — 響應數據到客戶端的數量
- waiting — 開啟 keep-alive 的情況下,這個值等於 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接
-
下載 SNMP 套件
wget https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/nginx -O /etc/snmp/nginx
讓此套件能夠執行
chmod +x /etc/snmp/nginx
- 到 SNMP 下新增 Nginx 套件服務
vim /etc/snmp/snmpd.conf
extend nginx /etc/snmp/nginx
重啟 SNMP 服務
systemctl restart snmpd
MySQL 設定
- 必須要先有兩個 php 套件 php-cli php-mysql ,因 php 每個版本指令不一定一樣,所以要查一下版本的指令
yum install php-cli php-mysql
- 下載 SNMP 套件
wget https://github.com/librenms/librenms-agent/raw/master/snmp/mysql -O /etc/snmp/mysql
設定可執行
chmod +x /etc/snmp/mysql
- 要在
/etc/snmp
目錄下新增mysql.cnf
檔
vim /etc/snmp/mysql.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'toor';
$mysql_host = 'localhost';
$mysql_port = 3306;
- 到 SNMP 下新增 Mysql 套件服務
vim /etc/snmp/snmpd.conf
extend mysql /etc/snmp/mysql
重啟 SNMP 服務
systecmctl restart snmpd
PHP-FPM 設定
- 下載 SNMP 套件
wget https://github.com/librenms/librenms-agent/raw/master/snmp/phpfpmsp -O /etc/snmp/phpfpmsp
設定可執行
chmod +x /etc/snmp/phpfpmsp
- 到 SNMP 下新增 PHP-FPM 套件服務
vim /etc/snmp/snmpd.conf
extend phpfpmsp /etc/snmp/phpfpmsp
重啟 SNMP 服務
systecmctl restart snmpd
- 啟用 PHP-FPM 即時監控功能 PHP-FPM 這個功能預設是沒有啟用的,需先手動設定 PHP-FPM 裡的設定檔
vim /etc/php-fpm.d/www.conf
pm.status_path 修改成自己想要命名的名稱
pm.status_path = /status or /php_fpm_status
ping.path 修改成自己想要命名的名稱
ping.path = /ping or /php_fpm_status
ping 回應內容
ping.response = pong or hello
:wq
存檔後重啟 php-fpm 服務
systemctl restart php-fpm
- Nginx 設定檔
location ~ ^/(status|php_fpm_ping)$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
#如果是端口请用 fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
啟重 nginx
systemctl restart nginx or systemctl nginx relaod
- 用網址連線看是否成功
http://ip/status
http://ip/php_fpm_ping
- 如果設定成功畫面會如下
status
- ping 成功畫面,會回傳剛剛在 php-fpm 設定檔裡面的值
- php-fpm status 詳解
訊息 | 說明 |
---|---|
pool | pool 名稱,通常是 www 。 |
process manager | static 、dynamic 或 ondemand |
start time | FPM 啟動的時間點。若重新載入(reload )也會改變這個時間 |
start since | FPM 啟動後所經過的秒數。 |
accepted conn | 已接收到的連線數量。 |
listen queue | 目前正在等待處理的連線數量,若這個值不是 0 ,就代表 FPM 的行程數量可能不夠,要考慮增加行程數量。 |
max listen queue | FPM 啟動後,等待處理連線數量的最大紀錄。 |
listen queue len | 等待處理連線佇列的長度。 |
idle processes | 閒置的 FPM 行程數量。 |
active processes | 工作中的 FPM 行程數量。 |
total processes | 所有的 FPM 行程數量。 |
max active processes | FPM 啟動後,工作中 FPM 行程數量的最大紀錄。 |
max children reached | FPM 啟動後,FPM 行程達到上限值的次數,若這個值不是 0 ,代表 PHP-FPM 的上限值設定太低,要考慮增加上限值。 |
slow requests | 處理過慢的連線數,若這個值不是 0 ,代表某些 PHP 程式的處理速度太慢,最常見的因素就是 MySQL 資料庫查詢過慢。 |
- full 詳解
訊息 | 說明 |
---|---|
pid | FPM 的行程 ID。 |
state | 行程狀態,Idle 代表閒置,Running 代表工作中。 |
start time | 行程啟動的時間點。 |
start since | 行程啟動後所經過的秒數。 |
requests | 處理過的連線數。 |
request duration | 連線時間(µs)。 |
request method | 連線方式(GET 、POST 等)。 |
request URI | 連線的網址。 |
content length | POST 的資料長度。 |
user | 認證的使用者名稱(PHP_AUTH_USER )。 |
script | 主要執行的 PHP 指令稿。 |
last request cpu | 上一個連線所耗費的 CPU 百分比(只有閒置的行程才會顯示)。 |
last request memory | 上一個連線所耗費的最大記憶體(只有閒置的行程才會顯示)。 |
建議在設定完每個 Agent 服務的,最好先到 /etc/snmp/ 下手動運行一次服務的 Agent 看是否有正確回報數值