openfalcon+grafana安装配置手册及注意事项
更新时间:2023-12-04 16:33:01 阅读量: 教育文库 文档下载
Open-falcon安装配置手册
1.open-falcon介绍
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。
监控系统业界有很多杰出的开源监控系统。我们在早期,一直在用zabbix,不过随着业务的快速发展,以及互联网公司特有的一些需求,现有的开源的监控系统在性能、扩展性、和用户的使用效率方面,已经无法支撑了。因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRE、SA、DEVS的使用经验和反馈出发,结合业界的一些大的互联网公司做监控,用监控的一些思考出发,设计开发了小米的监控系统:open-falcon。
open-falcon的目标是做最开放、最好用的互联网企业级监控产品。 产品特点:
强大灵活的数据采集:自动发现,支持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编写。
Open-falcon通过十几个组件结合使用,达到监控告警目的。
2.环境准备
依赖组件 安装redis
yum install -y redis 安装mysql
yum install -y mysql-server
初始化mysql表结构
# open-falcon所有组件都无需root账号启动,推荐使用普通账号安装,提升安全性。此处我们使用普通账号:work来安装部署所有组件# 当然了,使用yum安装依赖的一些lib库的时候还是要有root权限的。
export HOME=/home/workexport WORKSPACE=$HOME/open-falcon mkdir -p $WORKSPACEcd $WORKSPACE
git clone https://github.com/open-falcon/scripts.git cd ./scripts/
如果我们预备监控windows主机,可先将mysql数据库字符集修改为utf-8,这是由于监控windows主机时,windows主机的网卡信息很可能有中文。 show variables like \
SET XXXXXX='utf8'
mysql -h localhost -u root -p < db_schema/graph-db-schema.sql
mysql -h localhost -u root -p < db_schema/dashboard-db-schema.sql
mysql -h localhost -u root -p < db_schema/portal-db-schema.sql
mysql -h localhost -u root -p < db_schema/links-db-schema.sql
mysql -h localhost -u root -p < db_schema/uic-db-schema.sql
安装环境
open-falcon的后端组件都是使用Go语言编写的,本节我们搭建Go语言开发环境,clone代码
我们使用64位Linux作为开发环境,与线上环境保持一致。如果你所用的环境不同,请自行解决不同平台的命令差异
首先安装Go语言开发环境(ansible golang环境部署): cd ~
wget http://dinp.qiniudn.com/go1.4.1.linux-amd64.tar.gz tar zxf go1.4.1.linux-amd64.tar.gz
mkdir -p workspace/srcecho \.bashrcecho 'export GOROOT=$HOME/go' >> .bashrcecho 'export GOPATH=$HOME/workspace' >> .bashrcecho 'export PATH=$GOROOT/bin:$GOPATH/bin:$PATH' >> .bashrcecho \接下来clone代码,以备后用 cd $GOPATH/src
mkdir github.comcd github.com
git clone --recursive https://github.com/open-falcon/of-release.git
3.open-falcon安装
解压of-release-v0.1.0.tar.gz获得以下16个压缩包
每个压缩包对应一个组件,创建独立组件目录,将压缩包解压到相应目录即可。
4.组件配置使用
3.1 agent
agent用于采集机器负载监控指标,比如cpu.idle、load.1min、disk.io.util等等,每隔60秒push给Transfer。agent与Transfer建立了长连接,数据发送速度比较快,agent提供了一个http接口/v1/push用于接收用户手工push的一些数据,然后通过长连接迅速转发给Transfer。因此需要被监控的所有主机都需要使用该组件。
配置文件必须叫cfg.json,可以基于cfg.example.json修改
{
\控制一些debug信息的输出,生产环境通常设置为false \采集了数据发给transfer,endpoint就设置为了hostname,默认通过`hostname`获取,如果配置中配置了hostname,就用配置中的
\与hbs心跳的时候会把自己的ip地址发给hbs,agent会自动探测本机ip,如果不想让agent自动探测,可以手工修改该配置 \
\默认不开启插件机制
\把放置插件脚本的git repo clone到这个目录 \# 放置插件脚本的git repo地址
\\# 插件执行的log,如果插件执行有问题,可以去这个目录看log },
\
\此处enabled要设置为true
\的地址,端口是hbs的rpc端口 \心跳周期,单位是秒
\连接hbs的超时时间,单位是毫秒 }, \
\此处enabled要设置为true \\\
], # transfer的地址,端口是transfer的rpc端口, 可以支持写多个transfer的地址,agent会保证HA
\# 采集周期,单位是秒,即agent一分钟采集一次数据发给transfer
\连接transfer的超时时间,单位是毫秒 }, \
\是否要监听http端口 \如果监听的话,监听的地址 },
\
\[\\# 默认配置只会采集网卡名称前缀是eth、em的网卡流量,配置为空就会采集所有的,lo的也会采集。可以从/proc/net/dev看到各个网卡的流量信息 },
\默认采集了200多个metric,可以通过ignore设置为不采集 \\ } }
进程管理
./control start 启动进程 ./control stop 停止进程 ./control restart 重启进程 ./control status 查看进程状态
./control tail 用tail -f的方式查看var/app.log
验证
看var目录下的log是否正常,或者浏览器访问其1988端口。另外agent提供了一个--check参数,可以检查agent是否可以正常跑在当前机器上 ./falcon-agent --check
/v1/push接口
我们设计初衷是不希望用户直接连到Transfer发送数据,而是通过agent的/v1/push接口转发,接口使用范例:
ts=`date +%s`; curl -X POST -d \\\\
$ts,\\\\\\
3.2 transfer
transfer是数据转发服务。它接收agent上报的数据,然后按照哈希规则进行数据分片、并将分片后的数据分别push给graph&judge等组件。
# 校验服务,这里假定服务开启了6060的http监听端口。检验结果为ok表明服务正常启动。
curl -s \
服务启动后,可以通过日志查看服务的运行状态,日志文件地址为./var/app.log。可以通过调试脚本./test/debug查看服务器的内部状态数据,如 运行 bash ./test/debug 可以得到服务器内部状态的统计信息。 Configuration
debug: true/false, 如果为true,日志中会打印debug信息
http
- enable: true/false, 表示是否开启该http端口,该端口为控制端口,主要用来对transfer发送控制命令、统计命令、debug命令等 - listen: 表示监听的http端口 rpc
- enable: true/false, 表示是否开启该jsonrpc数据接收端口, Agent发送数据使用的就是该端口 - listen: 表示监听的http端口
socket #即将被废弃,请避免使用
- enable: true/false, 表示是否开启该telnet方式的数据接收端口,这是为了方便用户一行行的发送数据给transfer - listen: 表示监听的http端口
judge
- enable: true/false, 表示是否开启向judge发送数据
- batch: 数据转发的批量大小,可以加快发送速度,建议保持默认值
- connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
- callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
- pingMethod: 后端提供的ping接口,用来探测连接是否可用,必须保持默认
- maxConns: 连接池相关配置,最大连接数,建议保持默认 - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认 - replicas: 这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可
- cluster: key-value形式的字典,表示后端的judge列表,其中key代表后端judge名字,value代表的是具体的ip:port
graph
- enable: true/false, 表示是否开启向graph发送数据
- batch: 数据转发的批量大小,可以加快发送速度,建议保持默认值
- connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
- callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
- pingMethod: 后端提供的ping接口,用来探测连接是否可用,必须保持默认
- maxConns: 连接池相关配置,最大连接数,建议保持默认 - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认 - replicas: 这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可
- cluster: key-value形式的字典,表示后端的graph列表,其中key代表后端graph名字,value代表的是具体的ip:port(多个地址用逗号隔开, transfer会将同一份数据发送至各个地址,利用这个特性可以实现数据的多重备份)
tsdb
- enabled: true/false, 表示是否开启向open tsdb发送数据 - batch: 数据转发的批量大小,可以加快发送速度
- connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
- callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
- maxConns: 连接池相关配置,最大连接数,建议保持默认 - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认 - retry: 连接后端的重试次数和发送数据的重试次数
- address: tsdb地址或者tsdb集群vip地址, 通过tcp连接tsdb.
3.3 Graph
graph是存储绘图数据的组件。graph组件 接收transfer组件推送上来的监控数据,同时处理query组件的查询请求、返回绘图数据。 # 校验服务,这里假定服务开启了6071的http监听端口。检验结果为ok表明服务正常启动。
curl -s \
启动服务后,可以通过日志查看服务的运行状态,日志文件地址为./var/app.log;如果需要详细的日志,可以将配置项debug设置为true。可以通过调试脚本./test/debug查看服务器的内部状态数据,如 运行 bash ./test/debug 可以得到服务器内部状态的统计信息。
配置说明 {
\是否开启debug日志 \
\表示是否开启该http端口,该端口为控制端口,主要用来对graph发送控制命令、统计命令、debug命令 \表示监听的http端口 }, \
\表示是否开启该rpc端口,该端口为数据接收端口
\表示监听的rpc端口 }, \
\绝对路径,历史数据的文件存储路径(如有必要,请修改为合适的路) }, \
\//MySQL的连接信息,默认用户名是root,密码为空,host为127.0.0.1,database为graph(如有必要,请修改),如果需要密码,在root:后跟密码 \连接池配置,连接池允许的最大连接数,保持默认即可 },
\调用超时时间,单位ms \扩容graph时历史数据自动迁移
\表示graph是否处于数据迁移状态 \数据迁移时的并发连接数,建议保持默认
\这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可(必须和transfer的配置中保持一致) \未扩容前老的graph实例列表 \ } } }
3.4 query
query组件,提供统一的绘图数据查询入口。query组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户。
# 校验服务,这里假定服务开启了9966的http监听端口。检验结果为ok表明服务正常启动。
curl -s \
服务启动后,可以通过日志查看服务的运行状态,日志文件地址为./var/app.log。可以通过查询脚本./scripts/query读取绘图数据,如 运行 bash ./scripts/query \可以查询Endpoint=\对应的绘图数据。
配置说明
注意: 请确保 graph.replicas和graph.cluster 的内容与transfer的配置完全一致 {
\是否开启debug日志 \
\是否开启http.server \监听地址&端口 }, \
\单位是毫秒,与后端graph建立连接的超时时间,可以根据网络质量微调,建议保持默认
\单位是毫秒,从后端graph读取数据的超时时间,可以根据网络质量微调,建议保持默认
\连接池相关配置,最大连接数,建议保持默认 \32, // 连接池相关配置,最大空闲连接数,建议保持默认 \这是一致性hash算法需要的节点副本数量,应该与transfer配置保持一致
\后端的graph列表,应该与transfer配置保持一致;不支持一条记录中配置两个地址 \\ },
\适配grafana需要的API配置
\的http地址 \的http地址 \返回结果的最大数量 } } }
部署完成query组件后,请修改dashboard组件的配置、使其能够正确寻址到query组件。请确保query组件的graph列表 与 transfer的配置 一致。
3.5 dashboard
dashboard是面向用户的查询界面。在这里,用户可以看到push到graph中的所有数据,并查看其趋势图。
Dashboard是个Python的项目。安装&部署Dashboard时,需要安装一些依赖库。依赖库安装,步骤如下,
# 安装virtualenv。需要root权限。 yum install -y python-virtualenv
安装pip1.2.1,否则Python3.1以下版本会出现ssl验证错误。easy_install pip==1.2.1
# 安装依赖。不需要root权限、使用普通账号执行就可以。需要到dashboard的目录下执行。
****************yum install mysql-devel cd /path/to/dashboard/ virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
对于ubuntu用户,安装mysql-python时可能会失败。请自行安装依赖libmysqld-dev、libmysqlclient-dev等。
服务启动后,可以通过日志查看服务的运行状态,日志文件地址
为./var/app.log。可以通过http://localhost:8081访问dashboard主页(这里假设 dashboard的http监听端口为8081)。 配置说明
dashboard有两个需要更改的配置文件: ./gunicorn.conf 和 ./rrd/config.py。./gunicorn.conf各字段,含义如下 - workers,dashboard并发进程数 - bind,dashboard的http监听端口 - proc_name,进程名称 - pidfile,pid文件全名称 - limit_request_field_size,TODO - limit_request_line,TODO
配置文件./rrd/config.py,各字段含义为 # dashboard的数据库配置 DASHBOARD_DB_HOST = \
DASHBOARD_DB_PORT = 3306 DASHBOARD_DB_USER = \DASHBOARD_DB_PASSWD = \DASHBOARD_DB_NAME = \# graph的数据库配置 GRAPH_DB_HOST = \GRAPH_DB_PORT = 3306 GRAPH_DB_USER = \GRAPH_DB_PASSWD = \GRAPH_DB_NAME = \# dashboard的配置 DEBUG = True
SECRET_KEY = \
SESSION_COOKIE_NAME = \
PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30 SITE_COOKIE = \# query服务的地址
QUERY_ADDR = \
BASE_DIR = \LOG_PATH = os.path.join(BASE_DIR,\try:
from rrd.local_config import *except: pass
3.6 短信发送接口(接口定义,无需安装)
这个组件没有代码,需要各个公司自行提供。
监控系统产生报警事件之后需要发送报警邮件或者报警短信,各个公司可能有自己的邮件服务器,有自己的邮件发送方法;有自己的短信通道,有自己的短信发送方法。falcon为了适配各个公司,在接入方案上做了一个规范,需要各公司提供http的短信和邮件发送接口
短信发送http接口:
method: post params:
- content: 短信内容
- tos: 使用逗号分隔的多个手机号
邮件发送http接口: method: post params:
- content: 邮件内容 - subject: 邮件标题
- tos: 使用逗号分隔的多个邮件地址
3.7 sender
上节我们利用http接口规范屏蔽了邮件、短信发送的问题。Sender这个模块专门用于调用各公司提供的邮件、短信发送接口。
sender这个模块和redis队列部署在一台机器上即可。公司即使有几十万台机器,一个sender也足够了。 配置说明 {
\\\
\ }, \
\此处配置的redis地址要和后面的judge、alarm配置成相同的 \ }, \
\\# 短信队列名称,维持默认即可,alarm中也会有一个相同的配置
DB_USER = \DB_PASS = \
DB_NAME = \
# SECRET_KEY尽量搞一个复杂点的随机字符串 SECRET_KEY = \SESSION_COOKIE_NAME = \PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
# 我们可以cp config.py local_config.py用local_config.py中的配置覆盖config.py中的配置# 嫌麻烦的话维持默认即可,也不用制作local_config.pytry:
from frame.local_config import *except Exception, e: print \
启动之后要看看log是否正常,log在var目录。
然后浏览器访问之,发现首页404,这是正常的。之后alarm模块会用到links。
或者我们可以这么验证:
curl http://links.example.com/store -d \例:curl http://10.192.40.151:5090/store -d \
上面命令会返回一个随机字符串,拿着这个随机字符串拼接到links地址后面,浏览器访问之即可。比如返回的随机字符串是dot9kg8b,浏览器访问:http://links.example.com/dot9kg8b 即可
3.13 alarm
alarm模块是处理报警event的,judge产生的报警event写入redis,alarm从redis读取处理
alarm是个单点。对于未恢复的告警是放到alarm的内存中的,alarm还需要做报警合并,故而alarm只能部署一个实例。后期需要想办法改进。 配置说明 {
\\
\\
\# 未恢复的告警就是通过alarm的http页面来看的 }, \
\需要与sender配置成相同的,维持默认即可 \ }, \
\与judge、sender相同的redis地址 \\\\ ], \\\\\\ ],
\这两个queue维持默认即可 \ }, \
\内网可访问的portal的地址,实例\
\内网可访问的uic(或fe)的地址,实例\
\外网可访问的links的地址,实例\ } }
api部分portal和uic可以配置成内网可访问的地址,速度比较快,但是links要配置成外网可访问的地址,注意喽
如果某个核心服务挂了,可能会造成大面积报警,为了减少报警短信数量,我们做了报警合并功能。把报警信息写入links模块,然后links返回一个url地址给alarm,alarm将这个url链接发给用户,这样用户只要收到一条短信(里边是个url地址),点击url进去就是多条报警内容。
highQueues中配置的几个event队列中的事件是不会做报警合并的,因为那些是高优先级的报警,报警合并只是针对lowQueues中的事件。如果所有的事件都不想做报警合并,就把所有的event队列都配置到highQueues中即可
alarm搭建完成了,我们可以回去修改fe的配置,把fe模块的
shortcut:falconAlarm配置成alarm的http地址,是浏览器可访问的alarm的http地址
3.14 task
task是监控系统一个必要的辅助模块。定时任务,实现了如下几个功能: index更新。包括图表索引的全量更新 和 垃圾索引清理。
falcon服务组件的自身状态数据采集。定时任务了采集了transfer、graph、task这三个服务的内部状态数据。
falcon自检控任务。 配置说明
debug: true/false, 如果为true,日志中会打印debug信息 http
- enable: true/false, 表示是否开启该http端口,该端口为控制端口,主要用来对task发送控制命令、统计命令、debug命令等 - listen: 表示http-server监听的端口 index
- enable: true/false, 表示是否开启索引更新任务
- dsn: 索引服务的MySQL的连接信息,默认用户名是root,密码为空,host为127.0.0.1,database为graph(如有必要,请修改)
- maxIdle: MySQL连接池配置,连接池允许的最大空闲连接数,保持默认即可
- cluster: 后端graph索引更新的定时任务描述。一条记录的形如: \地址:执行周期描述\,通过设置不同的执行周期,来实现负载在时间上的均衡。
eg. 后端部署了两个graph实例,cluster可以配置为 \
\周0-5,每天的00:00:00,开始执行索引全量更新;\为quartz表达式
\周0-5,每天的00:30:00,开始执行索引全量更新 }
- autoDelete: true|false, 是否自动删除垃圾索引。默认为false
collector
- enable: true/false, 表示是否开启falcon的自身状态采集任务 - destUrl: 监控数据的push地址,默认为本机的1988接口 - srcUrlFmt: 监控数据采集的url格式, %s将由机器名或域名替换 - cluster: falcon后端服务列表,用具体的\表示,module取值可以为graph、transfer、task等
部署完成task组件后,请修改collector配置、使task能够正确采集transfer & graph的内部状态,请修改monitor配置、使task模块能够自检控Open-Falon的各组件(当前支持transfer、graph、query、judge等)。
3.15 gateway
如果您没有遇到机房分区问题,请直接忽略此组件。
如果您已经遇到机房分区问题、并急需解决机房分区时监控数据回传的问题,请使用该组件。更多的资料在:
https://github.com/open-falcon/gateway
3.16 nodata
nodata用于检测监控数据的上报异常。nodata和实时报警judge模块协同工作,过程为: 配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据;用户配置相应的报警策略,收到mock数据就产生报警。采集项上报异常检测,作为judge模块的一个必要补充,能够使judge的实时报警功能更加可靠、完善。
这一节是写给Open-Falcon老用户的,新用户请忽略本小节、直接跳到源码编译部分即可。如果你已经使用Open-Falcon有一段时间,本次只是新增加一个nodata服务,那么你需要依次完成如下工作:
?
确保已经建立mysql数据表falcon_portal.mockcfg。其中,falcon_portal为portal组件的mysql数据库,mockcfg为存放nodata配置的数据表。mockcfg的建表语句,如下。
确保已经更新了portal组件。portal组件中,新增了对nodata配置的UI支持。
安装nodata后端服务。即本文的后续部分。 USE falcon_portal;SET NAMES 'utf8'; /**
* nodata mock config
*/DROP TABLE IF EXISTS `mockcfg`;CREATE TABLE `mockcfg` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'name of mockcfg, used for uuid',
`obj` VARCHAR(10240) NOT NULL DEFAULT '' COMMENT 'desc of object',
`obj_type` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'type of object, host or group or other',
`metric` VARCHAR(128) NOT NULL DEFAULT '', `tags` VARCHAR(1024) NOT NULL DEFAULT '', `dstype` VARCHAR(32) NOT NULL DEFAULT 'GAUGE', `step` INT(11) UNSIGNED NOT NULL DEFAULT 60,
`mock` DOUBLE NOT NULL DEFAULT 0 COMMENT 'mocked value when nodata occurs',
`creator` VARCHAR(64) NOT NULL DEFAULT '', `t_create` DATETIME NOT NULL COMMENT 'create time',
`t_modify` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'last modify time',
?
?
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
配置说明
## Configuration {
\\\
\的http服务监听地址 },
\组件相关的配置
\查询数据时http连接超时时间,单位ms \查询数据时http请求处理超时时间,单位ms \组件的http监听地址,一般形如\ },
\配置信息 \
\
\true&wait_timeout=604800\的数据库连接信息,默认数据库为falcon_portal
\连接池空闲连接数 },
\数据采集相关的配置 \
\一次数据采集的条数,建议使用默认值 \采集并发度,建议使用默认值 },
\发送mock数据相关的配置 \
\发送数据时http连接超时时间,单位ms \发送数据时http请求超时时间,单位ms
\的http监听地址,一般形如\
\发送数据时,每包数据包含的监控数据条数 \阻塞设置
\是否开启阻塞功能.默认不开启此功能
\触发nodata阻塞操作的阈值上限.当配置了nodata的数据项,数据上报中断的百分比,大于此阈值上限时,nodata阻塞mock数据的发送 } } }
3.17 Aggregator
如果你已经安装过open-falcon了,那么请检查: 检查你的portal中是否有这个代码:
https://github.com/open-falcon/portal/blob/master/web/model/cluster.py,如果有了,说明版本OK,否则,需要升级原来的portal为最新版代码。
falcon_portal数据库中加入了一张新表: USE falcon_portal;SET NAMES 'utf8';
DROP TABLE IF EXISTS cluster;CREATE TABLE cluster (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, grp_id INT NOT NULL, numerator VARCHAR(10240) NOT NULL, denominator VARCHAR(10240) NOT NULL, endpoint VARCHAR(255) NOT NULL, metric VARCHAR(255) NOT NULL, tags VARCHAR(255) NOT NULL, ds_type VARCHAR(255) NOT NULL, step INT NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
creator VARCHAR(255) NOT NULL, PRIMARY KEY (id) )
ENGINE =InnoDB
DEFAULT CHARSET =latin1;
配置说明
## Configuration {
\\\
\ }, \
\
\\
\模块可以部署多个实例,这个配置表示当前实例要处理的数据库中cluster表的id范围 \ }, \
\注意修改为你的portal的ip:port
\注意修改为你的transfer的ip:port
\注意修改为你的query的ip:port } }
3.18 Agent-updater
每台机器都要部署falcon-agent,如果公司机器量比较少,用pssh、ansible、fabric之类的工具手工安装问题也不大。但是公司机器量多了之后,手工安装、升级、回滚falcon-agent将成为噩梦。
个人开发了agent-updater这个工具,用于管理falcon-agent,agent-updater也有一个agent:ops-updater,可以看做是一个超级agent,用于管理其他agent的agent,呵呵,ops-updater推荐在装机的时候一起安装上。ops-updater通常是不会升级的。
具体参看:http://ulricqin.com/project/ops-updater/
5.Grafana配置
grafana安装
wget https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.4-1464167696.x86_64.rpm rpm -ivh grafana-3.0.4-1464167696.x86_64.rpm (grafana编译似乎不太好使,godep store需要下载golang的lib库,有些下不下来,一直无法通过)
3.通过grafana-cli安装Open-falcon插件
grafana-cli plugins install fastweb-openfalcon-datasource chown -R grafana:grafana /var/lib/grafana 4.编辑/etc/grafana/grafana.ini配置文件,添加插件PATH [plugin.openfalcon] ;path = /var/lib/grafana/plugins/fastweb-openfalcon-datasource (path前面;一定要有,一开始没加,坑爹了很久)
5.启动grafana
[root@linux plugins]# /etc/init.d/grafana-server restart OKopping Grafana Server ... [ OK ] Starting Grafana Server: .... OK
6.浏览器访问http://ip:3000
7.添加数据源
数据源地址:falcon主机query地址,例如当前http://192.168.20.200:9966/api/grafana
8.新建dashboard
9.建立一个模板
etc/mon.cfg [default]
log_file=mymon.log # 日志路径和文件名 # Panic 0 # Fatal 1 # Error 2 # Warn 3 # Info 4 # Debug 5
log_level=4 # 日志级别
falcon_client=http://127.0.0.1:1988/v1/push # falcon agent连接地址
#自定义endpoint
endpoint=127.0.0.1 #若不设置则使用OS的hostname
[mysql]
user=root # 数据库用户名 password= # 数据库密码
host=127.0.0.1 # 数据库连接地址 port=3306 # 数据库端口
MySQL metrics
请参考./metrics.txt,其中的内容,仅供参考,根据MySQL的版本、配置不同,采集到的metrics也有差别。
8.redis 监控
需求:Python >= 2.6python-simplejson yum install python-simplejson -y
使用方法
1. 根据实际部署情况,修改有注释位置附近的配置 2. 测试: python redis-monitor.py 3. 将脚本加入crontab执行即可 注意:
1.修改redis-monitor.py时,_redis_cli = '/usr/local/bin/redis-cli'路径一定要正确,修改前whereis redis_cli检查确认其路径。
2.#inst_list中保存了redis配置文件列表,程序将从这些配置中读取port和password,建议使用动态发现的方法获得,如:
# inst_list = [ i for i in commands.getoutput(\/etc/ -name 'redis*.conf'\使用推荐的redis配置列表获取方式 insts_list
=
[
i
for
i
in
commands.getoutput(\
/opt/redis-3.0.2/cluster/ -name 'redis*.conf'\
3.修改Openfalcon监控主机地址
url = 'http://10.192.40.151:1988/v1/push' 4.修改主机host
正在阅读:
openfalcon+grafana安装配置手册及注意事项12-04
化妆与礼仪 - 教案01-12
用盛气凌人造句02-11
宏观经济学案例08-08
2012高考语文一轮复习精品资料:第8讲 语言表达简明、连贯、得体06-30
2014黑龙江招警考试 - 公安基础知识 - 复习方式实例06-29
八年级英语上册专项训练--语法填空12-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- openfalcon
- 注意事项
- 配置
- grafana
- 手册
- 安装
- MECT治疗室工作制度及操作方法
- 小班文明礼仪儿歌
- 2018届肇庆市中小学教学质量评估高中毕业班第一次模拟考试文科数学试卷及答案
- 基层党支部工作十项制度
- 大学物理网络基础自测题(带答案版) - 图文
- 管理运筹学复习题
- 自考05963绩效管理复习资料OK -
- 湖北省“十一五”旅游业发展规划纲要
- 题 计算机历史与分类
- 国贸复习思考题(3)价格(参考答案)
- 尔雅大脑的奥秘:神经学导论期末考试
- 宜政发(2007)181号文件市政府关于印发宜兴市政府投资工程类项目建设管理实施细则(试行)的通知
- 第六章 信息系统与数据库
- 《生活与哲学》 教师用书
- 十校联合体2018-2019学年高二上学期期末联考地理试题 含答案
- 电大财务报表分析网考试题答案(排版)
- 谢长宇,律师风险代理合同
- 关系数据理论练习题
- 在传统薪酬体系下,员工所受到的激励就是不遗余力地往上爬
- 既不离散也不连续的随机变量