前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >002.Open-Falcon Server部署及Agent监控

002.Open-Falcon Server部署及Agent监控

作者头像
木二
发布2019-07-26 09:59:53
1.1K0
发布2019-07-26 09:59:53
举报
文章被收录于专栏:木二天空

一 前期准备

节点

IP

备注

falcon

私网:172.24.10.95 临时公网:120.132.23.107

Open-Falcon服务端

node01

172.24.10.216

被监控端

安装git等依赖:yum -y install git telnet

NTP配置;

SELinux及防火墙关闭。

提示:对于任何时序性要求高的服务,都建议部署NTP服务。

Open-Falcon,为前后端分离的架构,包含backend 和 frontend两部分:

  • 安装后端
  • 安装前端

二 基础环境

2.1 安装redis

代码语言:javascript
复制
  1 [root@falcon ~]# yum install -y redis

2.2 安装数据库

代码语言:javascript
复制
  1 [root@falcon ~]# yum -y install mariadb mariadb-server

2.3 启动相关服务

代码语言:javascript
复制
  1 [root@falcon ~]# systemctl start redis
  2 [root@falcon ~]# systemctl enable redis
  3 [root@falcon ~]# systemctl start mariadb
  4 [root@falcon ~]# systemctl enable mariadb

2.4 设置数据库安全性

代码语言:javascript
复制
  1 [root@falcon ~]# mysql_secure_installation		#设置安全性,并设置数据库root密码

2.5 安装go语言

代码语言:javascript
复制
  1 [root@falcon ~]# mkdir /gohome
  2 [root@falcon ~]# yum install -y epel-release
  3 [root@falcon ~]# yum install -y golang

提示:若yum无法安装可通过以下方式采用二进制安装形式:

代码语言:javascript
复制
  1 [root@falcon ~]# wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
  2 [root@falcon ~]# tar -C /usr/local/ -zxvf go1.11.2.linux-amd64.tar.gz
  3 [root@falcon ~]# echo 'export GOROOT=/usr/local/go' >> /etc/profile.d/go.sh
  4 [root@falcon ~]# echo 'export GOBIN=$GOROOT/bin' >> /etc/profile.d/go.sh
  5 [root@falcon ~]# echo 'export GOPKG=$GOROOT/pkg/tool/linux_amd64' >> /etc/profile.d/go.sh
  6 [root@falcon ~]# echo 'export GOARCH=amd64' >> /etc/profile.d/go.sh
  7 [root@falcon ~]# echo 'export GOOS=linux' >> /etc/profile.d/go.sh
  8 [root@falcon ~]# echo 'export GOPATH=/gohome' >> /etc/profile.d/go.sh
  9 [root@falcon ~]# echo 'export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin' >> /etc/profile.d/go.sh
 10 [root@falcon ~]# go version
 11 go version go1.11.2 linux/amd64

2.6 创建Falcon工作目录

代码语言:javascript
复制
  1 [root@falcon ~]# mkdir -p $GOPATH/src/github.com/open-falcon

2.7 下载Falcon源码

