微信号:linuxprobe

介绍:专注于Linux运维技术培训,让您学习的每节课都有所收获,订阅本号后可每天获得最新运维行业资讯、最实用的Linux免费教程以及独家Linux考证资料,三十多万技术小伙伴的选择,Linux就该这么学!

教你如何在CentOS 6.5下部署Open-Falcon监控系统

2019-01-15 08:30 Linux就该这么学


注:本次安装为测试环境,使用CentOS 6.5的系统,所装软件均为直接yum,如果线上部署,请使用公司提供的软件版本。

1、介绍

监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。

亮点和功能

强大灵活的数据采集:自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持、opentsdb data model like(timestamp、endpoint、metric、key-value tags)

水平扩展能力:支持每个周期上亿次的数据采集、告警判定、历史数据存储和查询
高效率的告警策略管理:高效的portal、支持策略模板、模板继承和覆盖、多种告警方式、支持callback调用

人性化的告警设置:最大告警次数、告警级别、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期

高效率的graph组件:单机支撑200万metric的上报、归档、存储(周期为1分钟)
高效的历史数据query组件:采用rrdtool的数据归档策略,秒级返回上百个metric一年的历史数据

dashboard:多维度的数据展示,用户自定义Screen

高可用:整个系统无核心单点,易运维,易部署,可水平扩展

开发语言: 整个系统的后端,全部golang编写,portal和dashboard使用Python编写

2、部署

Open-Falcon采用server-agent方式来实现监控。下面是具体的部署情况:

2.1、一体化部署后端

本次测试环境,进行单机部署,所有模块都放在一台主机上,如果有需要分布式部署,请参考官方文档https://book.open-falcon.org/zh_0_2/distributed_install/,分布式只需要将模块迁移到其它服务器,修改配置文件即可,十分简单。

2.1.1、环境准备

open-falcon的后端组件都是使用Go语言编写的,所以我们需要先安装Go语言开发环境

yum install golang -y ##需要epel源
export GOROOT=/usr/lib/golang
export GOPATH=/home

安装redis

yum install -y redis

安装mysql并启动

yum install -y mysql-server
/etc/init.d/mysqld start

测试机是centos6的,其余系统自行更改启动命令

初始化MySQL表结构

cd /tmp/ && git clone https://github.com/open-falcon/falcon-plus.git
cd /tmp/falcon-plus/scripts/mysql/db_schema/
mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
rm -rf /tmp/falcon-plus/
2.1.2、安装

创建工作目录

export FALCON_HOME=/home/work
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE

下载编译好的二进制包并解压

wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz
tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
2.1.3、配置文件

在启动之前,需要修改各模块的配置文件,保证数据库的用户名和密码正确。下面是各个模块的配置文件路径。

aggregator   /home/work/aggregator/config/cfg.json
graph     /home/work/graph/config/cfg.json
hbs      /home/work/hbs/config/cfg.json
nodata    /home/work/nodata/config/cfg.json
api     /home/work/api/config/cfg.json
alarm    /home/work/alarm/config/cfg.json
2.1.4、启动
cd $WORKSPACE
./open-falcon start

# 检查所有模块的启动状况

./open-falcon check
falcon-graph UP 3020
falcon-hbs UP 3030
falcon-judge UP 3039
falcon-transfer UP 3045
falcon-nodata UP 3051
falcon-aggregator UP 3058
falcon-agent UP 3067
falcon-gateway UP 3073
falcon-api UP 3079
falcon-alarm UP 3092
2.2、部署前端

克隆前端组件代码

cd $WORKSPACE
git clone https://github.com/open-falcon/dashboard.git12

安装依赖包

yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools"

安装python依赖环境

#下载ez_setup.py

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py --insecure
#下载pip

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz
#解压并安装

tar xf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
#测试,查看版本

pip -V
#pip安装软件

cd /home/work/open-falcon/dashboard
pip install -r pip_requirements.txt

修改dashboard配置文件,修改数据库的用户名和密码,保证dashboard能连接数据库。

vim /home/work/open-falcon/dashboard/rrd/config.py

启动

bash control start

访问网站 http://IP:8081 ,刚登陆需要注册用户,注册的第一个用户名为root的帐号会被认为是超级管理员,超级管理员可以设置其他用户为管理员。

让您学习到的每一节课都有所收获

《Linux就该这么学》是一本由资深运维专家刘遄老师及国内多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。荣获双11、双12购物狂欢节IT品类书籍销量冠军,2017年、2018年国内读者增速最快的技术书籍,您可以在京东、当当、亚马逊及天猫搜索书名后购买,亦可加刘遄老师微信交流学习(手指按住下图3秒钟即可自动扫描)~


刘遄老师QQ:5604215

☀ Linux技术交流群:560843新群,火热加群中……

☀ 官方站点:www.linuxprobe.com

☀ 书籍在线学习(电脑在线阅读效果更佳

http://www.linuxprobe.com/chapter-00.html

《Linux就该这么学》是一本基于最新Linux系统编写,面向零基础读者的技术书籍。从Linux基础知识讲起,然后渐进式地提高内容难度,详细讲解Linux系统中各种服务的工作原理和配置方式,以匹配真实生产环境对运维人员的要求,突显内容的实用性。想要学习Linux系统的读者可以点击"阅读原文"按钮了解这本书,同时这本书也适合专业的运维人员阅读,作为一本非常有参考价值的工具书!

 
Linux就该这么学 更多文章 Linux在线培训课程介绍,预约报名送书啦! Linux中进程与线程的概念以及区别 挂载错误导致系统无法启动的解决方法 虚拟化技术KVM的搭建 讲解Linux数据库安装
猜您喜欢 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介 深入研究Block捕获外部变量和__block实现原理 分享图片 企业安全:为何总有修不完的漏洞? 【美术圈】霸气侧漏 《Dota 2原画设定》欣赏