如何在Ubuntu 14.04上配置Collectd以收集系统指标并发送至Graphite

介绍

收集和可视化数据是做出关于服务器和项目的明智决策的重要方式。

在之前的指南中,我们讨论了如何安装和配置 Graphite 来可视化我们服务器上的数据。然而,我们没有一个很好的方法来收集或者传递数据到 Graphite。

在本指南中,我们将讨论安装和使用 collectd,这是一个系统统计信息收集器,可以收集和组织关于服务器和运行服务的指标。

我们将向您展示如何安装和配置 collectd 来传递数据到 Graphite 进行渲染。我们将假设您已经在 Ubuntu 14.04 服务器上安装并运行了 Graphite,就像我们在上一篇指南中向您展示的那样。

安装 Collectd

我们要做的第一件事是安装 collectd。我们可以从默认仓库获取它。

刷新本地软件包索引,然后输入以下命令进行安装:

sudo apt-get update
sudo apt-get install collectd collectd-utils

这将安装守护程序和一个辅助控制界面。我们仍然需要配置它,以便它知道将收集的数据传递给 Graphite。

配置 Collectd

首先,使用 root 权限在编辑器中打开 collectd 配置文件:

sudo nano /etc/collectd/collectd.conf

我们应该设置的第一件事是我们所在机器的主机名。Collectd 可以用于将信息发送到远程 Graphite 服务器,但是在本指南中我们将在同一台机器上使用它。您可以选择任何您喜欢的名称:

Hostname "<span class="highlight">graph_host</span>"

如果您已经配置了真实的域名,您可以跳过这一步,只需保留 FQDNLookup,这样服务器将使用 DNS 系统获取正确的域名。

您可能会注意到有一个 “Interval” 参数,这是 collectd 在查询主机上的数据之前等待的时间间隔。默认设置为 10 秒。如果您在 Graphite 文章中跟随操作,您会注意到这是 Graphite 跟踪统计信息的通常最短间隔。这两个值必须匹配才能可靠记录数据。

接下来,我们立即进入 Collectd 将收集信息的服务。Collectd 通过使用插件来实现这一点。大多数插件用于从系统中读取信息,但也有插件用于定义发送信息的位置。Graphite 就是其中之一。

对于本指南,我们将确保启用以下插件。您可以注释掉任何其他插件,或者如果您想在主机上尝试它们,也可以开始配置它们:

LoadPlugin apache
LoadPlugin cpu
LoadPlugin df
LoadPlugin entropy
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin rrdtool
LoadPlugin users
LoadPlugin write_graphite

其中一些需要配置,而另一些则可以直接使用。

继续向下滚动文件,我们来到每个插件的配置部分。插件通过为每个配置部分定义一个 “块” 来进行配置。这在某种程度上类似于 Apache 在块内部对指令进行分隔。由于大多数插件的工作方式都很好,我们只会看一些插件的配置。

我们启用了 Apache 插件,因为我们已经安装了 Apache 来提供 Graphite 服务。我们可以使用一个简单的部分来配置 Apache 插件,看起来像这样:

<Plugin apache>
    <Instance "Graphite">
        URL "http://<span class="highlight">domain_name_or_IP</span>/server-status?auto"
        Server "apache"
    </Instance>
</Plugin>

在生产环境中,您可能希望将服务器统计信息保护在身份验证层后面。您可以查看文件中此部分的注释代码,以了解它是如何工作的。为简单起见,我们将演示一个不需要身份验证的开放设置。

我们将稍后创建 Apache 的 server-status 页面,以便为我们提供所需的详细信息。

对于 df 插件,它告诉我们磁盘有多满,我们可以添加一个简单的配置,看起来像这样:

<Plugin df>
    Device "/dev/<span class="highlight">vda</span>"
    MountPoint "/"
    FSType "ext3"
</Plugin>

您应该将设备指向系统上驱动器的设备名称。您可以通过在终端中输入以下命令来找到这个名称:

df

选择您希望监视的网络接口:

<Plugin interface>
    Interface "<span class="highlight">eth0</span>"
    IgnoreSelected false
</Plugin>

最后,我们来到 Graphite 插件。这将告诉 collectd 如何连接到我们的 Graphite 实例。使部分看起来像这样:

<Plugin write_graphite>
    <Node "<span class="highlight">graphing</span>">
        Host "localhost"
        Port "2003"
        Protocol "tcp"
        LogSendErrors true
        Prefix "collectd."
        StoreRates true
        AlwaysAppendDS false
        EscapeCharacter "_"
    </Node>
</Plugin>

这告诉我们的守护程序如何连接到 Carbon 以传递其数据。我们指定它应该在本地计算机上的 2003 端口上查找,这是 Carbon 用于监听 TCP 连接的端口。

接下来,我们告诉它使用该协议可靠地传递数据给 Carbon。我们告诉它记录有关传递的错误,并设置数据的前缀。由于我们以句点结尾,这台主机的所有 collectd 统计信息将存储在 “collectd” 目录中。

存储速率确定是否在传递之前将统计信息转换为仪表。如果启用,追加数据源行将在启用时将节点名称附加到我们的指标中。转义字符确定如何转换具有句点的某些值,以避免 Carbon 将它们拆分为目录。

完成后保存并关闭文件。

配置 Apache 报告统计信息

在我们的配置文件中,我们已经启用了 Apache 统计信息跟踪。但是我们仍然需要配置 Apache 来允许这一功能。

在我们为 Graphite 启用的 Apache 虚拟主机文件中,我们可以添加一个简单的位置块,告诉 Apache 报告统计信息。

在文本编辑器中打开文件:

sudo nano /etc/apache2/sites-available/apache2-graphite.conf

在“content”位置块下面,我们将添加另一个块,以便 Apache 在 /server-status 页面提供统计信息。添加以下部分:

Alias /content/ /usr/share/graphite-web/static/
    <Location "/content/">
        SetHandler None
    </Location>

    <Location "/server-status">
        SetHandler server-status
        Require all granted
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/graphite-web_error.log

完成后保存并关闭文件。

现在,我们可以重新加载 Apache 以访问新的统计信息:

sudo service apache2 reload

我们可以通过在网页浏览器中访问页面来检查一切是否正常工作。只需在我们的域名后面加上 /server-status

http://<span class="highlight">domain_name_or_IP</span>/server-status

您应该会看到类似以下的页面:

!server stats

设置存储模式和聚合

现在我们已经配置了 collectd 来收集有关您的服务的统计信息,我们需要调整 Graphite 以正确处理收到的数据。

让我们首先创建一个存储模式定义。打开存储模式配置文件:

sudo nano /etc/carbon/storage-schemas.conf

在文件中,我们需要添加一个定义,以规定信息保留的时间以及各个级别的数据详细程度。

我们将告诉 Graphite 以十秒的间隔在一天内存储 collectd 信息,在七天内以一分钟的间隔存储,在一年内以十分钟的间隔存储。

这将为我们提供最近活动的详细信息和长期趋势的一般趋势之间的良好平衡。Collectd 传递其指标,以字符串 collectd 开头,因此我们将匹配该模式。

我们可以通过添加以下行来添加所描述的策略。请记住,在默认策略之上添加这些行,否则它们将永远不会被应用:

[collectd]
pattern = ^collectd.*
retentions = 10s:1d,1m:7d,10m:1y

完成后保存并关闭文件。

重新加载服务

现在 collectd 已经配置,Graphite 知道如何处理其数据,我们可以重新加载服务。

首先,重新启动 Carbon 服务。最好使用“stop”命令,然后在重新启动之前等待几秒钟,而不是使用“restart”命令。这可以确保在重新启动之前完全刷新数据:

sudo service carbon-cache stop          ## 在此等待几秒钟
sudo service carbon-cache start

Carbon 服务再次运行后,我们可以对 collectd 执行相同的操作。该服务可能尚未运行,但这将确保它正确处理数据:

sudo service collectd stop
sudo service collectd start

完成后,您可以再次访问您的域名,您应该会看到一个包含 collectd 信息的新树:

!collectd tree

结论

我们的 collectd 配置已经完成,我们的统计信息已经被记录!现在,我们已经配置了一个守护进程来跟踪我们的服务器和服务。

