官方文档

https://book.open-falcon.org/zh_0_2/

安装包下载地址

  • 百度网盘地址
链接: https://pan.baidu.com/s/1xLzUzZpAagtJHpnX5SjUiw 提取码: ve3u

环境准备

安装redis

yum install -y mysql-server

安装mysql

yum install -y mysql-server

二进制安装参考

  • 创建数据库用户并为用户分配权限
GRANT ALL PRIVILEGES ON *.* TO 'real_user'@'localhost' IDENTIFIED BY 'real_password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;

安装git

#查看linux版本信息:
$ cat /etc/redhat-release
#输入命令安装git:
$ yum install git
#等待下载,自动安装完毕,查看git版本
$ git --version

安装GO

tar -C /usr/local/ -xzvf go1.13.5.linux-amd64.tar.gz
  • 配置环境变量
vim /etc/profile
export GOROOT=/usr/local/go
export GOPATH=/home/bruce/goProject
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin
export FALCON_HOME=/home/work
export WORKSPACE=$FALCON_HOME/open-falcon
source /etc/profile
mkdir -p $WORKSPACE

查询安装结果

go version
go version go1.13.5 linux/amd64

安装后台

tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
  • 在一台机器上启动所有的后端组件
#首先确认配置文件中数据库账号密码与实际相同,否则需要修改配置文件。
cd $WORKSPACE
grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/real_user:real_password/g'
vim agent/config/cfg.json
{
"debug": true,
"hostname": "10.159.42.37",
"ip": "",
"plugin": {
"enabled": false,
"dir": "./plugin",
"git": "https://github.com/open-falcon/plugin.git",
"logs": "./logs"
},
"heartbeat": {
"enabled": true,
"addr": "10.159.44.248:6030",
"interval": 60,
"timeout": 1000
},
"transfer": {
"enabled": true,
"addrs": [
"10.159.44.248:8433"
],
"interval": 60,
"timeout": 1000
},
"http": {
"enabled": true,
"listen": ":1988",
"backdoor": false
},
"collector": {
"ifacePrefix": ["eth", "em"],
"mountPoint": []
},
"default_tags": {
},
"ignore": {
"cpu.busy": false,
"df.bytes.free": false,
"df.bytes.total": false,
"df.bytes.used": false,
"df.bytes.used.percent": false,
"df.inodes.total": false,
"df.inodes.free": false,
"df.inodes.used": false,
"df.inodes.used.percent": false,
"mem.memtotal": false,
"mem.memused": false,
"mem.memused.percent": false,
"mem.memfree": false,
"mem.swaptotal": false,
"mem.swapused": false,
"mem.swapfree": false
}
  • 启动
cd $WORKSPACE
./open-falcon start
or
./open-falcon start agent
# 检查所有模块的启动状况
./open-falcon check
# 查看某个模块的日志
./open-falcon monitor agent
  • 更多的命令行工具用法
# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon start agent ./open-falcon check
falcon-graph UP 53007
falcon-hbs UP 53014
falcon-judge UP 53020
falcon-transfer UP 53026
falcon-nodata UP 53032
falcon-aggregator UP 53038
falcon-agent UP 53044
falcon-gateway UP 53050
falcon-api UP 53056
falcon-alarm UP 53063 For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log
  • 关闭防火墙
1.使用命令:systemctl status firewalld.service查看防火墙状态
2.执行后可以看到绿色字样标注的“active(running)”,说明防火墙是开启状态
3.使用命令:systemctl stop firewalld.service 关闭运行的防火墙
4.关闭后,使用命令systemctl status firewalld.service查看防火墙状态可以看到,disavtive(dead...
5.前面的方法,一旦重启操作系统,防火墙就自动开启了,该怎么设置才能永久关闭防火墙呢?

部署前端:

建议使用centos7.0以上版本部署,python3版本兼容,如果使用centos6版本,python2版本不兼容。详细使用手册可以参考官网。

cd $WORKSPACE
git clone https://github.com/open-falcon/dashboard.git
  • 安装依赖包
yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools" cd $WORKSPACE/dashboard/
virtualenv ./env ./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
  • 修改dashboard配置信息
#其中数据库用户名和密码改一下,还有API服务的访问地址
vim /home/work/open-falcon/dashboard/rrd/config.py
# Falcon+ API
API_ADDR = os.environ.get("API_ADDR","http://10.159.44.248:8080/api/v1")
API_USER = os.environ.get("API_USER","admin")
API_PASS = os.environ.get("API_PASS","password") # portal database
# TODO: read from api instead of db
PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","10.159.44.248")
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","")
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","10.159.44.248")
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","")
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")
  • 启动
#以开发者模式启动
./env/bin/python wsgi.py
open http://127.0.0.1:8081 in your browser.
#生产环境启动
bash control start
open http://127.0.0.1:8081 in your browser.
  • 停止
bash control stop
  • 查看日志
bash control tail
  • 展示

邮件报警

修改ALARM配置

  • 编辑ALERM服务配置文件
vim /home/work/open-falcon/alarm/config/cfg.json
#红框位置修改成邮件接收接口地址 #保存退出
wq!
  • 重启
cd /home/work/open-falcon
./open-falcon restart alerm

修改报警接口

/**
* OPEN-FALLCON发送报警邮件
* @param request
* @return 消息列表json
* @throws Exception
*/
@RequestMapping(value = "/senderFalEmail", method = RequestMethod.POST)
public @ResponseBody
BaseRestResponse senderFalEmail(HttpServletRequest request){
log.info("========进入senderFalEmail Controller");
String to_addrs = request.getParameter("tos");
String subject = request.getParameter("subject");
String content = request.getParameter("content");
log.info("========进入senderFalEmail Controller==========收件人:"+to_addrs+",主题:"+subject+",邮件内容:"+content);
MimeMessage message = mailSender.createMimeMessage();
try{
MimeMessageHelper helper = new MimeMessageHelper(message, true,"utf-8");//构造消息helper,第二个参数表明这个消息是multipart类型的
helper.setFrom("cat@usmartcare.com");
helper.setTo(to_addrs);
helper.setSubject(subject);
helper.setText(content, true);//第二个参数表明这是一个HTML
mailSender.send(message);
}catch (MailException mailException){
log.info("发送邮件报警异常!content="+content+mailException.getMessage());
return new BaseRestResponseData(MessageError.EMAIL_SEND_ERROR).data(mailException.getMessage());
}catch (MessagingException messageException){
log.info("发送邮件报警内容异常!content="+content+messageException.getMessage());
return new BaseRestResponseData(MessageError.EMAIL_SEND_ERROR).data(messageException.getMessage());
}
log.info("senderFalEmail邮件发送完毕");
return new BaseRestResponseData();
}

报警测试邮件展示

PROBLEM P0 Endpoint:10.199.96.152 Metric:mem.memfree.percent Tags: all(#3): 7.43705<=10 Note:服务器内存告警,请及时处理 Max:3, Current:1 Timestamp:2019-12-25 09:58:00 http://portalip:8081/portal/template/view/4

OK P0 Endpoint:10.199.96.152 Metric:mem.memfree.percent Tags: all(#3): 13.87895<=10 Note:服务器内存告警,请及时处理 Max:3, Current:1 Timestamp:2019-12-25 09:59:00 http://portalip:8081/portal/template/view/4

Q&A

安装redis问题

安装mysql问题

mysql5.6以前创建用户的问题

监控系统open-falcon安装部署的更多相关文章

  1. Hive SQL 监控系统 - Hive Falcon

    1.概述 在开发工作当中,提交 Hadoop 任务,任务的运行详情,这是我们所关心的,当业务并不复杂的时候,我们可以使用 Hadoop 提供的命令工具去管理 YARN 中的任务.在编写 Hive SQ ...

  2. 分布式监控系统Zabbix--完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  3. Linux下Zabbix5.0 LTS监控基础原理及安装部署(图文教程)

    Zabbix 是什么? zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置,能监视 ...

  4. kafka监控系统kafka eagle安装和使用

    一.kafka eagle介绍 kafka eagle 是一款由国内公司开源的Kafka集群监控系统,可以用来监视kafka集群的broker状态.Topic信息.IO.内存.consumer线程.偏 ...

  5. 微服务监控神器Prometheus的安装部署

    本文涉及:如何在k8s下搭建Prometheus+grafana的监控环境 基本概念 Prometheus提供了容器和云原生领域数据搜集.存储.处理.可视化和告警一套完整的解决方案,最初时是由Soun ...

  6. 分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口

    一.Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172.29.8.50是zabbix_serve ...

  7. 分布式监控系统Zabbix--完整安装记录 -添加web页面监控

    通过zabbix做web监控,不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码或响应时间做报警设置,比如说对某个url进行监控,当访问返回的状态码是非200状态时都报警(创建触发器即可).下 ...

  8. 分布式监控系统Zabbix-完整安装记录 -添加端口监控

    对于进程和端口的监控,可以使用zabbix自带的key进行监控,只需要在server端维护就可以了,相比于nagios使用插件去监控的方式更为简单.下面简单介绍配置:监控端口zabbix监控端口使用如 ...

  9. 分布式监控系统Zabbix--完整安装记录 -添加apache监控

    前面介绍了zabbix3.0.3环境及相关监控项的添加,下面介绍下针对apache的监控配置:1)在apache配置文件中打开server-status状态访问功能(自带的) [root@IDC-Ad ...

  10. 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

    之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbi ...

随机推荐

  1. scss常用语法

    在线编译 https://wow.techbrood.com/fiddle/11143 群组选择器的嵌套[编译前] .container { h1, h2, h3 {margin-bottom: .8 ...

  2. OpenIM集群(非k8s)部署文档

    自行部署etcd/zookeeper/mysql/kafka/mongo/redis集群,可以根据此性能评估服务器需求. 以下是针对一台华为云主机s3的压测数据:8核16G内存,普通磁盘(非SSD)( ...

  3. C#对象属性浅拷贝和深拷贝

    对象属性和字段拷贝的几种方式 微软提供了浅拷贝 对于值类型,修改拷贝的值不会影响源对象 对于引用类型,修改拷贝后的值会影响源对象,但string特殊,它会拷贝一个副本,互相不会影响 自己实现深拷贝,我 ...

  4. 【1】Anaconda安装超简洁教程,配置环境、创建虚拟环境、添加镜像源

    相关文章: [1]Anaconda安装超简洁教程,瞬间学会! [2]Anaconda下:ipython文件的打开方式,Jupyter Notebook中运行.py文件,快速打开ipython文件的方法 ...

  5. 关于TypeScript中提示xxx is declared but its value is never read的解决方法

    首先,提示很明显,是定义了变量,但是却没有使用.解决方案有如下两种: 一: 需要确定变量是否真的没有使用到,如果没有使用直接删除即可. 二: 对于方法中的入参,是没法随便删除的.这时候我们可以利用Ty ...

  6. (C语言)||2023.12.24||关于strcpy(&a[1],a)

    strcpy 要求传入的两个指针 restrict(即区间不重叠). 因此直接 strcpy(&a[1],a) 是未定义行为.

  7. Java锁到底是个什么东西

    一.java锁存在的必要性 要认识java锁,就必须对2个前置概念有一个深刻的理解:多线程和共享资源. 对于程序来说,数据就是资源. 在单个线程操作数据时,或快或慢不存在什么问题,一个人你爱干什么干什 ...

  8. 点亮.NET的文字云艺术之光——Sdcb.WordCloud 2.0

    点亮.NET的文字云艺术之光--Sdcb.WordCloud 2.0 作为一名.NET开发者,你是否渴望拥有一个强大且易用的库,用以在你的应用程序中创造美轮美奂的文字云?我在经过一轮农历新年前的码力全 ...

  9. 【Unity3D】血条(HP)

    1 需求实现 ​ 人机交互Input 中实现了通过键盘控制坦克运动,通过鼠标控制坦克发射炮弹,本文将在此基础上,增加血条(HP)功能.炮弹命中后,HP 值会减少,因此需要应用到 刚体组件Rigidbo ...

  10. 【Lua】ToLua逻辑热更新

    1 前言 ​ Lua基础语法 中系统介绍了 Lua 的语法体系,xLua逻辑热更新 中介绍了 xLua 的应用,本文将进一步介绍 Unity3D 中基于 ToLua 实现逻辑热更新. ​ 逻辑热更新是 ...