在IPFS应用开发调试测试发布运行运维过程中,发现了一个问题——对ipfs节点的数据监控很重要。这些数据可以很直观的判断出是否要扩容,硬件瓶颈在哪,需要如何增加资源。

【IPFS应用开发】--zabbix监控接口配置

  • 监控数据的持久化储存
  • 准备工作
  • IPFS节点安装zabbix-agent
  • 配置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监控


内存监控

系统盘监控

数据盘监控

网卡带宽监控

配置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储存大小,可以在一个大屏展示图中显示。

当我添加一些数据时监控反应出来的情况如下:

【IPFS应用开发】--zabbix监控接口配置相关推荐

  1. Zabbix(一)安装zabbix监控服务配置与添加agent主机的三种方式

    zabbix基础介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...

  2. zabbix监控的配置

    ZABBIX监控的操作步骤有两个! 首先登录到zabbix 的主界面在configuration---host---create host在如上的host 创建界面中 主要是输入被监测的server的 ...

  3. 部署Zabbix监控平台,配置及使用Zabbix监控系统,自定义Zabbix监控项目

    案例1:常用系统监控命令 案例2:部署Zabbix监控平台 案例3:配置及使用Zabbix监控系统 案例4:自定义Zabbix监控项目 1 案例1:常用系统监控命令 1.1 问题 本案例要求熟悉查看L ...

  4. zabbix监控项配置—带宽/磁盘/CPU/内存/IIS/事件日志

    目录 一.主机连接 二.目前模板配置 (一)DaiKuan (二)disk warning (三)Template App IIS by Zabbix agent (四)Template OS Win ...

  5. zabbix 监控项自动发现过滤_Zabbix监控之配置Linux自动发现与自动注册报警

    1.关于linux客户端的部署上篇已经介绍不清楚的可以去看一下(Zabbix监控之agent和邮件报警配置) 1.1.一.配置自动发现: 1.1.1.1.1.打开Zabbix Web管理界面,创建Za ...

  6. zabbix mysql监控告警_Zabbix监控mysql配置及故障告警配置

    同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配置自带模板监控mysql 1.提供配置文件模板 文件位置在源码包/usr/local/src/zabbix-3.0.4/conf/za ...

  7. zabbix监控配置及邮箱告警

    zabbix监控配置及邮箱告警 zabbix监控指标 zabbix监控配置流程 zabbix监控配置流程详解 客户端配置 服务端配置 1.添加主机 2.添加监控项 使用模板添加 自定义模板 添加监控项 ...

  8. Zabbix监控流程和web界面功能

    文章目录 1 zabbix监控配置流程详解 1.1 添加监控 1.2 监控配置步骤 1.3 zabbix监控项配置 1.4 zabbix监控告警介绍与配置 2 web界面监控说明 2.1 用户设置 2 ...

  9. 搭建zabbix监控及邮件报警(超详细教学)

    zhbbix 一.zabbix 1.1 简介 1.2 zabbix主要功能 1.3 zabbix的主要特点 1.4 zabbix组件 1.5 zabbix原理 二.基于LNMP环境搭建zabbix监控 ...

最新文章

  1. C#进行单击操作、单击位置记录、捕获全局左右键单击事件
  2. Netty学习笔记(二)Netty服务端流程启动分析
  3. excel合并计算_【Excel】合并计算和模拟分析的应用
  4. 【计算机算法设计与分析】——排序
  5. android usb触摸屏驱动 win10,Win10手机居然这样兼容安卓:直接运行apk!
  6. 2021计算机一级模拟29套,“智慧家”2021年第二十九期每周家庭套餐
  7. SAP License:SAP与ORACLE到底谁更强?
  8. 深入理解Java String 池概念(String pool concept)
  9. python 自动补全函数括号_三分钟,让你弄清楚Python中函数的括号使用
  10. 批量 // 注释替换为 /*的注释
  11. OneNote插件Notehighlight个性化设置
  12. 接口自动化第四篇----应用工厂模式下的HttpClient请求
  13. 记录一些遇见的bug——Lombok和Mapstruct的冲突导致,A component required a bean of type ‘com.XXX.controller.converter.
  14. java jpanel 层,java – 循环遍历JPanel
  15. 【uni-app】App实现二维码分享图合成(支持单张或多张)
  16. AML8726调试记录
  17. win7计算机建立无线网络连接不上,教你电脑连接不上无线网络怎么办
  18. 批处理 强制删除卸载残留文件
  19. Linux命令·mv
  20. Access数据库及注入方法

热门文章

  1. 即刻发光!武汉国金天地街区亮灯啦!
  2. 密码学入门(2):对称密码
  3. 洛谷P1150 Peter的烟(逻辑建模)
  4. 重磅 | 西安思考:“2018国际人工智能院长论坛”专家思想分享
  5. 网络游戏协议测试(接口测试)的一些总结
  6. python Django音乐推荐系统
  7. 智能手表APP方案开发公司那个好
  8. iOS框架介绍--EF字头
  9. Mysql-mmm高可用集群(有mysql环境)
  10. linux系统横杆,linux横杠怎么打