node
名稱 | 說明 | 系統 |
---|---|---|
arp | 從 /proc/net/arp 中收集 ARP 統計信息 |
Linux |
conntrack | 從 /proc/sys/net/netfilter/ 中收集 conntrack 統計信息 |
Linux |
cpu | 收集 cpu 統計信息 | Darwin, Dragonfly, linux FreeBSD, Linuxgit |
diskstats | 從 /proc/diskstats 中收集磁盤 I/O 統計信息 |
Linux |
edac | 錯誤檢測與糾正統計信息 | Linux |
entropy | 可用內核熵信息 | Linux |
exec | execution 統計信息 | Dragonfly, FreeBSD |
filefd | 從 /proc/sys/fs/file-nr 中收集文件描述符統計信息 |
Linux |
filesystem | 文件系通通計信息,例如磁盤已使用空間 | Darwin, Dragonfly,github FreeBSD, Linux, OpenBSDweb |
hwmon | 從 /sys/class/hwmon/ 中收集監控器或傳感器數據信息 |
Linux |
infiniband | 從 InfiniBand 配置中收集網絡統計信息 | Linux |
loadavg | 收集系統負載信息 | Darwin, Dragonfly, FreeBSD,數據庫 Linux, NetBSD, OpenBSD, Solarisjson |
mdadm | 從 /proc/mdstat 中獲取設備統計信息 |
Linux |
meminfo | 內存統計信息 | Darwin, Dragonfly,vim FreeBSD, Linux服務器 |
netdev | 網口流量統計信息,單位 bytes | Darwin, Dragonfly, 網絡 FreeBSD, Linux, OpenBSD |
netstat | 從 /proc/net/netstat 收集網絡統計數據,等同於 netstat -s |
Linux |
sockstat | 從 /proc/net/sockstat 中收集 socket 統計信息 |
Linux |
stat | 從 /proc/stat 中收集各類統計信息,包含系統啓動時間,forks, 中斷等 |
Linux |
textfile | 經過 --collector.textfile.directory 參數指定本地文本收集路徑,收集文本信息 |
any |
time | 系統當前時間 | any |
uname | 經過 uname 系統調用, 獲取系統信息 |
any |
vmstat | 從 /proc/vmstat 中收集統計信息 |
Linux |
wifi | 收集 wifi 設備相關統計數據 | Linux |
xfs | 收集 xfs 運行時統計信息 | Linux (kernel 4.4+) |
zfs | 收集 zfs 性能統計信息 | Linux |
名稱 | 說明 | 系統 |
---|---|---|
bonding | 收集系統配置以及激活的綁定網卡數量 | Linux |
buddyinfo | 從 /proc/buddyinfo 中收集內存碎片統計信息 |
Linux |
devstat | 收集設備統計信息 | Dragonfly, FreeBSD |
drbd | 收集遠程鏡像塊設備(DRBD)統計信息 | Linux |
interrupts | 收集更具體的中斷統計信息 | Linux,OpenBSD |
ipvs | 從 /proc/net/ip_vs 中收集 IPVS 狀態信息,從 /proc/net/ip_vs_stats 獲取統計信息 |
Linux |
ksmd | 從 /sys/kernel/mm/ksm 中獲取內核和系通通計信息 |
Linux |
logind | 從 logind 中收集會話統計信息 |
Linux |
meminfo_numa | 從 /proc/meminfo_numa 中收集內存統計信息 |
Linux |
mountstats | 從 /proc/self/mountstat 中收集文件系通通計信息,包括 NFS 客戶端統計信息 |
Linux |
nfs | 從 /proc/net/rpc/nfs 中收集 NFS 統計信息,等同於 nfsstat -c |
Linux |
qdisc | 收集隊列推定統計信息 | Linux |
runit | 收集 runit 狀態信息 | any |
supervisord | 收集 supervisord 狀態信息 | any |
systemd | 從 systemd 中收集設備系統狀態信息 |
Linux |
tcpstat | 從 /proc/net/tcp 和 /proc/net/tcp6 收集 TCP 鏈接狀態信息 |
Linux |
注意:咱們可使用 --collectors.enabled
運行參數指定 node_exporter 收集的功能模塊, 若是不指定,將使用默認模塊。
下載地址:https://prometheus.io/download/#node_exporter
tar -zxvf node_exporter-0.16.0.linux-amd64.tar.gz
mv node_exporter-0.16.0.linux-amd64 /usr/local/node_exporter
vim /etc/systemd/system/node_exporter.service [Unit] Description=node_exporter After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target
systemctl daemon-reload
systemctl start node_exporter
systemctl status node_exporter
systemctl enable node_exporter
curl 127.0.0.1:9100
curl 127.0.0.1:9100/metrics
能夠利用 Prometheus 的 static_configs 來拉取 node_exporter 的數據。
編輯prometheus.yml文件,添加內容
- job_name: 'node' static_configs: - targets: ['localhost:9100']
重啓prometheus,而後在Prometheus頁面中的Targets中就能看到新加入的node
收集到 node_exporter 的數據後,咱們可使用 PromQL 進行一些業務查詢和監控,下面是一些比較常見的查詢
如下查詢均以單個節點做爲例子,若是你們想查看全部節點,將 instance="xxx"
去掉便可。
100 - (avg by (instance) (irate(node_cpu{instance="172.16.8.153:9100", mode="idle"}[5m])) * 100)
avg by (instance, mode) (irate(node_cpu{instance="172.16.8.153:9100"}[5m])) * 100
Nice:可理解爲,用戶空間進程的CPU的調度優先級,範圍爲[-20,19]
System:System的含義與User類似。System表示:CPU花了多少比例的時間在內核空間運行。分配內存、IO操做、建立子進程……都是內核操做。這也代表,當IO操做頻繁時,System參數會很高
ioWait:在計算機中,讀寫磁盤的操做遠比CPU運行的速度要慢,CPU負載處理數據,而數據通常在磁盤上須要讀到內存中才能處理。當CPU發起讀寫操做後,須要等着磁盤驅動器將數據讀入內存,從而致使CPU 在等待的這一段時間內無事可作。CPU處於這種等待狀態的時間由Wait參數來衡量
Idle:CPU處於空閒狀態時間比例。通常而言,idel + user + nice 約等於100%
node_load1{instance="172.16.8.153:9100"} // 1分鐘負載 node_load5{instance="172.16.8.153:9100"} // 5分鐘負載 node_load15{instance="172.16.8.153:9100"} // 15分鐘負載
100-(node_memory_MemFree{instance="172.16.8.172:9100"}+node_memory_Cached{instance="172.16.8.172:9100"}+node_memory_Buffers{instance="172.16.8.172:9100"})/node_memory_MemTotal{instance="172.16.8.172:9100"} * 100
100 - node_filesystem_free{instance="172.16.8.153:9100",fstype!~"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs|udev|none|devpts|sysfs|debugfs|fuse.*"} / node_filesystem_size{instance="172.16.8.153:9100",fstype!~"rootfs|selinuxfs|autofs|rpc_pipefs|tmpfs|udev|none|devpts|sysfs|debugfs|fuse.*"} * 100
或者你也能夠直接使用 {fstype="xxx"} 來指定想查看的磁盤信息
// 入包量 sum by (instance) (rate(node_network_receive_bytes{instance="172.16.8.153:9100",device!="lo"}[5m])) // 出包量 sum by (instance) (rate(node_network_transmit_bytes{instance="172.16.8.153:9100",device!="lo"}[5m]))
1.下載dashboard json文件在上傳到grafana中
https://grafana.com/dashboards/1860
2.直接在grafana中輸入相應導入的dashboard code_id
輸入code_id 或者 導入json文件
有些儀表盤上面是沒有數據的,可能有些參數須要調整(模板可能適應之前的版本),對照這PromQL 修改參數