随着项目中服务器越加越多,项目组需要对服务器进行更为完善的性能监控:排查问题故障的时,经常要登录到服务器上查看CPU、内存、网络、磁盘状况。作为一种高吞吐量的分布式发布订阅消息系统,kafka就是其中之一,当然还少不了elasticsearch、spark等。

服务监控指标 服务性能监控_服务器

kafka

一般来说,项目中应用集群种类较多,这些集群具备各自的应用监控能力,但是不具备整体的监控入口。在本文中我们先将服务器性能数据收集起来,做简单的展现,后面再将应用的运行信息采集用于定制的展现。这样就能不断扩展监控,第一时间了解整个项目中服务器的运行状况。

对此云端卫士工程师窦鹏辉和付大伟表示:我们在以往较早项目中已经使用了elasticsearch(1.2)、kibana(3),在了解到ELK版本升级迅速的特点后,考虑使用最新版的ELK来监控服务器性能。

本文中会提到的软件:

Logstash
ElasticSearch
Kibana
Collectd
Collectl

在这里Collectl、Collectd都是性能采集软件,结果输出不同,后面会有介绍。

主要步骤如下:

1,服务器上统一安装Collectd软件,收集服务器运行数据发送给logstash。

2,Logstash接受collectd发送过来的数据,并插入es集群中。

3,设计kibana报表,统计展现这些性能数据。

4,如需其他功能还需定制开发web应用。

5,架构简单示意如下:

服务监控指标 服务性能监控_服务器_02

安装配置

collectd安装配置

collectd 是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。它会在系统运行和存储信息时周期性的统计系统的相关统计信息

安装

在Ubuntu/Debian上:

# apt-get install collectd [On Debian based Systems]

在RHEL/CentOS 6.x/5.x上:

在基于红帽的较旧系统(比如CentOS/Fedora)上,你先需要启用系统下的epel软件库,然后你才能从epel软件库安装collectd程序包。

# yum install collectd

在RHEL/CentOS 7.x上:

在最新版本的RHEL/CentOS 7.x上,你可以从默认的yum软件库安装和启用epel软件库,如下所示。

# yum install epel-release
# yum install collectd

将Collectd安装到CentOS/RHEL/Fedora上

注意:对Fedora用户而言,不需要启用任何第三方软件库,只要运行yum命令,即可从默认的yum软件库获得collectd程序包