若是對falcon不瞭解,建議先對下這篇文章《open-falcon介紹》(http://book.open-falcon.org/zh/intro/index.html)
html
爲何要選擇open-falcon?前端
* 靈活的數據採集,支持自定義數據上報python
* 支持策略模板、模板繼承和覆蓋mysql
* 高效的告警判別,支持告警暫停、維護週期設置linux
* 組件支持水平拓展c++
* 大部分用golang編寫,部署相對簡單git
open-falcon是採用了先後端分離的架構,這裏演示先後端部署在同一主機上。整個部署劃分爲三大步驟:1、環境準備,2、後端部署,3、前端部署github
1、環境準備:golang
須要注意一下三個版本的限制:redis
mysql 5.5及如下
go *>=1.6
git *>=1.7.5
一、安裝git
[root@cml_ali_sz_120 etc]# yum install -y git
安裝完成後查看版本信息是否符合以上要求:
[root@cml_ali_sz_120 etc]# git version git version 1.8.3.1
二、安裝go語言環境(由於官方yum和阿里yum都沒有go的安裝包,故只能經過fedora的epel倉庫來安裝)
[root@cml_ali_sz_120 etc]# yum install -y epel-release [root@cml_ali_sz_120 etc]# yum install golang -y
一樣的須要檢查下go的版本是否符合上面要求:
[root@cml_ali_sz_120 etc]# go version go version go1.9.4 linux/amd64
三、安裝redis:(這裏我選擇使用源碼安裝,並且爲了方便使用的是shell腳本一鍵安裝的,因此下面貼出安裝redis的命令部分)
redis () { cd /root/src tar xzvf redis-4.0.8.tar.gz mv redis-4.0.8 /usr/local/redis cd /usr/local/redis make rm -f /usr/local/bin/redis-cli ln -s /usr/local/redis/src/redis-cli /usr/local/bin }
四、安裝mysql(同樣使用腳本安裝)
# Mysql yum install -y cmake ncurses-devel gcc gcc-c++ libstdc++-devel libtool-ltdl libtool-ltdl-devel \ bison-devel libaio libaio-devel libtool mysql-devel gcc python-devel Mysql () { groupadd mysql useradd -r -s /bin/false -g mysql mysql cd /root/src rm -rf mysql-5.7.21 tar xzvf mysql-boost-5.7.21.tar.gz cd mysql-5.7.21 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc/ \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=bundled \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_DEBUG=0 \ -DWITH_BOOST=boost if make;then make install else exit 1 fi /bin/cp support-files/mysql.server /etc/init.d/mysql chmod a+x /etc/init.d/mysql cd /usr/local/mysql rm -rf /etc/my.cnf cp -f support-files/my-default.cnf /etc/my.cnf chown -R mysql . chgrp -R mysql . bin/mysqld --initialize chown -R root . chown -R mysql data echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf ldconfig rm -f /usr/local/bin/mysql ln -s /usr/local/mysql/bin/mysql /usr/local/bin/ chkconfig --add mysql chkconfig mysql on }
固然爲了方便也是可使用yum安裝redis於mysql服務的
yum安裝redis:
yum install redis -y
啓動redis
systemctl start redis
設置redis開機啓動
systemctl enable redis
能夠用下面的語句查看redis是否開啓
systemctl status redis
yum安裝mysql:
yum install mysql-server -y
啓動mysql
systemctl start mysql
能夠用下面的語句查看mysql是否開啓
systemctl status mysql
五、設置環境變量GOROOT和GOPATH
[root@cml_ali_sz_120 etc]# export GOROOT=/usr/lib/golang [root@cml_ali_sz_120 etc]# export GOPATH=/home
六、從github上下載open-falcon源碼:
建立本地路徑
[root@cml_ali_sz_120 ~]# mkdir -p $GOPATH/src/github.com/open-falcon [root@cml_ali_sz_120 ~]# cd $GOPATH/src/github.com/open-falcon
git clone github上的源碼
[root@cml_ali_sz_120 open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git
七、初始化數據庫
cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/ mysql -h 127.0.0.1 -u root -ppasswd < 1_uic-db-schema.sql mysql -h 127.0.0.1 -u root -ppasswd < 2_portal-db-schema.sql mysql -h 127.0.0.1 -u root -ppasswd < 3_dashboard-db-schema.sql mysql -h 127.0.0.1 -u root -ppasswd < 4_graph-db-schema.sql mysql -h 127.0.0.1 -u root -ppasswd < 5_alarms-db-schema.sql
將passwd修改爲本身的密碼
八、編譯源碼安裝並打包
進入本地源碼路徑
[root@cml_ali_sz_120 open-falcon]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/
使用go get獲取rrdtool工具包(make過程卡殼的一個點,這一步是官方教程沒有提到的內容,若是不獲取該工具包make的時候會報錯。)
[root@cml_ali_sz_120 falcon-plus]# go get github.com/open-falcon/rrdlite
編譯全部模塊
[root@cml_ali_sz_120 falcon-plus]# make all
而後打包
[root@cml_ali_sz_120 falcon-plus]# make pack
九、官方提供的安裝包
https://book.open-falcon.org/zh_0_2/quick_install/prepare.html中官方有提供編譯包,若是編譯過程不順利能夠直接下載編譯包。
2、部署後端
一、建立後端目錄
[root@cml_ali_sz_120 ~]# export WORKSPACE=/home/work [root@cml_ali_sz_120 ~]# mkdir -p $WORKSPACE
二、解壓二進制包:
[root@cml_ali_sz_120 falcon-plus]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/ [root@cml_ali_sz_120 falcon-plus]# tar -zxvf open-falcon-v0.2.1.tar.gz -c $WORKSPACE
三、修改配置文件cfg.json
猜想部分模塊依賴鏈接數據庫,由於若是不修改配置文件,aggregator模塊會出現沒法啓動,graph、hbs、nodata、api、alarm模塊會出現開啓不報錯可是狀態爲開啓失敗的狀況。(我的認爲這塊的設計值得做爲open-falcon優化的一個點,鏈接本機mysql若是失敗是能夠收到錯誤提示的,第一時間有報錯提示總比什麼都不顯示或顯示開啓但實際開啓失敗強,若是別人服務都不知道怎麼開起來,系統功能再強大有多少人硬着頭皮部署下去而不是選擇換個系統試試呢)
若是須要每一個模塊都能正常啓動,須要將上面模塊的cfg.json的數據庫信息進行修改。根據本教程的配置,須要修改配置文件所在的目錄:
模塊 配置文件所在路徑
aggregator /home/work/aggregator/config/cfg.json
graph /home/work/graph/config/cfg.json
hbs /home/work/hbs/config/cfg.json
nodata /home/work/nodata/config/cfg.json
api /home/work/api/config/cfg.json
alarm /home/work/alarm/config/cfg.json
(mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。)
1)修改aggregator的配置文件
vim /home/work/aggregator/config/cfg.json
2)修改graph的配置文件
vim /home/work/graph/config/cfg.json
3)修改hbs的配置文件
vim /home/work/hbs/config/cfg.json
4)修改nodata的配置文件
vim /home/work/nodata/config/cfg.json
5)修改api的配置文件
vim /home/work/api/config/cfg.json
6)修改alarm的配置文件
vim /home/work/alarm/config/cfg.json
四、啓動後端模塊:
[root@cml_ali_sz_120 work]# cd $WORKSPACE [root@cml_ali_sz_120 work]# ./open-falcon start
檢查下各個模塊的啓動狀況:
[root@cml_ali_sz_120 work]# ./open-falcon check falcon-graph UP 1722 falcon-hbs UP 1730 falcon-judge UP 1735 falcon-transfer UP 1743 falcon-nodata UP 1749 falcon-aggregator UP 1756 falcon-agent UP 1764 falcon-gateway UP 1771 falcon-api UP 1777 falcon-alarm UP 1789
不會使用命令能夠-h查看:
[root@cml_ali_sz_120 work]# ./open-falcon -h
Usage:
open-falcon [flags]
open-falcon [command]
Available Commands:
check Check the status of Open-Falcon modules
help Help about any command
monitor Display an Open-Falcon module's log
reload Reload an Open-Falcon module's configuration file
restart Restart Open-Falcon modules
start Start Open-Falcon modules
stop Stop Open-Falcon modules
Flags:
-v, --version show version
Use "open-falcon [command] --help" for more information about a command.
3、部署前端:
一、建立前端目錄:
[root@cml_ali_sz_120 ~]# export FRONTSPACE=/home/front/open-falcon [root@cml_ali_sz_120 ~]# mkdir -p $FRONTSPACE
二、在github上下載前端代碼:
[root@cml_ali_sz_120 open-falcon]# cd $FRONTSPACE [root@cml_ali_sz_120 open-falcon]# 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" -y cd $FRONTSPACE/dashboard/ virtualenv ./env ./env/bin/pip install -r pip_requirements.txt
四、修改配置
根據本次記錄的配置,dashboard的配置文件在/home/front/open-falcon/dashboard/rrd/config.py,須要根據實際狀況對內部配置進行修改。
因爲前端後臺搭在一臺虛擬機裏,且暫時不接入LDAP,且數據庫root的密碼爲空,故先不修改配置文件。
五、假如開啓firewalld開放8081端口便可:
firewall-cmd --add-port=8081/tcp --permanent firewall-cmd --reload
六、啓動control:
[root@cml_ali_sz_120 dashboard]# bash control start
七、以開發者模式啓動:
[root@cml_ali_sz_120 dashboard]# ./env/bin/python wsgi.py
而後直接訪問open-falcon:http://localhost:8081
而後進去後由於沒有帳號因此先要註冊一個管理員帳號:
點擊右上角的sign up註冊
而後就能夠監控主機信息: