小米推出了一款基于golang和python开发的开源的web自动化监控运维系统,应大家的要求,我将安装方法在这里留一下:
步骤:
部署前的准备
设置环境变量
redis安装
MySql安装
初始化Mysql脚本
下载open-falcon
安装GoLang环境 (只是使用的话,无需安装,略过)
开始部署
安装agent
安装hbs
安装transfer
安装graph
安装query
安装 dashboard
安装judge
安装portal
安装alarm
安装sender
安装links
安装fe
特别说明:
针对每个组件的cfg.json或者配置文件,各位还是需要自己配置一下,或者采用github上的安装方法。
#open-falcon_1.0版本服务端和服务端的agent安装方法
#以下仅针对centos6的root用户下安装、配置
yum remove git -y
yum install wget unzip -y
#系统初始化(本处可以参考自己的选择)
yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel libxslt-devel gd* perl perl-devel gzip openssl openssl-devel vim epel-release
#falcon工作机制:
#安装git
yum install expat-devel -y #http-push模块的依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
wget https://codeload.github.com/git/git/tar.gz/v1.9.2
mv v1.9.2 git-1.9.2.tar.gz
tar -zxf git-1.9.2.tar.gz
cd ./git-1.9.2
make
make install
git –version
#安装golang环境
wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -C /usr/local/ -xzf go1.8.3.linux-amd64.tar.gz
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
go version
#go环境相关设置
#安装redis、epel源
yum install epel-release -y
yum install redis -y
service redis start #redis无账户、无密码
#redis的检测方法:
#[root@localhost ~]#redis-benchmark -h localhost -p 6379 -c 100 -n 100000
#100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
#[root@localhost ~]#redis-cli -h localhost -p 6379 monitor
#Dump all the received requests in real time;
#监控host为localhost,端口为6380,redis的连接及读写操作
#[root@localhost ~]#redis-cli -h localhost -p 6379 info
#Provide information and statistics about the server
#提供host为localhost,端口为6380,redis服务的统计信息
#安装数据库
yum install mysql mysql-server php-mysql.x86_64 -y
service mysqld start #mysql的root无密码
#下载安装falcon安装sql脚本
git clone https://github.com/open-falcon/scripts.git
cd scripts
mysql -uroot < db_schema/dashboard-db-schema.sql
mysql -uroot < db_schema/graph-db-schema.sql
mysql -uroot < db_schema/links-db-schema.sql
mysql -uroot < db_schema/portal-db-schema.sql
mysql -uroot < db_schema/uic-db-schema.sql
#/* mysql如果有密码,需要指定密码.*/
#下载、设置open-falcon工作目录
export WORKSPACE=/root/open-falcon #这是falcon安装时临时设置环境变量,关闭shell失效
mkdir -pv $WORKSPACE
DOWNLOAD=”https://github.com/open-falcon/of-release/releases/download/v0.1.0/open-falcon-v0.1.0.tar.gz”
cd $WORKSPACE
mkdir -pv ./tmp
wget $DOWNLOAD -O open-falcon-latest.tar.gz
tar -zxf open-falcon-latest.tar.gz -C ./tmp/
for x in `find ./tmp/ -name “*.tar.gz”`;do \
app=`echo $x|cut -d ‘-‘ -f2`; \
mkdir -p $app; \
tar -zxf $x -C $app; \
done
#更换yum源为163
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo
yum clean all
yum makecache
#安装agent,每台机器上,都需要部署agent,agent会自动采集预先定义的各种采集项,每隔60秒,push到transfer。
cd $WORKSPACE
cd agent/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#校验agent服务,默认:http://127.0.0.1:1988
#安装hbs;心跳服务器,公司所有agent都会连到HBS,每分钟发一次心跳请求。
cd hbs/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#安装transfer;默认监听在:8433端口上,agent会通过jsonrpc的方式来push数据上来。
cd $WORKSPACE
cd ../transfer/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#/* 校验服务,这里假定服务开启了6060的http监听端口。检验结果为ok表明服务正常启动。 */
curl -s http://127.0.0.1:6060/health
#安装graph组件,是存储绘图数据、历史数据的组件。transfer会把接收到的数据,转发给graph。
cd ../graph/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#
/* 校验服务,这里假定服务开启了默认6071的http监听端口。检验结果为ok表明服务正常启动。 */
curl -s http://127.0.0.1:6071/health
#安装query组件,绘图数据的查询接口,query组件收到用户的查询请求后,会从后端的多个graph,查询相应的数据,聚合后,再返回给用户。
cd ../query/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#安装dashboard是面向用户的查询界面,在这里,用户可以看到push到graph中的所有数据,并查看其趋势图。
#这里需要安装两个软件, pip 和virtualenv 。如果软件仓库里面有,直接用yum安装,否则需要用源码来安装。
#下面介绍用源码来安装 pip 和 virtualenv。
yum install python-setuptools -y
yum install readline-devel sqlite-devel -y
cd ..
wget https://bootstrap.pypa.io/get-pip.py -c
python get-pip.py
pip –version
pip install virtualenv
#使用国内豆瓣源
mkdir -pv /root/.pip
vi /root/.pip/pip.conf
[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
#安装pip依赖,如果不安装在后面env会gcc报错等
yum install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev -y
yum -y install gcc automake autoconf libtool make zlib-devel openssl* bzip2* -y
yum -y install mysql-devel libxml2 libxml2-dev libxslt* zlib gcc openssl
yum install gcc python-devel -y
#安装,dashboard的config的路径为 $WORKSPACE/dashboard/rrd/config.py,里面有数据库相关的配置信息,如有必要,请修改。默认情况下(所有组件都在同一台服务器上),保持默认配置即可
cd /root/open-falcon/dashboard/
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
./control start
./control tail
#检效dashboard
curl -s http://127.0.0.1:8081
#安装Judge用于告警判断,agent将数据push给Transfer,Transfer不但会转发给Graph组件来绘图,还会转发给Judge用于判断是否触发告警。
cd ../judge/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#安装Portal是用来配置报警策略的;Portal是个Python的项目,无需像Go的项目那样去做编译。不过Go的项目是静态编译的,编译好了之后二进制无依赖,拿到其他机器也可以跑起来,Python的项目就需要安装一些依赖库了。
cd ../portal/
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
./control start
./control tail
#Portal的配置文件在frame/config.py
#安装alarm模块是处理报警event的,judge产生的报警event写入redis,alarm从redis读取处理
cd ../alarm/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#安装Sender这个模块专门用于调用各公司提供的邮件、短信发送接口。
cd ../sender/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#安装Links是为报警合并功能写的组件。如果你不想使用报警合并功能,这个组件是无需安装的。
cd ../links/
virtualenv ./env
vim ./frame/config.py
./env/bin/pip install -r pip_requirements.txt
#Links的配置文件在frame/config.py,注意里面的配置。
#安装fe;这是Go版本的UIC,也是一个统一的web入口,因为监控组件众多,记忆ip、port去访问还是比较麻烦。fe像是一个监控的集合面板
cd ../fe/
mv cfg.example.json cfg.json
vim cfg.json
./control start
./control tail
#检效fe,默认是port是1234
curl -s http://127.0.0.1:1234
#配置fe的root密码
http://127.0.0.1/root?password=abcd
#密码设置可以根据自己的情况使用浏览器参照以上方法使用,
#对于falcon有一点需要特别说明,他不适合在公开网络使用,尤其是board部分,只要有你的端口就可以直达,除非你很清楚自己的安全可控。
说明:对于使用NAT网络的请注意端口映射就好,有问题可以留言或Q我。
在此,向开源的小米和其falcon团队致敬!
github地址:https://github.com/open-falcon
~~~~~~~~~~~~~~~~~~~~~~~~~~~
open-falcon 2.0快速安装(后端和前端安装在一台服务器上)
#以下仅针对centos6的root用户下安装、配置
yum remove git -y
yum install wget unzip -y
#系统初始化(本处可以参考自己的选择)
yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel libxslt-devel gd* perl perl-devel gzip openssl openssl-devel vim epel-release
#安装git
yum install expat-devel -y #http-push模块的依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
wget https://codeload.github.com/git/git/tar.gz/v1.9.2
mv v1.9.2 git-1.9.2.tar.gz
tar -zxf git-1.9.2.tar.gz
cd ./git-1.9.2
make
make install
git –version
#安装golang环境
wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -C /usr/local/ -xzf go1.8.3.linux-amd64.tar.gz
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
go version
#安装redis、epel源
yum install epel-release -y
yum install redis -y
service redis start #redis无账户、无密码
#redis的检测方法:
#[root@localhost ~]#redis-benchmark -h localhost -p 6379 -c 100 -n 100000
#100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
#[root@localhost ~]#redis-cli -h localhost -p 6379 monitor
#Dump all the received requests in real time;
#监控host为localhost,端口为6380,redis的连接及读写操作
#[root@localhost ~]#redis-cli -h localhost -p 6379 info
#Provide information and statistics about the server
#提供host为localhost,端口为6380,redis服务的统计信息
#安装数据库
yum install mysql mysql-server php-mysql.x86_64 -y
service mysqld start #mysql的root无密码
初始化MySQL表结构
cd /tmp/ && git clone https://github.com/open-falcon/falcon-plus.git
cd /tmp/falcon-plus/scripts/mysql/db_schema/
mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
rm -rf /tmp/falcon-plus/
如果你是从v0.1.0升级到当前版本v0.2.0,那么只需要执行如下命令:
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
#服务端安装
export HOME=/home/work
export WORKSPACE=$HOME/open-falcon
mkdir -p $WORKSPACE
cd $WORKSPACE
pwd
cd
wget -c https://github.com/open-falcon/falcon-plus/releases/download/v0.2.0/open-falcon-v0.2.0.tar.gz
tar -xzvf open-falcon-v0.2.0.tar.gz -C $WORKSPACE
cd $WORKSPACE
./open-falcon start
./open-falcon check
#客户端安装(以下是跟服务端在一台机器上)
yum install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev -y
yum -y install gcc automake autoconf libtool make zlib-devel openssl* bzip2* -y
yum -y install mysql-devel libxml2 libxml2-dev libxslt* zlib gcc openssl
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 ./dashboard/
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
bash control start
bash control tail
curl -s http://127.0.0.1:8080 #返回ok既是安装好了
http://127.0.0.1:8081 #查看首页
http://127.0.0.1:1988 #查看服务端的agent图标显示