代码语言:javascript
复制
  1 [root@falcon ~]# cd $GOPATH/src/github.com/open-falcon
  2 [root@falcon open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git

2.8 初始化数据库

代码语言:javascript
复制
  1 [root@falcon tmp]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema
  2 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 1_uic-db-schema.sql
  3 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 2_portal-db-schema.sql
  4 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 3_dashboard-db-schema.sql
  5 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 4_graph-db-schema.sql
  6 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 5_alarms-db-schema.sql

2.9 获取rrdtool工具包

代码语言:javascript
复制
  1 [root@falcon db_schema]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/
  2 [root@falcon falcon-plus]# go get github.com/open-falcon/rrdlite

2.10 编译及打包

代码语言:javascript
复制
  1 [root@falcon falcon-plus]# make all
  2 [root@falcon falcon-plus]# make pack

提示:编译打包完成后会生产一个open-falcon-v0.2.1.tar.gz的压缩包,表示已经编译和打包完成;

若编译异常也可以使用官方提供的已编译完成的包:https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz

三 部署后端

3.1 创建工作目录

代码语言:javascript
复制
  1 [root@falcon ~]# export FALCON_HOME=/data/falcon
  2 [root@falcon ~]# export WORKSPACE=$FALCON_HOME/open-falcon
  3 [root@falcon ~]# mkdir -p $WORKSPACE

3.2 解压二进制包

代码语言:javascript
复制
  1 [root@falcon ~]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/
  2 [root@falcon falcon-plus]# tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE

3.2 修改配置文件

各模块配置文件路径如下:

模块

配置文件所在路径

备注

aggregator

/data/falcon/aggregator/config/cfg.json

graph

/data/falcon/graph/config/cfg.json

hbs

/data/falcon/hbs/config/cfg.json

nodata

/data/falcon/nodata/config/cfg.json

api

/data/falcon/api/config/cfg.json

alarm

/data/falcon/alarm/config/cfg.json

代码语言:javascript
复制
  1 [root@falcon ~]# cd $WORKSPACE
  2 [root@falcon open-falcon]# grep -Ilr 3306  ./ | xargs -n1 -- sed -i 's/root:/root:123456/g'
  3 [root@falcon open-falcon]# grep -Ir 3306 ./		        #确认修改

提示:由于默认所有配置文件的数据库配置均为空,因此需要将所有配置文件中关于db的用户名和密码进行修改。

3.3 启动后端模块

代码语言:javascript
复制
  1 [root@falcon ~]# cd $WORKSPACE
  2 [root@falcon open-falcon]# ./open-falcon start		#启动所有后端模块
  3 [root@falcon open-falcon]# ./open-falcon check		#检查启动情况

提示:更多命令使用方法:

代码语言:javascript
复制
  1 # ./open-falcon [start|stop|restart|check|monitor|reload] module
  2 # ./open-falcon start agent
  3 [root@falcon open-falcon]# ./open-falcon check
  4         falcon-graph         UP           17148
  5           falcon-hbs         UP           17165
  6         falcon-judge         UP           17178
  7      falcon-transfer         UP           17187
  8        falcon-nodata         UP           17199
  9    falcon-aggregator         UP           17209
 10         falcon-agent         UP           17220
 11       falcon-gateway         UP           17232
 12           falcon-api         UP           17243
 13         falcon-alarm         UP           17259

相关排查log见:$WorkDir/$moduleName/log/logs/xxx.log

四 部署前端

4.1 创建工作目录

见3.1。

4.2 下载前端源码

代码语言:javascript
复制
  1 [root@falcon ~]# cd $WORKSPACE
  2 [root@falcon open-falcon]# git clone https://github.com/open-falcon/dashboard.git

4.3 安装依赖

代码语言:javascript
复制
  1 [root@falcon ~]# yum install -y python-virtualenv
  2 [root@falcon ~]# yum install -y python-devel
  3 [root@falcon ~]# yum install -y openldap-devel
  4 [root@falcon ~]# yum install -y mariadb-devel
  5 [root@falcon ~]# yum groupinstall "Development tools" -y
  6 [root@falcon ~]# cd $WORKSPACE/dashboard/
  7 [root@falcon dashboard]# virtualenv ./env
  8 [root@falcon dashboard]# ./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

4.4 初始化数据库

参考:2.8。

提示:由于前后端部署在同一节点,部署后端过程中已初始化数据库,4.4步骤可跳过。

4.5 修改前端dashboard配置

代码语言:javascript
复制
  1 [root@falcon ~]# vi /data/falcon/open-falcon/dashboard/rrd/config.py
  2 # portal database
  3 # TODO: read from api instead of db
  4 PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1")
  5 PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306))
  6 PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root")
  7 PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","123456")	#修改数据库密码
  8 PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal")
  9 
 10 # alarm database
 11 # TODO: read from api instead of db
 12 ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1")
 13 ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306))
 14 ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root")
 15 ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","123456")	#修改数据库密码
 16 ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")

提示:config.py配置文件解析:

API_ADDR:表示后端api组件的地址,前后端部署在同一台时不需要修改。