我们可以根据需要配置或编写 collectd 的其他插件。其他具有 collectd 的服务器也可以将数据发送到我们的 Graphite 服务器。Collectd 主要用于收集有关常见服务和整个机器的统计信息。

在下一篇文章中,我们将设置 StatsD,这是一个可以在将数据刷新到 Graphite 之前缓存数据的服务。这将使我们能够解决在发送统计信息过快时出现数据丢失的问题,这是我们在上一篇文章中描述的。它还将为我们提供一个界面,用于跟踪我们自己的程序和项目中的统计信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/550392.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 试图

视图功能在 5.0 以后的版本启用 视图是一张虚表。数据表确实包含了具体数据并且保存到硬盘中的实表。视图使用数据检索语句动态生 成的一张虚表。每一次数据服务重启或者系统重启之后&#xff0c;在数据库服务启动期间&#xff0c;会使用创建视图的语 句重新生成视图中的数据&…

这家物流装备公司突破天际:销售额飙升至10亿美元,引领仓储机器人革命!...

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 法国的Exotec公司在仓储自动化领域取得了显著成就&#xff0c;其销售额已超过10亿美元&#xff0c;成为全球物料搬…

考研数学|《1800》《1000》《660》《880》如何搭配❓

这几本书都是不同阶段对应的习题册 我觉得最舒服的使用就是方式就是基础阶段用《1800题基础部分》然后强化阶段主要刷《880题》并且强化阶段带着刷《660题》 上面是我的使用方式。之所以没有刷《1000题》是因为这本习题册的难度对我来说还是太大了&#xff0c;并且计算量很大…

上海计算机学会 2023年10月月赛 乙组T3 树的连通子图(树、树形dp)

第三题&#xff1a;T3树的连通子图 标签&#xff1a;树、树形 d p dp dp题意&#xff1a;给定一棵 n n n个结点的树&#xff0c; 1 1 1号点为这棵树的根。计算这棵树连通子图的个数&#xff0c;答案对 1 , 000 , 000 , 007 1,000,000,007 1,000,000,007取余数。题解&#xff1…

HTML内联框架

前言&#xff1a; 我们有时候打开网页时会有广告窗的出现&#xff0c;而这些窗口并不是来自于本站的&#xff0c;而是来自于外部网页&#xff0c;只是被引用到了自己网页中而已。这一种技术可以通过内联来实现。 标签介绍&#xff1a; HTML 内联框架元素 (<iframe>) 表示…

基于Springboot的影城管理系统

基于SpringbootVue的影城管理系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页展示 电影信息 电影资讯 后台登录页 后台首页 用户管理 电影类型管理 放映…

RAG (Retrieval Augmented Generation) 结合 LlamaIndex、Elasticsearch 和 Mistral

作者&#xff1a;Srikanth Manvi 在这篇文章中&#xff0c;我们将讨论如何使用 RAG 技术&#xff08;检索增强生成&#xff09;和 Elasticsearch 作为向量数据库来实现问答体验。我们将使用 LlamaIndex 和本地运行的 Mistral LLM。 在开始之前&#xff0c;我们将先了解一些术…

vue3 生命周期(生命周期钩子 vs 生命周期选项 vs 缓存实例的生命周期)

vue3 支持两种风格书写&#xff1a;选项式 API 和组合式 API 若采用组合式 API &#xff0c;则使用生命周期钩子若采用选项式 API &#xff0c;则使用生命周期选项两者选用一种即可&#xff0c;不建议同时使用&#xff0c;避免逻辑紊乱。 生命周期钩子 在 setup 中使用 onBefo…

Vue 阶段练习:记事本

将 Vue快速入门 和 Vue 指令的学习成果应用到实际场景中&#xff08;如该练习 记事本&#xff09;&#xff0c;我们能够解决实际问题并提升对 Vue 的技能掌握。 目录 功能展示 需求分析 我的代码 案例代码 知识点总结 功能展示 需求分析 列表渲染删除功能添加功能底部统计…

3D目标检测实用技巧(二)- 实现点云(or 体素)向图像平面的投影并可视化

