开源--open-falcon

人码图技术分享836

一、open-falcon简介

  open-falcon是由小米运维团队,从互联网公司角度为出发点,开发出来的一套面向互联网行业的企业级的开源监控系统,截至2019年7月,open-falcon最新稳定版本为v0.2


二、open-falcon特性

数据采集方式多样灵活:支持agent、snmp、用户主动push、自定义插件等多种方式进行数据采集

高效率报警策略管理

人性化的告警设置

dashboard多维度数据展示

模板支持继承的同时支持覆盖策略项

server端无需做配置,只需要在client端按照agent则可以自动监控

引入tag概念,通过tag多维度对数据进行查询展示

三、open-falcon系统架构

1688909-20190709181300200-1273739433.png

四、open-falcon组件功能

falcon-agent:负责采集监控目标的数据,agent本身有一个http接口,用户可以通过http接口将数据主动push到agent。agent和transfer保持长连接,将采集到的数据上报给transfer。

transfer:会将数据分别转发给judge和graph,judge和graph使用一致性hash进行数据的分片。

judge:从heartbeat中获取报警策略,进行策略报警判断,并将判断是否告警的事件放进redis队列。

alerm:从redis中取出事件,根据配置做告警处理,如发送邮件通知等。

graph:负责数据的存储和归档以及数据查询功能。

heartbeat:统计agent上报信息,下发报警策略。

dashboard: 数据展示,用户配置。

五、open-falcon单机版安装

5.1安装redis

#创建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


5.2安装mysql

#安装yum-utils

yum -y install yum-utils

#mysql官网上下载mysql的yum源安装包

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

#添加yum源

rpm -ivh mysql80-community-release-el7-1.noarch.rpm

#开启5.7安装,关闭8.0安装源

yum-config-manager --disable mysql80-community

yum-config-manager --enable mysql57-community

#yum安装mysql

yum -y install mysql-community-server

#修改mysql配置文件,关闭复杂密码策略

echo "validate-password=OFF" >> /etc/my.cnf

#启动mysql 并加入开机启动项             

systemctl start mysqld.service

systemctl status mysqld.service

systemctl enable mysqld.service

#查看默认root密码

grep 'temporary password' /var/log/mysqld.log

#登陆mysql后修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

#root用户授权

GRANT ALL  ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456';

GRANT ALL  ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

flush privileges;


5.3初始化表结构

#clone项目至本地

git clone  https://github.com/open-falcon/falcon-plus.git

#导入表结构

cd ./falcon-plus/scripts/mysql/db_schema/

mysql -uroot -p123456 < 1_uic-db-schema.sql

mysql -uroot -p123456 < 2_portal-db-schema.sql

mysql -uroot -p123456 < 3_dashboard-db-schema.sql

mysql -uroot -p123456 < 4_graph-db-schema.sql

mysql -uroot -p123456 < 5_alarms-db-schema.sql

#删除目录

rm -rf falcon-plus/


5.4安装golang


#下载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


5.5创建工作目录

export FALCON_HOME=/home

export WORKSPACE=$FALCON_HOME/open-falcon

mkdir -p $WORKSPACE

 

5.6下载安装包

#下载安装包

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


5.7后端启动

#修改配置文件为自己设置的mysql用户和密码

grep -Ilr 3306  ./ | xargs -n1 -- sed -i 's/root:/real_user:real_password/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


5.8前端启动

#下载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"

#创建独立的虚拟环境

cd $WORKSPACE/dashboard/

virtualenv ./env

#pip安装依赖

./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple

#修改配置文件

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","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")

#启动

bash control start

bash control status

#查看日志

bash control tail


5.9安装agent

#将agent目录及启动命令拷贝至客户端上

scp -r agent/ root@192.168.1.66:/home/open-falcon/

scp open-falcon root@192.168.1.66:/home/open-falcon/

#编辑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


5.10访问测试

agent访问地址:

http://ip:1988/

dashboard访问地址:

http://ip:8081/

相关文章

linux中用conda创建虚拟环境

linux中用conda创建虚拟环境

首先安装anaconda,使用wegt命令,下载sh文件官网链接:https://www.anaconda.com/products/individual下载命令:wget https://repo....

Linux系统上Nginx+Python的web.py与Django框架环境

Linux系统上Nginx+Python的web.py与Django框架环境

1.编译nginx在网上买了一本《实战nginx-取代Apache的高性能服务器》,写的比较浅,主要是些配置方面的东西,不过却正是目前我所需要的。由于需要支持https和rewrite,所以除了ngi...

Nginx代理Python项目

Nginx代理Python项目

创建django项目:服务器准备:主机ipweb02192.168.15.81、安装python3yum install python3 -y查看是否安装成功python...

开源--Prometheus

开源--Prometheus

前言Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统。周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警发...

Hadoop简介

Hadoop简介

Hadoop(Hdfs\MR\Yarn\ZK)一、Hadoop简介1.1 hadoop简介作用:海量数据的存储,海量数据的分析组件:hdfs--------数据的存储  MapReduce-...

服务器  应用框架。

服务器 应用框架。

nginx是服务器,web.py是web应用框架。简言之,前者封装对网络io的处理,后者负责具体应用的逻辑,解决的问题是不一样的。形象点呢,一个请求来了,nginx先把请求拦下来,发现要的是现成的东西...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。