第十講 企業級監控資料採集指令碼開發實踐

2022-06-24 07:42:11 字數 3369 閱讀 1203

第十講內容

• pushgateway 的介紹

• pushgateway 的安裝和運⾏和配置

• ⾃定義編寫指令碼的⽅法 傳送pushgateway 採集

• 使⽤pushgateway的優缺點

(⼀) pushgateway 的介紹

pushgateway 是另⼀種採⽤被動推送的⽅式(⽽不是exporter 主動獲取)獲取監控資料的prometheus 外掛程式 在上篇中 我們對pushgateway已經做過介紹 它是可以單獨運⾏在 任何節點上的外掛程式(並不⼀定要在被監 控客戶端) 然後 通過⽤戶⾃定義開發指令碼 把需要監控的資料 傳送給 pushgateway  然後pushgateway 再把資料 推送給prometheus server

(⼆)pushgatway 的安裝和運⾏和配置

解壓設定systemctl執行

cd /usr/local

tar -xf pushgateway-1.2.0.linux-amd64.tar.gz

mv pushgateway-1.2.0.linux-amd64 pushgateway

設定systemctl檔案

# cat /usr/lib/systemd/system/pushgateway.service 

[unit]

description=prometheus node exporter

after=network.target

[service]

execstart=/usr/local/pushgateway/pushgateway

user=nobody

[install]

wantedby=multi-user.target

啟動

systemctl daemon-reload

systemctl start pushgateway

systemctl enable pushgateway

關於pushgateway的配置 主要指的是 在prometheus sever端的配 置

這⾥我們發現了沒有, localhost:9091/9092  使⽤的 pushgateway開啟了兩個

在prometheus_server 本機上 為什麼開啟兩個 最後⼀個段落給⼤家解釋

重啟prometheus

(三)⾃定義編寫指令碼的⽅法 傳送pushgateway 採集

接下來 進⼊重頭戲了  pushgateway 本⾝是沒有任何抓取監控資料的功能的 它只是被 動的等待推送過來

# cat /usr/local/node_exporter/node_exporter_shell.sh 

#!/bin/bash

instance_name=`hostname -f | cut -d '.' -f1` #?#本機機器名 變數用於於之後的標籤

if [ $instance_name == "localhost" ];then

echo "must fqdn hostname"

fi# for waitting connections

label="count_netstat_wait_connections"

count_netstat_wait_connections=`netstat -an | grep -i wait | wc -l`

echo "$label : $count_netstat_wait_connections"

echo "$label $count_netstat_wait_connections"|curl --data-binary @-

指令碼解釋

#獲取主機名用於區分不同主機,而且機器名不能是localhost

instance_name=`hostname -f | cut -d '.' -f1`

#後⾯紅⾊部分 是我們通過linux命令⾏ 就簡單的獲取到了 我 們需要監控的資料 tcp_wait數

count_netstat_wait_connections=`netstat -an | grep -i wait | wc -l`

#最後這⾥ ⽤post ⽅式 把 key & value 推送給 pushgatway的url位址

curl --data-binary @-

#url的主location

#這⾥是 第⼆部分  第⼀個標籤: 推送到 哪⼀個prometheus.yml 定義的 job⾥

job/pushgateway/

#這⾥是 第⼆個標籤 推送後 顯⽰的 機器名是什麼

instance/$instance_name

手動執行該指令碼,然後放入crontab執行就可以定時抓取伺服器tcp的wait鏈結資訊了

web介面檢視

(四)pushgateway的優缺點

pushgateway這種⾃定義的 採集⽅式 ⾮常的快速 ⽽且極其靈活 ⼏乎不收到任何約束 其實我個⼈ 還是⾮常希望 使⽤pushgateway來獲取監控資料的 各類的exporters雖然玲琅滿⽬ ⽽且預設提供的資料很多了已 經 ⼀般情況下 我在企業中 只安裝 node_exporter 和 db_exporter 兩個 其他種類的 監控資料 我傾向於 全部使⽤pushgateway的⽅式 採集

pushgateway的缺點

1) pushgateway 會形成⼀個單點瓶頸,假如好多個 指令碼同時 傳送給 ⼀個pushgateway的程序  如果這個程序沒了,那麼監控資料也就沒了

2) pushgateway 並不能對傳送過來的 指令碼採集資料 進⾏更智 能的判斷 假如指令碼中間採集出問題了 那麼有問題的資料 pushgateway⼀樣照單全收 傳送給 prometheus

作業我們⾃⼰搭建pushgateway 並⾃⾏編寫⼀個 採集指令碼 (bash shell即可) 採集⼀個 ping 延遲和丟包率

zabbix企業級監控系統

zabbix企業級監控系統 keys 鍵值 net.if.in eno16777736 自定義鍵值 被監控端自定義鍵值 root lnmp soft zabbix 3.4.4 conf zabbix agentd etc zabbix zabbix agentd.d 自定義乙個以.conf結尾的檔案...

Zabbix 企業級硬體及網路監控

轉至元資料起始 使用說明 關於傳送郵件 zabbix 為免費並開源的企業級的伺服器硬體及網路監控軟體。一般用於生產環節監控伺服器端口 cpu 記憶體 狀態等。該軟體以server agent模式實現分布式硬體網路監控,適用於絕大多數的多伺服器部署的專案。有些專案中客戶會明確提出需要伺服器監控功能,有...

第一講 企業級運維監控理 論基礎

prometheus構架圖 監控和報警 prometheus優勢 監控資料的精細程度 絕對的第 可以精確到 1 5秒的採集精度 4 5分鐘 理想的狀態 我們來算算 採集精度 儲存 效能 集群部署的速度 監控指令碼的製作 指的是熟練之後 常快速 縮短監控的搭建時間成本 周邊外掛程式很豐富 export...