监控软件之open-falcon

时间:2022-09-17 19:06:42

一、open-falcon介绍

1)中文社区介绍

http://book.open-falcon.org/zh_0_2/intro/

参照文档: https://www.cnblogs.com/LAlexH/p/11161943.html     

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

视频连接:http://www.jikexueyuan.com/course/1651_3.html?ss=1

2)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编写

3)falcon的特性

数据采集方式多样灵活:支持agent、snmp、用户主动push、自定义插件等多种方式进行数据采集
高效率报警策略管理
人性化的告警设置
dashboard多维度数据展示
模板支持继承的同时支持覆盖策略项
server端无需做配置,只需要在client端按照agent则可以自动监控
引入tag概念,通过tag多维度对数据进行查询展示

 

 

监控软件之open-falcon

监控软件之open-falcon

 

4) falcon的架构图

Open-Falcon是一个比较大的分布式系统,有十几个组件。按照功能,这十几个组件可以划分为 基础组件、作图链路组件和报警链路组件,其安装部署的架构如下图所示

监控软件之open-falcon

 二、open-falcon单机环境安装

1)安装redis

1.1)yum安装方式

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install redis -y
systemctl start redis
systemctl enable redis
systemctl status redis

1.2)下载 tar包进行安装

#创建redis工作目录
mkdir /home/redis && cd /home/redis
#下载redis程序包:
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
#编译安装
tar -zxvf redis-4.0.9.tar.gz
mv redis-4.0.9 redis4.0.9 && cd redis4.0.9
mkdir logs
make && make install
#修改配置文件
vim redis.conf
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/home/redis/redis4.0.9/logs/redis.log"
#启动redis
redis-server /home/redis/redis4.0.9/redis.conf
#连接测试
redis-cli -h 127.0.0.1 -p 6379

 2)安装mysql

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld.service
[root@node01 ~]# grep "password" /var/log/mysqld.log
2019-07-13T02:39:54.602191Z 1 [Note] A temporary password is generated for root@localhost: i?5XuEqh+aRL
第一次登陆。必须给密码
mysql -uroot -pi?5XuEqh+aRL

mysql>  set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

systemctl stop mysqld.service
systemctl start mysqld.service
systemctl status mysqld.service
systemctl enable mysqld.service
mysql -uroot -p123456

 2.1) 卸载mysql源。防止每次yum操作都会自动更新

yum -y remove mysql57-community-release-el7-10.noarch

2.2)不要使用root账号

GRANT ALL  ON *.* TO 'falcon'@'localhost' IDENTIFIED BY 'falcon';
GRANT ALL  ON *.* TO 'falcon'@'%' IDENTIFIED BY 'falcon';
flush privileges;

3)初始化表结构

监控软件之open-falcon监控软件之open-falcon
git clone  https://github.com/open-falcon/falcon-plus.git
#导入表结构
cd ./falcon-plus/scripts/mysql/db_schema/
mysql -ufalcon -pfalcon < 1_uic-db-schema.sql
mysql -ufalcon -pfalcon < 2_portal-db-schema.sql
mysql -ufalcon -pfalcon < 3_dashboard-db-schema.sql
mysql -ufalcon -pfalcon < 4_graph-db-schema.sql
mysql -ufalcon -pfalcon < 5_alarms-db-schema.sql
#删除目录
rm -rf falcon-plus/
View Code

4)安装golang

监控软件之open-falcon监控软件之open-falcon
#下载go安装包
https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
#解压至/home目录下
tar -zxvf go1.12.7.linux-amd64.tar.gz -C /home
#声明PATH
echo "export PATH=$PATH:/home/go/bin" >> /etc/profile
source  /etc/profile
#查看go版本
go version
View Code

 4.1)创建工作目录

export FALCON_HOME=/home
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE

 5)在工作目录中下载安装包

监控软件之open-falcon监控软件之open-falcon
#下载安装包
wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.0/open-falcon-v0.2.0.tar.gz
#解压
cd /home/open-falcon
tar  -zxvf open-falcon-v0.2.0.tar.gz
View Code

6)后端启动

监控软件之open-falcon监控软件之open-falcon
#修改配置文件为自己设置的mysql用户和密码
grep -Ilr 3306  ./ | xargs -n1 -- sed -i 's/root:/falcon:falcon/g'
#启动服务
/home/open-falcon/open-falcon start
/home/open-falcon/open-falcon check
#显示如下则全部启动成功
  falcon-graph UP 27685 
  falcon-hbs UP 27697 
  falcon-judge UP 27707 
  falcon-transfer UP 27716 
  falcon-nodata UP 27724 
  falcon-aggregator UP 27732 
  falcon-agent UP 27743 
  falcon-gateway UP 27753 
  falcon-api UP 27761 
  falcon-alarm UP 28201
View Code

三、安装前端展示界面

1)下载展示模板 dashboard

#下载dashboard项目至本地
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"

2)创建依赖环境

#创建独立的虚拟环境
cd $WORKSPACE/dashboard/
virtualenv ./env
#pip安装依赖
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

3)在依赖环境中创建配置文件

vim rrd/config
# 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","falcon")
PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","falcon")
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","falcon")
ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","falcon")
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")

4)启动服务查看状态

#启动
bash control start
bash control status
#查看日志
bash control tail

 

监控软件之open-falcon

服务器安装完成

4.1)如果出现内部错误

[root@node01 dashboard]#  cat rrd/config.py   请查看改该文件连接的mysql是否正常加载了用户名和密码

四、客户端的安装

 1)从服务端拷贝文件到客户端

[root@node01 open-falcon]# pwd
/home/open-falcon
[root@node01 open-falcon]# scp -r agent/ root@192.168.1.7:/home/open-falcon/
[root@node01 open-falcon]# scp open-falcon root@192.168.1.7:/home/open-falcon/

 2)编辑配置文件

#编辑agent配置文件,修改hostname、transfer、heaetbeat配置项
vim agent/config/cfg.json
#启动agent,查看agent状态
./open-falcon start agent
./open-falcon check agent
tailf agent/logs/agent.log
#重载配置文件
curl 127.0.0.1:1988/config/reload

稍等片刻。机器自动发现

监控软件之open-falcon

 五、查询基本使用

1)机器选择,监控指标选择

监控软件之open-falcon

1.1)查看图像

监控软件之open-falcon

2) Screen的功能的基本使用

监控软件之open-falcon

监控软件之open-falcon

监控软件之open-falcon

监控软件之open-falcon

归纳: 先创建demo组,再创建 相关监控的类。最后添加监控指标

 监控软件之open-falcon

监控软件之open-falcon

再继续添加内存

 3)分组功能

监控软件之open-falcon

监控软件之open-falcon

添加机器

监控软件之open-falcon

4)创建模板

监控软件之open-falcon

添加监控策略

监控软件之open-falcon

监控软件之open-falcon

监控软件之open-falcon

 将之前的主机组绑定模板

监控软件之open-falcon

5)测试肯定会触发的报警值。模板里面进行修改

监控软件之open-falcon

监控软件之open-falcon