telegraf是一个收集监控项的agent,有支持收集多种数据的插件比如ceph,apache,docker,haproxy,system等,同时有支持多种输出的插件比如influxdb,graphite等。

        influxdb是时序数据库,多用于监控场景

        grafana是很棒的绘图工具

        这三者的结合有三个主要过程:

                1.安装在ceph集群所有节点(包括mon和osd节点)上的telegraf通过ceph_input插件收集ceph集群信息,这里踩了两个坑,ceph_input插件报了两个错,一个是error reading from socket '/var/run/ceph/ceph-mon.control-1.asok': error running ceph dump: exit status 22,另一个是ERROR in input [inputs.ceph]: error executing command: error running ceph status: exit status 1。经过排除第一个报错算是telegraf的bug,需要给ceph进程的sock文件添加w权限,第一个报错是因为执行telegraf进程的用户没有ceph_client_admin的keyring文件的读权限。解决这两个问题,telegraf ceph_input插件就能正常工作了。

                2.telegraf通过ceph_input 插件收集到ceph的信息后通过influxdb_ouput将数据写入influxdb,influxdb数据库通过8086端口接收数据,好像还支持udp协议。

                3.grafana从influxdb获取数据绘图。

来一张效果图

使用telegraf+influxdb+grafana监控ceph集群_第1张图片


后面安排时间写个详细点的