一、引言 受Focals Conv的启发&#xff0c;该论文中通过将点云投影到图片中清晰展现出点云学习后的情况&#xff1a; 本次实现的是体素向图像投影并显示&#xff0c;实现出来的效果如下&#xff1a; 二、 实现细节 1、体素投影到图像坐标系 这里我们参考的是VirConv的投影函…

通过matlab分别对比PSO,反向学习PSO,多策略改进反向学习PSO三种优化算法

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 粒子群优化算法 (PSO) 4.2 反向学习粒子群优化算法 (OPSO) 4.3 多策略改进反向学习粒子群优化算法 (MSO-PSO) 5.完整程序 1.程序功能描述 分别对比PSO,反向学习PSO,多策略改进反向学…

百货商场用户画像描绘与价值分析

目录 内容概述数据说明实现目标技术点主要内容导入模块1.项目背景1.1 项目背景与挖掘目标 2.数据探索与预处理2.1 结合业务对数据进行探索并进行预处理2.2 将会员信息表和销售流水表关联与合并 3 统计分析3.1 分析会员的年龄构成、男女比例等基本信息3.2 分析会员的总订单占比&…

Python 入门指南(四)

原文&#xff1a;zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十章&#xff1a;哈希和符号表 我们之前看过列表&#xff0c;其中项目按顺序存储并通过索引号访问。索引号对计算机来说很有效。它们是整…

使用 Docker 部署 SurveyKing 调查问卷系统

1&#xff09;SurveyKing 介绍 SurveyKing 是一款功能强大、操作简便的开源问卷系统。它不仅满足了用户对问卷调查的基本需求&#xff0c;还提供了丰富的逻辑设置和灵活的问题设置&#xff0c;使得问卷制作更加智能化和个性化。此外&#xff0c;SurveyKing 还具有快速部署和安全…

笔记本电脑上的聊天机器人: 在英特尔 Meteor Lake 上运行 Phi-2

对应于其强大的能力&#xff0c;大语言模型 (LLM) 需要强大的算力支撑&#xff0c;而个人计算机上很难满足这一需求。因此&#xff0c;我们别无选择&#xff0c;只能将它们部署至由本地或云端托管的性能强大的定制 AI 服务器上。 为何需要将 LLM 推理本地化 如果我们可以在典配…

elmentui树形表格使用Sortable拖拽展开行时拖拽bug

1、使用elemntui的el-table使用Sortable进行拖拽&#xff0c;如下 const el this.$el.querySelector(.el-table__body-wrapper tbody) Sortable.create(el, {onEnd: (event) > {const { oldIndex, newIndex } event//拿到更新前后的下标即可完成数据的更新} })2、但是我这…

docker 环境变量设置实现方式

1、前言 docker在当前运用的越来广泛&#xff0c;很多应用或者很多中间软件都有很多docker镜像资源&#xff0c;运行docker run 启动镜像资源即可应用。但是很多应用或者中间件有很多配置参数。这些参数在运用过程怎么设置给docker 容器呢&#xff1f;下面介绍几种方式 2 、do…

Day91:API攻防-接口安全SOAPOpenAPIRESTful分类特征导入项目联动检测

目录 API分类特征-SOAP&OpenAPI&RESTful API分类特征 API常见漏洞 API检测流程 API检测项目-Postman&APIKit&XRAY 工具自动化-SOAP - WSDL Postman 联动burpxray APIKit插件(可联动xray) 工具自动化-OpenApi - Swagger Postman 联动burpxray APIKit…

HarmonyOS开发实例:【分布式邮件】

概述 基于TS扩展的声明式开发范式编程语言编写的一个分布式邮件系统&#xff0c;可以由一台设备拉起另一台设备&#xff0c;每次改动邮件内容&#xff0c;都会同步更新两台设备的信息。效果图如下&#xff1a; 搭建OpenHarmony开发环境 完成本篇Codelab我们首先要完成开发环境…

OpenStack:开源云计算的崛起与发展

目录 一&#xff0c;引言 二&#xff0c;OpenStack的起源 三&#xff0c;OpenStack的版本演进 四&#xff0c;OpenStack跟虚拟化的区别 五&#xff0c;OpenStack组件介绍 1&#xff09;Horizon介绍 2&#xff09;KeyStone介绍 Keystone 功能概览 Keystone 架构详解 3&a…
最新文章