在Mac上安装rrdtool问题

简介: 前天用安装rrdtool时遇到一个bug:

前天用安装rrdtool时遇到一个bug:

(process:16981): GLib-GObject-CRITICAL **: gtype.c:2720: You forgot to call g_type_init()
(process:16981): GLib-CRITICAL **: void g_once_init_leave(volatile void *, gsize): assertion `result != 0' failed
(process:16981): GLib-GObject-CRITICAL **: gtype.c:2720: You forgot to call g_type_init()
(process:16981): GLib-CRITICAL **: void g_once_init_leave(volatile void *, gsize): assertion `result != 0' failed
(process:16981): GLib-GObject-CRITICAL **: gtype.c:2720: You forgot to call g_type_init()
(process:16981): GLib-GObject-CRITICAL **: gtype.c:2720: You forgot to call g_type_init()
复制代码

几番搜索后找到这个补丁: github.com/oetiker/rrd…

当然,那个补丁不能直接用,所以我又重新生成了一个 git 版的新补丁:

diff --git a/src/rrd_graph.c b/src/rrd_graph.c
index 5f70a38..303d3f3 100644
--- a/src/rrd_graph.c
+++ b/src/rrd_graph.c
@@ -4066,6 +4066,8 @@ void rrd_graph_init(
     static PangoFontMap *fontmap = NULL;
     PangoContext *context;
+    g_type_init();
+
 #ifdef HAVE_TZSET
     tzset();
 #endif
复制代码

使用这个补丁的方法是:

brew edit rrdtool
复制代码

进入 formula 的编辑界面,把上面的补丁粘贴到文件尾部存盘退出就行了。最后重新使用 brew install 在安装就能把刚才的补丁打进去。

还没来得及怎么研究把补丁提交给组织,不过,下面说说我是怎么生成这个补丁的。先要学习一下这个: github.com/mxcl/homebr…

原来 brew 可以交互式的产生补丁,直接使用以下命令可以进到一个新的shell中。

brew install --interactive --git foo
复制代码

| 然后手工修改文件,最后使用 git diff | pbcopy 将补丁粘帖到剪贴板。按 exit 退出交互式 shell。 |

简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个

应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

 

  1. SNMP版本:

V1:三种模式:1、ro 只读模式 2、RW 读写模式 3、trap模式 agent主动通知NMS。

V2:认证加强,采用community-string-based也称为V2C

V3:认证更加加强,数据传输使用加密方式。

  1. SNMP监控对象:

MIB库里面定义被监控的对象,OID采用树形结构来定义:其中1.3.6.1是用来定义internet的。1.3.6.1.2.1为mib-2 的标准库,里面包含了system,interface,at(address translation),ip,icmp,tcp,udp,egp等相关的信息定义,在linux中就可以直接使用,不用再去定义和实现。只谈internet时候:{1.3.6.1.2.1}等同于{internet(1).2.1} 也就是mib-2

网络异常,图片无法展示
|

  1. SNMP报文总计有5类:
  1. get OID:获取某个OID对应的值。
  2. get next:子节点上所有信息(只能在末端的上层使用)
  3. getbulk (v2或者V3)获取从某个OID开始,之下的OID对应的值。
  4. set 设置某个OID的值
  5. get response
  1. centos下开启snmp管理和代理的功能。

LINUX下提供SNMP功能的主要是两个包:net-snmp(agent)是snmp的代理实现,net-snmp-utils(NMS-comand) 管理端命令行。

我们在测试的情况下本机即作为代理,又作为管理端,所以两个软件都装。直接利用yum install net-snmp net-snmp-utils -y

然后进行配置。net-snmp的配置文件在/etc/snmp/snmp.conf和/etc/snmp/smtptrap.conf两个配置文件

我们先来配置/etc/snmp/snmp.conf

先定义密码,community就是指密码,source定义访问源,可以定义为其他的网络,sec.name就是指密码的名称,后面会用到。

下面的组配置 groupname就是组名称 sercuitymodel指加密版本v1还是v2c,sercurityname就是定义这个组使用哪个密码配置。

接着定义可以查看的MIB的选项,name对此view定义一个别名组,后面的授权访问会用到。subtree就是使用MIB的OID。

access定义了访问选项 group定义了访问的组,ace.model指访问版本,read 是指哪些MIB是允许读取的,write是指哪些MIB是允许写入数据的。notif哪些是运行主动通知的。

网络异常,图片无法展示
|

这里定义了community为public的密码可以访问.1.3.6.1.2.1.1 根据上图就是可以查看系统相关信息,以及.1.3.6.1.2.1.6tcp的相关信息

  1. 验证和使用snmp的相关信息
  1. 上面的默认配置我们先不进行改动,可以使用net-snmp和net-snmp-utils 来进行验证。先开启snmpd的服务

service snmpd start

然后分别查看系统和网络的相关信息

查看系统相关的:snmpwalk -v 2c -c public 192.168.8.21 system

查看TCP相关的:[root@rs1 snmp]# snmpwalk -v 2c -c public 192.168.8.21 tcp

也可以使用:[root@rs1 snmp]# snmpwalk -v 2c -c public 192.168.8.21 查看所有的SNMP信息。


相关文章
|
3月前
|
前端开发 安全 测试技术
Postman Mac 版安装终极指南:从下载到流畅运行,一步到位
Postman 是 API 开发与测试的高效工具,支持各类 HTTP 请求调试与团队协作。本文详解 Mac 版下载、安装步骤,助你快速上手。同时推荐一体化 API 协作平台 Apifox,集文档、调试、测试于一体,提升开发效率与团队协同能力。
|
6月前
|
iOS开发 MacOS 索引
在不受支持的 Mac 上安装 macOS Tahoe 26
在不受支持的 Mac 上安装 macOS Tahoe 26
396 0
在不受支持的 Mac 上安装 macOS Tahoe 26
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
9月前
|
Ubuntu Linux Shell
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
通过这个过程,用户不仅可以定制自己的桌面外观,还可以学习到更多关于 Linux 系统管理的知识,从而更好地掌握系统配置和主题管理的技巧。
1298 12
|
9月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
Oracle Java 关系型数据库
Mac电脑上安装和配置Flutter开发环境
Mac电脑上安装和配置Flutter开发环境
573 60
|
开发工具 git 开发者
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件,以增强开发功能和提升效率。通过正确配置插件,开发流程能够得到简化,开发体验也会更加顺畅。
481 1
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
|
开发工具 iOS开发 开发者
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在Mac上安装DevEco Studio
本篇将专注于如何在 Mac 上安装鸿蒙开发工具 DevEco Studio,确保开发环境能够顺利搭建。完成安装后,可以正式开始鸿蒙应用的开发工作。
884 1
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在Mac上安装DevEco Studio
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
442 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda

热门文章

最新文章