4.6 放通防火墙

代码语言:javascript
复制
  1 [root@falcon ~]# firewall-cmd --add-port=8081/tcp --permanent
  2 [root@falcon ~]# firewall-cmd --reload

提示:若已关闭防火墙,则跳过此步骤。

4.7 启动dashboard

代码语言:javascript
复制
  1 [root@falcon ~]# cd /data/falcon/open-falcon/dashboard/
  2 [root@falcon dashboard]# bash control start		        #以生产模式启动
  3 [root@falcon dashboard]# bash control tail		        #查看相关log

4.8 测试访问

浏览器访问Falcon服务端:http://120.132.23.107:8081

五 dashboard管理

5.1 注册账号

dashbord没有默认创建任何账号包括管理账号,需要通过页面进行注册账号。 想拥有管理全局的超级管理员账号,需要手动注册用户名为root的账号(第一个帐号名称为root的用户会被自动设置为超级管理员)。 超级管理员可以给普通用户分配权限管理。

5.2 登录测试

使用5.1所注册账号进行登录。

提示:注册账号能够被任何打开dashboard页面的人注册,所以当给相关的人注册完账号后,需要去关闭注册账号功能。只需要去修改api组件的配置文件cfg.json,将signup_disable配置项修改为true,重启api即可。当需要给人开账号的时候,再将配置选项改回去,用完再关掉即可。

六 Agent独立安装

6.1 Agent简介

agent用于采集机器负载监控指标,比如cpu.idle、load.1min、disk.io.util等等,每隔60秒push给Transfer。agent与Transfer建立了长连接,数据发送速度比较快,agent提供了一个http接口/v1/push用于接收用户手工push的一些数据,然后通过长连接迅速转发给Transfer。

6.2 复制agent包

将Falcon服务端的Agent包复制至被监控端node01。

代码语言:javascript
复制
  1 [root@node01 ~]# mkdir -p /data/falcon/open-falcon/		#node01节点创建工作目录
  2 [root@falcon ~]# cd /data/falcon/open-falcon/
  3 [root@falcon open-falcon]# scp -r agent/ root@172.24.10.216:/data/falcon/open-falcon/
  4 [root@falcon open-falcon]# scp -r open-falcon  root@172.24.10.216:/data/falcon/open-falcon/

6.3 修改agent配置

代码语言:javascript
复制
  1 [root@node01 ~]# vi /data/falcon/open-falcon/agent/config/cfg.json
  2 {
  3     "debug": true,		# 控制一些debug信息的输出,生产环境通常设置为false
  4     "hostname": "",		# agent采集了数据发给transfer,endpoint就设置为了hostname,默认通过`hostname`获取,如果配置中配置了hostname,就用配置中的
  5     "ip": "",		# agent与hbs心跳的时候会把自己的ip地址发给hbs,agent会自动探测本机ip,如果不想让agent自动探测,可以手工修改该配置
  6     "plugin": {
  7         "enabled": false,	# 默认不开启插件机制
  8         "dir": "./plugin",	# 把放置插件脚本的git repo clone到这个目录
  9         "git": "https://github.com/open-falcon/plugin.git",	# 放置插件脚本的git repo地址
 10         "logs": "./logs"	# 插件执行的log,如果插件执行有问题,可以去这个目录看log
 11     },
 12     "heartbeat": {
 13         "enabled": true,	# 此处enabled要设置为true
 14         "addr": "172.24.10.95:6030",	# hbs的地址,端口是hbs的rpc端口
 15         "interval": 60,		        # 心跳周期,单位是秒
 16         "timeout": 1000		        # 连接hbs的超时时间,单位是毫秒
 17     },
 18     "transfer": {
 19         "enabled": true,
 20         "addrs": [
 21             "172.24.10.95:18433"
 22         ], 			      # transfer的地址,端口是transfer的rpc端口, 可以支持写多个transfer的地址,agent会保证HA
 23         "interval": 60,	      # 采集周期,单位是秒,即agent一分钟采集一次数据发给transfer
 24         "timeout": 1000	      # 连接transfer的超时时间,单位是毫秒
 25     },
 26     "http": {
 27         "enabled": true,	      # 是否要监听http端口
 28         "listen": ":1988",
 29         "backdoor": false
 30     },
 31     "collector": {
 32         "ifacePrefix": ["eth", "em"],	# 默认配置只会采集网卡名称前缀是eth、em的网卡流量,配置为空就会采集所有的,lo的也会采集。可以从/proc/net/dev看到各个网卡的流量信息
 33         "mountPoint": []
 34     },
 35     "default_tags": {
 36     },
 37     "ignore": {			         # 默认采集了200多个metric,可以通过ignore设置为不采集
 38         "cpu.busy": true,
 39         "df.bytes.free": true,
 40         "df.bytes.total": true,
 41         "df.bytes.used": true,
 42         "df.bytes.used.percent": true,
 43         "df.inodes.total": true,
 44         "df.inodes.free": true,
 45         "df.inodes.used": true,
 46         "df.inodes.used.percent": true,
 47         "mem.memtotal": true,
 48         "mem.memused": true,
 49         "mem.memused.percent": true,
 50         "mem.memfree": true,
 51         "mem.swaptotal": true,
 52         "mem.swapused": true,
 53         "mem.swapfree": true
 54     }
 55 }

