一 前期准备

节点
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

 [root@falcon ~]# yum install -y redis

2.2 安装数据库

 [root@falcon ~]# yum -y install mariadb mariadb-server

2.3 启动相关服务

 [root@falcon ~]# systemctl start redis
[root@falcon ~]# systemctl enable redis
[root@falcon ~]# systemctl start mariadb
[root@falcon ~]# systemctl enable mariadb

2.4 设置数据库安全性

 [root@falcon ~]# mysql_secure_installation		#设置安全性,并设置数据库root密码

2.5 安装go语言

 [root@falcon ~]# mkdir /gohome
[root@falcon ~]# yum install -y epel-release
[root@falcon ~]# yum install -y golang
提示:若yum无法安装可通过以下方式采用二进制安装形式:
 [root@falcon ~]# wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
[root@falcon ~]# tar -C /usr/local/ -zxvf go1.11.2.linux-amd64.tar.gz
[root@falcon ~]# echo 'export GOROOT=/usr/local/go' >> /etc/profile.d/go.sh
[root@falcon ~]# echo 'export GOBIN=$GOROOT/bin' >> /etc/profile.d/go.sh
[root@falcon ~]# echo 'export GOPKG=$GOROOT/pkg/tool/linux_amd64' >> /etc/profile.d/go.sh
[root@falcon ~]# echo 'export GOARCH=amd64' >> /etc/profile.d/go.sh
[root@falcon ~]# echo 'export GOOS=linux' >> /etc/profile.d/go.sh
[root@falcon ~]# echo 'export GOPATH=/gohome' >> /etc/profile.d/go.sh
[root@falcon ~]# echo 'export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin' >> /etc/profile.d/go.sh
[root@falcon ~]# go version
go version go1.11.2 linux/amd64

2.6 创建Falcon工作目录

 [root@falcon ~]# mkdir -p $GOPATH/src/github.com/open-falcon

2.7 下载Falcon源码

 [root@falcon ~]# cd $GOPATH/src/github.com/open-falcon
[root@falcon open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git

2.8 初始化数据库

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

2.9 获取rrdtool工具包

 [root@falcon db_schema]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/
[root@falcon falcon-plus]# go get github.com/open-falcon/rrdlite

2.10 编译及打包

 [root@falcon falcon-plus]# make all
[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 创建工作目录

 [root@falcon ~]# export FALCON_HOME=/data/falcon
[root@falcon ~]# export WORKSPACE=$FALCON_HOME/open-falcon
[root@falcon ~]# mkdir -p $WORKSPACE

3.2 解压二进制包

 [root@falcon ~]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/
[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
 
 [root@falcon ~]# cd $WORKSPACE
[root@falcon open-falcon]# grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/root:123456/g'
[root@falcon open-falcon]# grep -Ir 3306 ./ #确认修改
提示:由于默认所有配置文件的数据库配置均为空,因此需要将所有配置文件中关于db的用户名和密码进行修改。

3.3 启动后端模块

 [root@falcon ~]# cd $WORKSPACE
[root@falcon open-falcon]# ./open-falcon start #启动所有后端模块
[root@falcon open-falcon]# ./open-falcon check #检查启动情况
提示:更多命令使用方法:
 # ./open-falcon [start|stop|restart|check|monitor|reload] module
# ./open-falcon start agent
[root@falcon open-falcon]# ./open-falcon check
falcon-graph UP 17148
falcon-hbs UP 17165
falcon-judge UP 17178
falcon-transfer UP 17187
falcon-nodata UP 17199
falcon-aggregator UP 17209
falcon-agent UP 17220
falcon-gateway UP 17232
falcon-api UP 17243
falcon-alarm UP 17259
相关排查log见:$WorkDir/$moduleName/log/logs/xxx.log

四 部署前端

4.1 创建工作目录

见3.1。

4.2 下载前端源码

 [root@falcon ~]# cd $WORKSPACE
[root@falcon open-falcon]# git clone https://github.com/open-falcon/dashboard.git

4.3 安装依赖

 [root@falcon ~]# yum install -y python-virtualenv
[root@falcon ~]# yum install -y python-devel
[root@falcon ~]# yum install -y openldap-devel
[root@falcon ~]# yum install -y mariadb-devel
[root@falcon ~]# yum groupinstall "Development tools" -y
[root@falcon ~]# cd $WORKSPACE/dashboard/
[root@falcon dashboard]# virtualenv ./env
[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配置

 [root@falcon ~]# vi /data/falcon/open-falcon/dashboard/rrd/config.py
# portal database
# TODO: read from api instead of db
PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1")
PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306))
PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root")
PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","123456") #修改数据库密码
PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal") # alarm database
# TODO: read from api instead of db
ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1")
ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306))
ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root")
ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","123456") #修改数据库密码
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")
提示:config.py配置文件解析:
API_ADDR:表示后端api组件的地址,前后端部署在同一台时不需要修改。

