首页 > 系统相关 >Centos7.9版本安装collectd并开启写入rrd文件功能

Centos7.9版本安装collectd并开启写入rrd文件功能

时间:2023-07-29 20:06:36浏览次数:44  
标签:x86 rrd collectd write Centos7.9 64 el7 14


Centos7.9版本安装collectd并开启写入rrd文件功能_安装collectd


文章目录

  • 一、背景介绍
  • 二、为什么用这个
  • 三、安装Collectd
  • 3.1 尝试docker安装
  • 3.2尝试执行linux命令一步一步安装
  • 安装collectd
  • 设置将数据写入日志文件
  • 设置将数据写入rrd文件。


一、背景介绍

Collectd官网:https://collectd.org/

Centos7.9版本安装collectd并开启写入rrd文件功能_开启写入rrd文件功能_02


Collectd是一款开源的系统统计守护进程,用于收集、处理和存储各种系统性能指标。它可以在多个操作系统上运行,并且支持许多不同类型的插件来收集各种数据。

Collectd的主要功能包括:

数据收集:Collectd可以定期地从系统和应用程序中收集各种性能指标,如CPU使用率、内存使用情况、磁盘IO、网络流量等。

插件系统:Collectd提供了一个可插拔的架构,可以通过各种插件来收集不同类型的数据。这些插件可以用于监控硬件、操作系统和各种应用程序。

数据处理和存储:Collectd可以对收集到的数据进行处理和转换,如数据聚合、过滤和格式化。它还可以将数据存储到各种后端,如RRD文件、数据库或远程服务器。

监控和告警:Collectd可以通过与其他监控工具(如Grafana、Prometheus等)的集成来实现实时监控和告警功能。它可以根据预定义的规则触发警报,以便及时采取措施解决问题。

可视化:Collectd可以与各种可视化工具集成,以创建漂亮的图表和仪表板,帮助用户更直观地了解系统性能和趋势。

总的来说,Collectd是一个强大的系统监控工具,可以提供实时、准确的系统性能指标,并帮助管理员及时发现和解决潜在问题。它在大型分布式环境和云计算环境中广泛应用,并被认为是一种可靠的解决方案。

二、为什么用这个

需求:我们项目向监控操作系统的CPU、内存、网络、磁盘等到信息。

我之前用过Sigar,一个jar包,引入就可以直接用,之所以不用它原因是,它于2010年停止维护了,所以显得有点老,就没使用它,于是做了Collectd调研,想用它,但是前提是先安装环境。

Centos7.9版本安装collectd并开启写入rrd文件功能_collectd_03

三、安装Collectd

3.1 尝试docker安装

  1. 先搜索collectd镜像,结果如图。
docker search collectd

Centos7.9版本安装collectd并开启写入rrd文件功能_collectd_04


2. 从dockerHub上看collectd/ci镜像应该是咱们需要的,下载它。

docker pull collectd/ci
  1. 查看镜像是否已经下载好,执行命令,结果如图。
docker images

Centos7.9版本安装collectd并开启写入rrd文件功能_Centos7_05


4. 执行命令运行它

docker run  --name my-collectd -v /var/collectd/collectd.conf:/etc/collectd/collectd.conf -v /var/collectd/rrd:/var/lib/collectd/rrd -d collectd/ci:fedora38_x86_64

Centos7.9版本安装collectd并开启写入rrd文件功能_Centos安collectd_06

5.结果是:显示启动就停止了,我尝试了好几次发现都不行,不知道为啥,所以只能放弃该方式安装部署了。

Centos7.9版本安装collectd并开启写入rrd文件功能_安装collectd_07

3.2尝试执行linux命令一步一步安装

我是参照的这个博主的博客进行尝试安装的 → :CentOS7下collectd简单安装使用

安装collectd

  1. 安装collectd和epel:
yum -y install epel*
yum -y install collectd
  1. 开启服务并设置开机启动
systemctl start collectd
systemctl enable collectd
  1. 设置配置文件,默认的配置文件/etc/collectd.conf,收集的数据通过不同的收集插件定义,默认collectd收集的数据有。
LoadPlugin cpu
LoadPlugin interface
LoadPlugin load
LoadPlugin memory