6.4 启动Agent

代码语言:javascript
复制
  1 [root@node01 ~]# cd /data/falcon/open-falcon/
  2 [root@node01 open-falcon]# ./open-falcon start agent
  3 [root@node01 open-falcon]# ./open-falcon monitor agent		#查看运行日志

6.5 检查Agent

代码语言:javascript
复制
  1 [root@node01 ~]# cd /data/falcon/open-falcon/agent/bin
  2 [root@node01 bin]# ./falcon-agent --check
  3 disk.io  ... ok
  4 memory   ... ok
  5 netstat  ... ok
  6 ss -s    ... ok
  7 kernel   ... ok
  8 net.if   ... ok
  9 loadavg  ... ok
 10 cpustat  ... ok
 11 du -bs   ... ok
 12 df.bytes ... ok
 13 ss -tln  ... ok
 14 ps aux   ... ok

七 确认验证

7.1 确认添加

浏览器访问Falcon服务端:http://120.132.23.107:8081

7.2 查看监控项

随机查看load.1 min的监控数据,确保所有监控正常。

参考文档:https://www.cnblogs.com/straycats/p/7199209.html

https://blog.csdn.net/qq_27384769/article/details/79569776

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 前期准备
  • 二 基础环境
    • 2.1 安装redis
      • 2.2 安装数据库
        • 2.3 启动相关服务
          • 2.4 设置数据库安全性
            • 2.5 安装go语言
              • 2.6 创建Falcon工作目录
                • 2.7 下载Falcon源码
                  • 2.8 初始化数据库
                    • 2.9 获取rrdtool工具包
                      • 2.10 编译及打包
                      • 三 部署后端
                        • 3.1 创建工作目录
                          • 3.2 解压二进制包
                            • 3.2 修改配置文件
                              • 3.3 启动后端模块
                              • 四 部署前端
                                • 4.1 创建工作目录
                                  • 4.2 下载前端源码
                                    • 4.3 安装依赖
                                      • 4.4 初始化数据库
                                        • 4.5 修改前端dashboard配置
                                          • 4.6 放通防火墙
                                            • 4.7 启动dashboard
                                              • 4.8 测试访问
                                              • 五 dashboard管理
                                                • 5.1 注册账号
                                                  • 5.2 登录测试
                                                  • 六 Agent独立安装
                                                    • 6.1 Agent简介
                                                      • 6.2 复制agent包
                                                        • 6.3 修改agent配置
                                                          • 6.4 启动Agent
                                                            • 6.5 检查Agent
                                                            • 七 确认验证
                                                              • 7.1 确认添加
                                                                • 7.2 查看监控项
                                                                相关产品与服务
                                                                访问管理
                                                                访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
                                                                领券
                                                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档