服務器監控
服務器監控: ServerAgent、nmon、influxdb、zabbix、prometheus+grafana+
重點監控: prometheus+grafana+ xxx_exporter
serverAgent+PrfMon Metrics Collector監控
-
serverAgent 要部署到被測服務器
-
把ServerAgent.zip包上傳到被測服務器上
yum install unzip -y
unzip ServerAgent-2.2.3.zip # 解壓
這個軟件,可以用於windows\linux服務器都可以
./startAgent.sh --help # 獲取幫助
./startAgent.sh # 運行
我們看到,綁定了4444端口,可以通過tcp、udp兩種數據傳輸方式
也就是說,這個服務端口,默認就是4444
通過命令,帶端口參數,來修改默認端口
./startAgent.sh --tcp-port 9898 --udp-port 0 -
jmeter添加PrfMon Metrics Collector監控器配置cpu、memory、io等監控
-
當我們要監控不同的項時,請使用多個監聽器,不要合並在一個監聽器中(下圖是合並展示)
-
-
nmon監控
nmon本身監控服務器,不依賴測試工具,也就是說,它可以獨立監控;但無法監控window
三種運行模式
屏幕交互模式 ------實時看到數據,但是,數據沒有保存
數據收集模式------看不到數據,但是,數據保存在文件中
定時任務模式----看不到數據,但是,數據保存在文件中,數據采集是固定時間間隔
使用nmon之前,你必須找到你的被監控機器的linux系統信息
系統的類型、發型版本。
centos系統: cat /etc/redhat-release ---centos 7/使用nmon_x86_64_centos7
不是centos: cat /etc/os-release
下載對系統的nmon版本
http://nmon.sourceforge.net/pmwiki.php
下載對應執行你的系統的nmon的文件,上傳到被監控的服務上
屏幕交互模式
命令:./nmon_x86_64_centos7
交互模式的快捷鍵:cmdn cpu\memory\disk\network
數據收集模式
命令: nmon_x86_64_centos7 -f [-s <seconds>] [-c <count>] [-t|-T]
nmon_x86_64_centos7 -f -s3 -c44 每間隔3秒鍾收集一次數據,總共收集44次,收集之后,自動停止,生成一個hostname_yyMMdd_hhmm.nmon的文件
用nmon_anasyser工具的分析
xlsm的文件,是一個帶有宏的文件,這個文件,需要使用微軟的office來打開后--添加剛生成的nmon文件。
wps默認不支持宏
定時執行模式
Capacity Planning mode - use cron to run each day
-x Sensible spreadsheet output for one day
Every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)
-X Sensible spreadsheet output for busy hour
Every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)
-z Like -x but the output saved in /var/perf/tmp assuming root user
命令詳解
grafana+jmeter+influxdb監控
grafana: 前端展示平台,通過 不同的模板,來改變展示效果
influxdb: 時序數據庫; 每一行的數據,都有一個時間。時間戳; 線性展示
jmeter的后端監聽器,實現數據的收集已經發送給數據的功能
注意
請單獨使用一台linux機器,不要使用被測服務器機器;減少被測服務器的資源消耗
1、准備一個空的linux機器
2、把雲盤中性能監控 grafana + influxdb 文件上到到新的機器上
• 注意: influxdb,請使用1.x版本,不要去使用最新的2.x
安裝啟動
rpm包安裝:
rpm -ivh grafana-7.4.3-1.x86_64.rpm
rpm -ivh influxdb-1.7.0.x86_64.rpm
或者 yum install xxx.rpm
啟動grafana: `systemctl restart grafana-server`
grafana的服務端口: 3000
訪問地址:http://grafana_ip:3000 admin/admin
啟動:`influxd`
influxdb數據庫有一個http協議的訪問端口:8086
再打開一個終端:`influx` 進入數據庫的命名模式
看有哪些數據庫: `show databases`
創建一個叫jmeter的數據庫:`create database jmeter`
時序數據庫與關系數據庫對應的表,不叫table,叫measurement
進入庫:`use jmeter`
有哪些表:`show measurements`
不需要手動建表
jmeter中監聽器中選擇后端監聽器,監聽器的實現中,選擇 influxdb
influxdbUrl: 修改host_to_change為 influxdb的ip地址,看到db=jmeter,說明,我們的數據是要寫入一個叫jmeter的庫中。
jmeter執行性能測試,數據就入表了
grafana配置數據源
在grafana中顯示數據
1、添加數據源
2、type選擇:influxdb
3、URL: http://grafana_ip:8086
4、database: jmeter
5、引入模板:
• 菜單 > import 模板id 5496
• 模板資源 https://grafana.com/grafana/dashboards
目標名稱, db選擇你添加數據源的時候的名稱,measurement確認是jemter
data_source 修改為你的添加的數據源
右上角的時間,可以自己去調整
grafana操作截圖:添加數據源
grafana操作截圖:導入模板
jmeter操作截圖:配置監聽器
執行性能腳本,打開gragana面板:監控成功
grafana+prometheus+export監控
prometheus是一個時序數據庫,存數據
exprter 是收集器,來收集被監控的數據,想要監控不同的內容,就使用不同的exporter,這個exporter應該放在被測服務器上
然后,再把 exporter與 prometheus進行關聯(數據聯通)
這個解決方案,可以用於運維人員來監控服務器
exporter安裝
node_exporter包上傳到**被測服務器**
解壓: `tar -xzvf xxxx.tar.gz`
進入解壓后的文件夾
可執行文件不知道用 命令后面跟 --help
`nohup ./node_exporter &` 這個命令后台執行,同時,把運行日志,寫到nohup.out文件中
node_expoter端口: 9100 --------**被測服務器**需要開放 9100 端口
http://YouExporter_IP:9100/metrics 這個能訪問,說明node_exporter是正常、網絡也是可以被訪問的
prometheus安裝
把prometheus的包,放到 非被測服務器解壓
進入解壓后的文件夾 啟動 `./prometheus`
通過日志,我們發現 prometheus.yml 是它的配置文件
`msg="Start listening for connections" address=0.0.0.0:9090` 說明prometheus的端口: 9090
http://prometheus_IP:9090
## prometheus與exporter集成
修改prometheus.yml
• yml文件的語法: 縮進(對齊)、 key的冒號后面,有一個空格
配置node節點的ip
# job_name 可以自定義
- job_name: 'node_exporter'
static_configs:
- targets: ['nodeexporter_IP:9100','nodeexporter_IP:9100'] #可配置多個ip
啟動prometheus: `nohup ./prometheus &`
1.檢查啟動日志無報錯
2.登錄http://prometheus_IP:9090/targets,檢查節點狀態
------------------
各個應用的端口
influxdb 8086
grafana 3000
prometheus 9090
node_exporter 9100
grafana的界面中配置
添加prometheus數據源: type選擇 prometheus、 URL: http://prometheus_ip:9090
引入模板:12884, 選擇數據源
jmeter做性能測試
Prometheus界面展示node節點狀態up
grafana配置
執行腳本,打開gragana面板:監控成功