文章目录
- 一、背景介绍
- 二、为什么用这个
- 三、安装Collectd
-
- 3.1 尝试docker安装
- 3.2尝试执行linux命令一步一步安装
-
- 安装collectd
- 设置将数据写入日志文件
- 设置将数据写入rrd文件。
一、背景介绍
Collectd官网:https://collectd.org/
二、为什么用这个
我之前用过Sigar,一个jar包,引入就可以直接用,之所以不用它原因是,它于2010年停止维护了,所以显得有点老,就没使用它,于是做了Collectd调研,想用它,但是前提是先安装环境。
三、安装Collectd
3.1 尝试docker安装
先搜索collectd镜像,结果如图。
docker search collectd
2.
docker pull collectd/ci
查看镜像是否已经下载好,执行命令,结果如图。
docker images
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
5.
3.2尝试执行linux命令一步一步安装
我是参照的这个博主的博客进行尝试安装的 → :CentOS7下collectd简单安装使用
安装collectd
安装collectd和epel:
yum -y install epel* yum -y install collectd
开启服务并设置开机启动
systemctl start collectd systemctl enable collectd
设置配置文件,默认的配置文件/etc/collectd.conf,收集的数据通过不同的收集插件定义,默认collectd收集的数据有。
LoadPlugin cpu LoadPlugin interface LoadPlugin load LoadPlugin memory
无注释表示启用了该插件。
#表示该插件开发完毕,可以使用(需要下载相应的插件包,然后取消注释)
##表示该插件还未完成,无法使用。
默认收集间隔是 10s一次
每个插件都有单独的配置,不设置就使用插件的默认配置。
设置将日志写入单独的日志文件,编辑配置文件。
vim /etc/collectd.conf
#LoadPlugin syslog LoadPlugin logfile <Plugin logfile> LogLevel info File "/var/log/collectd.log" Timestamp true PrintSeverity false </Plugin>
重启collectd
systemctl restart collectd
查看日志
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]
设置将数据写入日志文件
一般是不会写入日志文件当作write pulgin的。只是用来测试数据收集是否成功。编辑配置文件。
vim /etc/collectd.conf
LoadPlugin write_log
重启collectd
systemctl restart collectd
查看日志
[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文件。
先介绍下rrd是干啥用的,如图,所以有必要开启
我试过执行命令: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 的副本
2.
[root@repository var]# yum install rrdtool-devel 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * epel: mirrors.tuna.tsinghua.edu.cn 没有可用软件包 rrdtool-devel。 错误:无须任何处理
3.
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rrdtool-1.4.8-9.el7.x86_64.rpm
安装rrdtool包
sudo yum install rrdtool-1.4.8-9.el7.x86_64.rpm
再执行安装collectd-rrdtool
yum -y install collectd-rrdtool
验证安装是否成功,如图就代表安装成功了
rrdtool --version
7.
vim /etc/collectd.conf
LoadPlugin rrdtool #<Plugin rrdtool> # DataDir "/var/lib/collectd/rrd" # CreateFilesAsync false # CacheTimeout 120 # CacheFlush 900 # WritesPerSecond 50 #</Plugin>
重启服务
systemctl restart collectd
rrd数据保存位置/var/lib/collectd/rrd,查看是否有写入rrd文件,发现确实写入了,只不过文件是二进制的编译乱码而已。
到这里就说明Collectd服务已经开启了,且能写入rrd文件了,这个rrd文件就是供其他软件查询使用的,比如grafana、influxdb、Prometheus等等使用。