shengyayun 10 X 10
shengyayun:~/blog$ source "collectd的部署.sh"

shengyayun:~/blog$ printenv
CREATED_DATE = 2017-09-30
UPDATED_DATE = 2017-09-30
TAGS = collectd : centos
CATEGORIES =

shengyayun:~/blog$ grep -lr $TAGS post
2017-09-30 collectd的部署
2019-04-29 通过Dockerfile生成镜像
2019-05-04 创建Docker私有仓库
2017-09-30 grafana的部署
2019-05-13 部署Docker容器到Kubernetes
2017-09-30 influxdb的部署
2017-12-10 mongodb的Replica Sets
2020-05-02 部署一个单机模式的Nacos
2021-09-05 Prometheus
2018-09-29 SSH自动断开的解决方法
2018-09-29 voltdb的部署
collectd的部署

导言

collectd是一款性能监控程序,这里我将采用它对服务器进行监控,然后将数据写入influxdb。阅读该文档前先阅读influxdb的相关文档。

一. 安装

1
2
yum install collectd
yum install collectd-rrdtool

二. 修改配置

  1. 用vim打开/etc/collectd.conf文件。
  2. QDNLookup修改为false。如果要保留为默认的true的话,host必须与ip保持一致。
  3. 取消LoadPlugin logfile的注释,同时取消<Plugin logfile>...</Plugin>的注释,将其中File Stdout一行改为File "/var/log/collectd.log",这样collectd的日志会被单独写进这个文件里。
  4. 取消rrdtool组件的注释:
    LoadPlugin rrdtool
  5. 为了后续测试collectd功能,取消cpu组件的注释:
    LoadPlugin cpu
  6. 通过配置network组件将监控数据传给influxdb:
    1
    2
    3
    <Plugin network>
      Server "127.0.0.1" "25826"
    </Plugin>
    这里的127.0.0.1是influxdb的ip地址,25826是influxdb监听的端口号。

三. 配置influxdb的collectd插件

  1. 用vim打开/etc/influxdb/influxdb.conf文件
  2. [[collectd]]下面的enabled取消注释,并改为true
  3. [[collectd]]下面的typesdb取消注释,改为/etc/collectd.conf文件中TypesDB指向的types.db文件所在的目录
  4. 重启influxdb服务。
  5. 通过influx shell创建一个新的数据库,取名collectd。

四. 前台执行

在测试过程中发现,如果不先在前台手动执行一次collectd,直接用systemctl start collectd启动服务会导致其一直报错。执行以下指令可以让collectd在前台执行:
/usr/sbin/collectd -f
如果没有问题的话就ctrl+c结束程序。

五. 服务运行与开机自启动

1
2
systemctl start influxdb
systemctl enable influxdb

六. 测试

通过influx shell查看数据库collectd数据库,一切正常的话,里面会出现名为cpu_value的measurement。这说明collectd的cpu组件已经在不停地往influxdb写入数据了。