【IPFS應用開發】--zabbix監控接口配置

在IPFS應用開發調試測試發佈運行運維過程中,發現了一個問題——對ipfs節點的數據監控很重要。這些數據可以很直觀的判斷出是否要擴容,硬件瓶頸在哪,需要如何增加資源。

監控數據的持久化儲存

目標:在上傳一些文件是可以體現出來流入流量突發、數據盤空閒空間減少、ipfs節點儲存數據增加。
在這裏插入圖片描述
在ipfs webui項目裏已經有了一個簡單的監控
在這裏插入圖片描述
但是我要的信息還是太少,沒有CPU、內存、機器磁盤方面的監控,僅僅只有實時流入流出的數據,並且沒有做持久化儲存,關閉網頁後無法再看到,我還有多個節點,無法一次查看所有節點的信息情況。
在這裏我使用zabbix作爲監控平臺,它不僅僅可以監控CPU、內存、機器磁盤,還可以配置自定義項目去監控ipfs節點的信息。

準備工作

在本文操作之前已經存如下配置:
1 Zabbix服務器
2 IPFS linux節點(Ubuntu18)

我使用樹莓派作爲Zabbix

a. 安裝 數據庫

wget https://repo.zabbix.com/zabbix/4.4/raspbian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb
dpkg -i zabbix-release_4.4-1+buster_all.deb
apt update

b. 安裝Zabbix server,Web前端,agent

apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

c. 創建初始數據庫

mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;

導入初始架構和數據,系統將提示您輸入新創建的密碼。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

d. 爲Zabbix server配置數據庫
編輯配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=password

e. 爲Zabbix前端配置PHP
編輯配置文件 /etc/zabbix/apache.conf, uncomment and set the right timezone for you.

php_value date.timezone Europe/Riga

f. 啓動Zabbix server和agent進程
啓動Zabbix server和agent進程,併爲它們設置開機自啓:

systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

g. 配置Zabbix前端
連接到新安裝的Zabbix前端: http://server_ip_or_name/zabbix
根據Zabbix文件裏步驟操作: Installing frontend
https://www.zabbix.com/cn/download?zabbix=4.4&os_distribution=raspbian&os_version=10_buster&db=mysql&ws=apache

使用x86的虛擬機作爲IPFS節點
節點配置爲 2核心,4G內存,16G系統盤,1T數據盤(sdb)

# 格式化並掛載磁盤
pvcreate /dev/sdb
vgcreate store /dev/sdb
lvcreate -l +100%free -n ipfs store
mkfs.ext4 /dev/store/ipfs
mkdir /root/.ipfs/
mount -t ext4 /dev/store/ipfs /root/.ipfs/
echo "/dev/store/ipfs /root/.ipfs/           ext4    defaults       0       2">> /etc/fstab
#從我內網地址,以服務的形式安裝ipfs節點.
script_path=http://172.16.0.5/cdn/script/ipfs
ver=v0.4.22
wget ${script_path}/go-ipfs_${ver}_linux-amd64.tar.gz -O go-ipfs_${ver}_linux-amd64.tar.gz
tar -zxvf go-ipfs_${ver}_linux-amd64.tar.gz
cp go-ipfs/ipfs /usr/local/bin/ipfs
chmod +x /usr/local/bin/ipfs
wget ${script_path}/ipfs.service -O /lib/systemd/system/ipfs.service
ipfs init
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "[\"PUT\", \"POST\", \"GET\"]"
#ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
#ipfs config Addresses.API /ip4/172.16.0.65/tcp/5001
systemctl enable ipfs.service
systemctl start ipfs.service

IPFS節點安裝zabbix-agent

安裝

wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
dpkg -i zabbix-release_4.4-1+bionic_all.deb
apt update
apt -y install zabbix-agent

修改配置文件vim /etc/zabbix/zabbix_agentd.conf
將Server(zabbix服務器地址)、ServerActive(主動推送數據的zabbix服務器地址),改成zabbix服務器地址。將Hostname 配置成自己喜歡的名字。
登錄zabbix服務器添加linux主機。配置——主機——創建主機。
填寫主機名稱爲自己喜歡的名字。agent代理程序的接口 填寫IPFS節點的地址。在模板選項卡中添加Template OS Linux基礎模板即可。
在zabbix主機列表中看到IPFS節點上線並在可用性中亮起ZBX,在自動發現裏檢查一下自動發現規則就完成了IPFS節點的添加。
此時可以看到作爲Linux的基礎數據。CPU、內存、磁盤、網口。

CPU監控
CPU監控
在這裏插入圖片描述
內存監控
在這裏插入圖片描述
系統盤監控
在這裏插入圖片描述
數據盤監控
在這裏插入圖片描述
網卡帶寬監控
在這裏插入圖片描述

配置IPFS內容

在節點上運行命令ipfs stats repo
在這裏插入圖片描述
通過http api 獲取數據。
在這裏插入圖片描述
獲取失敗,原來我將端口綁定到了IP地址上了。
在這裏插入圖片描述
通過http api 獲取數據。curl -s http://172.16.0.65:5001/api/v0/stats/repo | jq .RepoSize
在這裏插入圖片描述
修改vim /etc/zabbix/zabbix_agentd.conf 添加

UnsafeUserParameters=0
UserParameter=IPFS_repo,curl -s http://172.16.0.65:5001/api/v0/stats/repo | jq .RepoSize

這樣就得到了一個鍵值對,鍵名爲IPFS_repo,以爲我這裏只關心2個參數repo大小,和peers連接數量,所以我只添加了2個。

UnsafeUserParameters=0
UserParameter=IPFS_peers,curl -s http://172.16.0.65:5001/api/v0/swarm/peers | jq '.Peers|length'
UserParameter=IPFS_repo,curl -s http://172.16.0.65:5001/api/v0/stats/repo | jq .RepoSize

此時在zabbix服務器上執行zabbix_get -s 172.16.0.65 -p 10050 -k IPFS_repo命令,可以獲取到實時數據。
在這裏插入圖片描述
在zabbix上創建屬於IPFS節點的模板。配置——模板——創建模板——填寫名字——添加即可。
打開新創建的IPFS模板創建監控項。監控項——創建監控項——填寫名字——填寫鍵值IPFS_repo——單位B——添加
在這裏插入圖片描述
爲主機添加IPFS模板,等待一會,可以在主機的最新信息中查看到監控到的數據值,因爲沒有選應用集,沒有分類,在other一欄中。
在這裏插入圖片描述
點開圖形可以看到簡易圖表。
在這裏插入圖片描述

添加儀表盤,完成大屏顯示

儀表盤——添加儀表盤——創建儀表盤。
添加構建——類型圖形——選擇對應的數據。
在這裏插入圖片描述

在這裏插入圖片描述
效果圖
在這裏插入圖片描述
我還有多個節點,並且我只關心網卡流入、流出、數據盤空閒大小、ipfs連接節點、ipfs儲存大小,可以在一個大屏展示圖中顯示。
在這裏插入圖片描述
當我添加一些數據時監控反應出來的情況如下:在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章