【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储存大小,可以在一个大屏展示图中显示。
在这里插入图片描述
当我添加一些数据时监控反应出来的情况如下:在这里插入图片描述

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