无注释表示启用了该插件。
#表示该插件开发完毕,可以使用(需要下载相应的插件包,然后取消注释)
##表示该插件还未完成,无法使用。
默认收集间隔是 10s一次
每个插件都有单独的配置,不设置就使用插件的默认配置。

  1. 设置将日志写入单独的日志文件,编辑配置文件。
vim /etc/collectd.conf
#LoadPlugin syslog
LoadPlugin logfile

<Plugin logfile>
        LogLevel info
        File "/var/log/collectd.log"
        Timestamp true
        PrintSeverity false
</Plugin>
  1. 重启collectd
systemctl restart collectd
  1. 查看日志
tail -f /var/log/collectd.log
[root@client2 ~]# tail -f /var/log/collectd.log 
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:24 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Filter subsystem: Built-in target `write': Dispatching value to all write plugins failed with status 2 (ENOENT). Most likely this means you didn't load any write plugins.
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]
Jan  4 14:24:34 client2 collectd[10794]: Available write targets: [none]

注意:collectd必须要设置一个write pulgin 写插件,可以将收集的数据写入日志、rdd文件、server端、influxdb数据库。总之必须设置一个,不然collectd无用。

设置将数据写入日志文件

  1. 一般是不会写入日志文件当作write pulgin的。只是用来测试数据收集是否成功。编辑配置文件。
vim /etc/collectd.conf
LoadPlugin write_log
  1. 重启collectd
systemctl restart collectd
  1. 查看日志
[root@server ~]# tail -f /var/log/collectd.log 

[2021-01-04 14:39:37] write_log values:
server.memory.memory-free 248778752 1609742377

[2021-01-04 14:39:37] write_log values:
server.memory.memory-slab_unrecl 41025536 1609742377

[2021-01-04 14:39:37] write_log values:
server.memory.memory-slab_recl 39510016 1609742377

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-user 2452 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-system 2868 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-wait 2547 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-nice 153 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-interrupt 0 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-softirq 77 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-steal 0 1609742387

[2021-01-04 14:39:47] write_log values:
server.cpu-0.cpu-idle 241882 1609742387

[2021-01-04 14:39:47] write_log values:
server.interface-lo.if_packets.rx 0 1609742387
server.interface-lo.if_packets.tx 0 1609742387

可以看到数据成功写入日志文件了。

注意:到这里之前基本很多人都能按照博客执行成功,而后面开始安装rrd插件开始就会出现各种问题了。

设置将数据写入rrd文件。

collectd将数据以rrd文件形式保存,需要相应的rrdtool包。除了基本的几个,其余的collectd插件基本都需要单独安装插件包才能使用。

先介绍下rrd是干啥用的,如图,所以有必要开启

Centos7.9版本安装collectd并开启写入rrd文件功能_collectd_08

  1. 我试过执行命令:yum -y install collectd-rrdtool,这一步我就不成功,报错如图
[root@repository var]# yum -y install collectd-rrdtool.x86_64
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: mirrors.tuna.tsinghua.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 collectd-rrdtool.x86_64.0.5.8.1-1.el7 将被 安装
--> 正在处理依赖关系 librrd_th.so.4()(64bit),它被软件包 collectd-rrdtool-5.8.1-1.el7.x86_64 需要
--> 解决依赖关系完成
错误:软件包:collectd-rrdtool-5.8.1-1.el7.x86_64 (epel)
          需要:librrd_th.so.4()(64bit)
 您可以尝试添加 --skip-broken 选项来解决该问题
** 发现 21 个已存在的 RPM 数据库问题, 'yum check' 输出如下:
7:device-mapper-1.02.170-6.el7.x86_64 是 7:device-mapper-1.02.158-2.el7.x86_64 的副本
7:device-mapper-event-1.02.170-6.el7.x86_64 是 7:device-mapper-event-1.02.158-2.el7.x86_64 的副本
7:device-mapper-event-libs-1.02.170-6.el7.x86_64 是 7:device-mapper-event-libs-1.02.158-2.el7.x86_64 的副本
7:device-mapper-libs-1.02.170-6.el7.x86_64 是 7:device-mapper-libs-1.02.158-2.el7.x86_64 的副本
device-mapper-persistent-data-0.8.5-3.el7.x86_64 是 device-mapper-persistent-data-0.8.5-1.el7.x86_64 的副本
ipvsadm-1.27-8.el7.x86_64 是 ipvsadm-1.27-7.el7.x86_64 的副本
kubeadm-1.15.3-0.x86_64 有缺少的需求 kubectl >= ('0', '1.13.0', None)
libseccomp-2.4.3-alt1.x86_64 是 libseccomp-2.3.1-4.el7.x86_64 的副本
libselinux-2.5-15.el7.x86_64 是 libselinux-2.5-14.1.el7.x86_64 的副本
libselinux-python-2.5-15.el7.x86_64 是 libselinux-python-2.5-14.1.el7.x86_64 的副本
libselinux-utils-2.5-15.el7.x86_64 是 libselinux-utils-2.5-14.1.el7.x86_64 的副本
7:lvm2-2.02.187-6.el7.x86_64 是 7:lvm2-2.02.185-2.el7.x86_64 的副本
7:lvm2-libs-2.02.187-6.el7.x86_64 是 7:lvm2-libs-2.02.185-2.el7.x86_64 的副本
ntp-4.2.6p5-29.el7.centos.2.x86_64 是 ntp-4.2.6p5-29.el7.centos.x86_64 的副本
ntpdate-4.2.6p5-29.el7.centos.2.x86_64 是 ntpdate-4.2.6p5-29.el7.centos.x86_64 的副本
policycoreutils-2.5-34.el7.x86_64 是 policycoreutils-2.5-33.el7.x86_64 的副本
policycoreutils-python-2.5-34.el7.x86_64 是 policycoreutils-python-2.5-33.el7.x86_64 的副本
selinux-policy-3.13.1-268.el7.noarch 是 selinux-policy-3.13.1-252.el7.1.noarch 的副本
selinux-policy-targeted-3.13.1-268.el7.noarch 是 selinux-policy-targeted-3.13.1-252.el7.1.noarch 的副本
sysstat-10.1.5-19.el7.x86_64 是 sysstat-10.1.5-18.el7.x86_64 的副本
yum-utils-1.1.31-54.el7_8.noarch 是 yum-utils-1.1.31-52.el7.noarch 的副本

报错显示:错误:软件包:collectd-rrdtool-5.8.1-1.el7.x86_64 (epel)需要:librrd_th.so.4()(64bit),然后查询这个“librrd_th.so.4()(64bit)”是啥,如下图:

Centos7.9版本安装collectd并开启写入rrd文件功能_安装collectd_09


2. 于是我尝试执行:sudo yum install rrdtool 和 sudo yum install rrdtool-devel,报错如图

[root@repository var]# yum install rrdtool-devel
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: mirrors.tuna.tsinghua.edu.cn
没有可用软件包 rrdtool-devel。
错误:无须任何处理

错误显示:没有rrdtool包或者rrdtool-devel包,说明自己软库中压根没有叫这个名字的包
3. 因此不能采用yum方式安装rrdtool,只能考虑其他方式,比如自己手动下载包安装方式,如下

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rrdtool-1.4.8-9.el7.x86_64.rpm
  1. 安装rrdtool包
sudo yum install rrdtool-1.4.8-9.el7.x86_64.rpm
  1. 再执行安装collectd-rrdtool
yum -y install collectd-rrdtool
  1. 验证安装是否成功,如图就代表安装成功了
rrdtool --version

Centos7.9版本安装collectd并开启写入rrd文件功能_安装collectd_10


7. 修改配置文件,插件rrdtool设置使用默认的即可

vim /etc/collectd.conf
LoadPlugin rrdtool

#<Plugin rrdtool>
#       DataDir "/var/lib/collectd/rrd"
#       CreateFilesAsync false
#       CacheTimeout 120
#       CacheFlush   900
#       WritesPerSecond 50
#</Plugin>
  1. 重启服务
systemctl restart collectd
  1. rrd数据保存位置/var/lib/collectd/rrd,查看是否有写入rrd文件,发现确实写入了,只不过文件是二进制的编译乱码而已。

Centos7.9版本安装collectd并开启写入rrd文件功能_collectd_11

到这里就说明Collectd服务已经开启了,且能写入rrd文件了,这个rrd文件就是供其他软件查询使用的,比如grafana、influxdb、Prometheus等等使用。

补充:本来想尝试安装collectd-web插件,也就是可视化的collectd的,结果碰到各种安装问题,比如缺少依赖模块等等,导致最终安装不成功,所以就没写。官网的这个图其实就是可视化插件展示的效果。

Centos7.9版本安装collectd并开启写入rrd文件功能_Centos7_12


标签:x86,rrd,collectd,write,Centos7.9,64,el7,14
From: https://blog.51cto.com/u_15896157/6895000

相关文章

  • centos7.9 ftp 搭建
    脚本使用介绍:执行脚本根据提示输入ftp密码即可默认目录/data/ftp,如需更改修改脚本第三行:ftp_dir='/data/ftp' 将/data/ftp替换默认用户名ftpuser如需更改,修改脚本第四行部署完成配置文件默认设置为只能ftp用户访问ftp服务,只允许访问ftp目录不能访问其他路径。需要......
  • rrdtool的使用介绍
    rrdtool的使用介绍rrdtool的介绍rrdtool(roundrobindatabase)工具为环状数据库的存储格式。roundrobin是一种处理定量数据以及当前元素指针的技术。rrdtool主要用来跟踪对象的变化情况,生成这些变化的走势图,比如业务的访问流量,系统性能,磁盘利用率等趋势图,很多流行监控平台都使......
  • centos7.9离线安装mysql5.7.42(本文使用initialize安装方法)
    centos7.9离线安装mysql5.7.42(本文使用initialize安装方法)一、卸载CentOS7系统自带mariadb#查看系统自带的Mariadb[root@NIWAY-190~]#rpm-qa|grepmariadbmariadb-libs-5.5.68-1.el7.x86_64#卸载系统自带的Mariadb[root@NIWAY-190~]#rpm-e--nodepsmariadb-libs-5.5.68-......
  • NRRD批量转换成NIFTI
    3Dslicer,MITK默认会将医学图像保存为格式为NRRD的图像,但是我们还是习惯于操作NIFTI格式的数据,于是就有了NRRD转换成NIFTI的需求。之前自己有一个比较笨的方法,就是将NRRD图像导入到MITK软件中,然后再另存成NIFTI的数据。如果数据少,还可以接受。但是当数据比较多时,这种方法过于......
  • Centos7.9系统docker部署plexServer,打造个人影音服务器
    1.准备工作1.1部署docker安装依赖包yum-yinstallgccgcc-c++yum-utilsdevice-mapper-persistent-datalvm2设置stable镜像仓库yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo或yum-config-manager--add-repohttp://mirrors.al......
  • 在CentOS7.9上搭建以太坊私链
    为了方便了解以太坊的操作流程,故在CentOS7上搭建以太坊的私链。下面,介绍在CentOS7.9x64上部署以太坊的私链。    常用的以太坊源码是用Go语言编写的,所以要安装Go。这里选择Go1.15.6。1、搭建Go软件环境    安装方法,请参考这篇文章:https://blog.csdn.net/sanqima/art......
  • CentOS7.9 k8s集群环境搭建
    环境搭建本次环境搭建需要安装三台Centos服务器(一主二从),k8s采用1.25.4版本主机安装安装虚拟机过程中注意下面选项的设置:操作系统环境:CPU(2C)内存(4G)硬盘(50G)语言选择:English软件选择:基础设施服务器分区选择:自动分区网络配置:按照下面配置网路地址信息主机名设置:按照下面信......
  • CentOS7.9离线部署Kubernetes 1.27.2
    1、节点介绍 ,最小化安装CentOS7.91HostNamevm8649vm8648vm86472IP10.17.86.4910.17.86.4810.17.86.472、配置网络,关闭防火墙,关闭selinux3、安装必备的软件1yuminstallvimgccwgetlrzszbash-completiongperf......
  • centos7.9制作rpm离线源
    @目录制作vsftpd离线源测试特殊情况repotrack命令在centos7.9的环境联网环境下,制作一个软件包的离线源,使用yumdownloader命令制作一些特殊软件包需要逐个拉去依赖,而使用repotrack则一键拉取,并下载所需依赖,以下进行测试制作vsftpd离线源下载制作工具[root@localhost~]#yumin......
  • centos7.9上hadoop-2.7.2伪分布式部署
    1.安装jdk1.1在Oracle官网上现在jdk1.8,然后上传到Linux服务器中1.2 安装jdk rpm-ivhjdk-8u371-linux-x64.rpm2创建部署用户hadoopuseradd-d/hadoophadoopecho123|passwd--stdinhadoop3修改/etc/hosts4使用Hadoop用户上传hadoop安装包hadoop-2.7......