1、架构功能需求
笔者在最近的项目中遇到了需要将一个大型组织的全部交换机以及N7000核心交换机配置监控架构的需求。该需求主要有如下的条目:
- N7000配置全端口的详细上下行和监控和报错计数。
- 普通交换机配置Tel1/0/1和Tel1/0/2的上下行监控和报错计数。
- 所有交换机配置运行时间uptime和CPU使用情况监控。
在本次项目中所有交换机的型号都是思科C2960系列。
2、思路设计
由于是一个落地项目,且考虑到需求的数据更新频率是5sec,因此整个框架的数据压力并不是非常大,本着迁移方便和维护简便的原则,把所有的框架全部配置到docker容器环境下。由于N7000需要分端口监控,因此配置了两个数据抓取容器,然后汇总到同一个数据库,然后进行可视化处理。
因此我想到了使用influxdata系列的开源数据工具,这套工具包含了InfluxDB,Telegraf,Chronograf,Kapacitor四项,分别对应了数据库、数据收集、数据可视化呈现、自定义报警四个功能。俗称TICK套餐。不过在本次案例中并不需要使用Chronograf和Kapacitor,原因是有更好的替代品:Grafana。
所有的工具都架设在同一个虚拟机上,这种中小型规模的数据流并不需要集群或者hadoop之类的工具去跑,如果有数据安全的需求,在其他的物理机上对influxdb和telegraf的配置文件做一个动态增量备份就行。
具体流程如下:
其中数据的抓取处理部分全部在容器中配置。
3、具体流程
① 创建一台虚拟主机
通过VMware等工具在服务器上配置一台4核以上的虚拟机,这台虚拟机将作为容器服务器来运作。
② 安装并配置Telegraf和Influxdb
首先在虚拟机上安装telegraf和influxdb,并且配置/etc/influxdb/influxdb.conf
和/etc/telegraf/telegraf.conf
。这一步的目的是为了之后起容器的时候能够直接-v
调用相关的配置文件,同时可以轻松的修改相关的配置文件。
- 偷懒方法 如果已经在其他机器上配置过influxdb和telegraf,或者从官网获取了原版的conf文件,则可以直接
mkdir /etc/influxdb/
和mkdir /etc/telegraf/
,在里面cp对应的配置conf文件进行配置编辑即可。
$ vim /etc/influxdb/influxdb.conf
$ vim /etc/telegraf/telegraf.conf
复制代码
- Telegraf安装方法
Ubuntu:
$ wget https://dl.influxdata.com/telegraf/releases/telegraf_1.9.1-1_amd64.deb
$ sudo dpkg -i telegraf_1.9.1-1_amd64.deb
RedHat/CentOS:
$ wget https://dl.influxdata.com/telegraf/releases/telegraf-1.9.1-1.x86_64.rpm
$ sudo yum localinstall telegraf-1.9.1-1.x86_64.rpm
复制代码
- Influxdb安装方法
Ubuntu:
$ wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.2_amd64.deb
$ sudo dpkg -i influxdb_1.7.2_amd64.deb
RedHat/CentOS:
$ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.2.x86_64.rpm
$ sudo yum localinstall influxdb-1.7.2.x86_64.