4.6 放通防火墙

 [root@falcon ~]# firewall-cmd --add-port=8081/tcp --permanent
[root@falcon ~]# firewall-cmd --reload
提示:若已关闭防火墙,则跳过此步骤。

4.7 启动dashboard

 [root@falcon ~]# cd /data/falcon/open-falcon/dashboard/
[root@falcon dashboard]# bash control start #以生产模式启动
[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。
 [root@node01 ~]# mkdir -p /data/falcon/open-falcon/		#node01节点创建工作目录
[root@falcon ~]# cd /data/falcon/open-falcon/
[root@falcon open-falcon]# scp -r agent/ root@172.24.10.216:/data/falcon/open-falcon/
[root@falcon open-falcon]# scp -r open-falcon root@172.24.10.216:/data/falcon/open-falcon/

6.3 修改agent配置

 [root@node01 ~]# vi /data/falcon/open-falcon/agent/config/cfg.json
{
"debug": true, # 控制一些debug信息的输出,生产环境通常设置为false
"hostname": "", # agent采集了数据发给transfer,endpoint就设置为了hostname,默认通过`hostname`获取,如果配置中配置了hostname,就用配置中的
"ip": "", # agent与hbs心跳的时候会把自己的ip地址发给hbs,agent会自动探测本机ip,如果不想让agent自动探测,可以手工修改该配置
"plugin": {
"enabled": false, # 默认不开启插件机制
"dir": "./plugin", # 把放置插件脚本的git repo clone到这个目录
"git": "https://github.com/open-falcon/plugin.git", # 放置插件脚本的git repo地址
"logs": "./logs" # 插件执行的log,如果插件执行有问题,可以去这个目录看log
},
"heartbeat": {
"enabled": true, # 此处enabled要设置为true
"addr": "172.24.10.95:6030", # hbs的地址,端口是hbs的rpc端口
"interval": 60, # 心跳周期,单位是秒
"timeout": 1000 # 连接hbs的超时时间,单位是毫秒
},
"transfer": {
"enabled": true,
"addrs": [
"172.24.10.95:18433"
], # transfer的地址,端口是transfer的rpc端口, 可以支持写多个transfer的地址,agent会保证HA
"interval": 60, # 采集周期,单位是秒,即agent一分钟采集一次数据发给transfer
"timeout": 1000 # 连接transfer的超时时间,单位是毫秒
},
"http": {
"enabled": true, # 是否要监听http端口
"listen": ":1988",
"backdoor": false
},
"collector": {
"ifacePrefix": ["eth", "em"], # 默认配置只会采集网卡名称前缀是eth、em的网卡流量,配置为空就会采集所有的,lo的也会采集。可以从/proc/net/dev看到各个网卡的流量信息
"mountPoint": []
},
"default_tags": {
},
"ignore": { # 默认采集了200多个metric,可以通过ignore设置为不采集
"cpu.busy": true,
"df.bytes.free": true,
"df.bytes.total": true,
"df.bytes.used": true,
"df.bytes.used.percent": true,
"df.inodes.total": true,
"df.inodes.free": true,
"df.inodes.used": true,
"df.inodes.used.percent": true,
"mem.memtotal": true,
"mem.memused": true,
"mem.memused.percent": true,
"mem.memfree": true,
"mem.swaptotal": true,
"mem.swapused": true,
"mem.swapfree": true
}
}

6.4 启动Agent

 [root@node01 ~]# cd /data/falcon/open-falcon/
[root@node01 open-falcon]# ./open-falcon start agent
[root@node01 open-falcon]# ./open-falcon monitor agent #查看运行日志

6.5 检查Agent

 [root@node01 ~]# cd /data/falcon/open-falcon/agent/bin
[root@node01 bin]# ./falcon-agent --check
disk.io ... ok
memory ... ok
netstat ... ok
ss -s ... ok
kernel ... ok
net.if ... ok
loadavg ... ok
cpustat ... ok
du -bs ... ok
df.bytes ... ok
ss -tln ... ok
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

002.Open-Falcon Server部署及Agent监控的更多相关文章

  1. 运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本

    运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上一篇博客我们分享了如何基于yum的方式部署zabbix 4. ...

  2. SQL Server添加MDW性能监控报表(转载)

    10.2 Data Collector与MDW Data Collection功能是SQL SERVER 2005版本提供的数据库监控报表的功能,通过定时地对数据库的语句运行情况,服务器各种资源的监控 ...

  3. SQL Server添加MDW性能监控报表

    10.2 Data Collector与MDW Data Collection功能是SQL SERVER 2005版本提供的数据库监控报表的功能,通过定时地对数据库的语句运行情况,服务器各种资源的监控 ...

  4. zabbix学习-如何部署一个agent客户端

    1. 部署一个agent客户端很简单,比如监控服务器本身 yum install zabbix-agent -y 2.配置文件位置: vim /etc/zabbix/zabbix-agendt.con ...

  5. 使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统

    使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblo ...

  6. 部署点评Cat监控项目(转)

    原文地址:http://www.bubuko.com/infodetail-986338.html 在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat, ...

  7. docker 一键安装zabbix server、zabbix agent

    基本原理.须知:1.zabbix 分为zabbix server和zabbix agent,其中zabbix server需要web环境,并且其数据存储在独立的数据库中:2.docker是一种容器服务 ...

  8. 部署点评Cat监控项目

    在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目. 首先,到项目的Gi ...

  9. Zabbix Server 自带模板监控有密码MySQL数据库

    Zabbix Server 自带模板监控有密码MySQL数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.Zabbix-agent端的配置 1>.为数据库设置密码 ...

随机推荐

  1. linux挂载硬盘以及卸载硬盘

    1.在vmware添加硬盘 2.输入fdisk -l 查看新增加的硬盘 3.分区初始化 4.指定文件系统 5.修改fstab文件 fstab: 6.刷新验证 mount -a 挂载定义在/etc/fs ...

  2. java 多线程四

    java 多线程一 java 多线程二 java 多线程三 java 多线程四 一个生产者,消费者的例子: import java.util.Stack; /** * Created by root ...

  3. Principal components analysis(PCA):主元分析

    在因子分析(Factor analysis)中,介绍了一种降维概率模型,用EM算法(EM算法原理详解)估计参数.在这里讨论另外一种降维方法:主元分析法(PCA),这种算法更加直接,只需要进行特征向量的 ...

  4. 【API】恶意样本分析手册——API函数篇

    学编程又有材料了 http://blog.nsfocus.net/malware-sample-analysis-api/

  5. oracle查询重复数据方法

    SQL重复记录查询方法 2008年08月14日 星期四 21:01 SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peop ...

  6. zabbix3.0对tcp连接数和状态的监控优化

    zabbix3.0对tcp连接数及状态的监控优化 之前对tcp的监控采用netstat命令,发现在服务器繁忙的时候效果不理想,这个命令占用大量的cpu有时候高达90%以上,可能会导致业务的不稳定,所以 ...

  7. Java基础:整型数组(int[]、Integer[])排序

    Windows 10家庭中文版,java version "1.8.0_152",Eclipse Oxygen.1a Release (4.7.1a), 参考链接:http://w ...

  8. 在Android开发中,定时执行任务的3种实现方法

    在Android开发中,定时执行任务的3种实现方法: 一.采用Handler与线程的sleep(long)方法(不建议使用,Java的实现方式)二.采用Handler的postDelayed(Runn ...

  9. eslint ":"号

    eslint规则默认是没有;号的,如果也没要加;号,那就要在.eslintrc.js里面,加配置: 'semi':['error',always']   强制有;号,没有就报错 参考地址:http:/ ...

  10. 论文笔记 SSD: Single Shot MultiBox Detector

    转载自:https://zhuanlan.zhihu.com/p/33544892 前言 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):(1)two-st ...