官方文档

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. [官网]Apache Log4j2 最新版安全提示 2.17.0

    https://logging.apache.org/log4j/2.x/ 最近一个周的时间 log4j2 从 2.14 跃升到了2.17 还在不停的升级 安全问题正是焦头烂额 free softwa ...

  2. 没有虚拟DOM版本的vue(Vue Vapor)

    前言 随着Svelte和SolidJS的流行,无虚拟DOM模式逐渐开始火了起来.vue也推出了无虚拟DOM模式的版本,就是我们今天要讲的Vue Vapor. 什么是Vue Vapor Vue Vapo ...

  3. 栈:数据结构中的后进先出(LIFO)容器

    栈是一种基本的数据结构,广泛应用于计算机科学和编程中,用于管理数据的存储和访问.栈遵循后进先出(Last In, First Out,LIFO)原则,即最后放入栈的元素首先被取出.这种数据结构模拟了物 ...

  4. Go 匿名函数与闭包

    Go 匿名函数与闭包 匿名函数和闭包是一些编程语言中的重要概念,它们在Go语言中也有重要的应用.让我们来详细介绍这两个概念,并提供示例代码来帮助理解. 目录 Go 匿名函数与闭包 一.匿名函数(Ano ...

  5. batch size设置技巧

    1.什么是BatchSize Batch一般被翻译为批量,设置batch_size的目的让模型在训练过程中每次选择批量的数据来进行处理.Batch Size的直观理解就是一次训练所选取的样本数. Ba ...

  6. 【三】gym简单画图、快来上手入门吧,超级简单!

    相关文章: [一]gym环境安装以及安装遇到的错误解决 [二]gym初次入门一学就会-简明教程 [三]gym简单画图 [四]gym搭建自己的环境,全网最详细版本,3分钟你就学会了! [五]gym搭建自 ...

  7. 全网最详细超长python学习笔记、14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了!

    相关文章: 全网最详细超长python学习笔记.14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了! [1]windows系统如何安装后缀是whl的python库 [2]超级详细Pytho ...

  8. 4.8 x64dbg 学会扫描应用堆栈

    堆栈是计算机中的两种重要数据结构 堆(Heap)和栈(Stack)它们在计算机程序中起着关键作用,在内存中堆区(用于动态内存分配)和栈区(用于存储函数调用.局部变量等临时数据),进程在运行时会使用堆栈 ...

  9. 遥感图像处理笔记之【Multi-label Land Cover Classification with Deep Learning】

    遥感图像处理学习(3) 前言 遥感图像处理方向的学习者可以参考或者复刻 本文初编辑于2023年12月14日 2024年1月24日搬运至本人博客园平台 文章标题:Multi-label Land Cov ...

  10. Florr 从新手到大佬

    Florr 从新手到大佬 新手上路 首先在这里,你会遇到一些简单的教程.按照教程完成,也可以参考链接里的内容. 装备分为一下几种: $ \color{#7eef6D} \text{Common} $ ...