Open-Falcon是小米公司研發并開源的企業級監控解決方案,旨在解決中等大小公司的運維問題。
監控系統可以說是整個運維系統中最重要的一環。故障發生時及時告警,降低損失;故障解決后,提供完備的信息有利于問題的追蹤定位;還可以對采集到的數據進行分析等。目前國內的中小型IT公司多數采用Zabbix等開源監控系統,但Zabbix不能橫向擴展,當需要監控的資源逐漸增多時,Zabbix有些力不從心。如BAT級別的大廠可以投入大量資源自研監控系統,可是多數公司并不具備這樣的條件,于是很多中等體量的公司一直陷入“開源系統不夠用”和“自研系統投入太大”的兩難選擇中。
Open-Falcon正是為了解決這個問題而生的。它的橫向擴展能力很好的解決了中等規模IT公司資源監控的問題,而簡單友好的使用方式也使它很快被廣大公司所接受。目前除了小米之外,Open-Falcon在滴滴、美團、京東、360等國內著名IT公司均有使用。
下面我們來在單機安裝一下Open-Falcon。關于Open-Falcon的安裝,官網的文檔給出了詳盡的說明,但是安裝過程中仍然會有一些“坑”,需要我們自己踩過。
服務器采用 CentOS 7 minimal方式安裝。我們跟著官方文檔一步步搭建Open-Falcon。
一、環境準備
官網地址:https://book.open-falcon.org/zh_0_2/quick_install/prepare.html
安裝Redis
yum install -y redis
執行這個命令時可能會發生找不到redis包的狀況,這是因為redis不在CentOS 7默認的源當中,需要我們手動安裝EPEL,這里我們使用epel-release-6-8.noarch.rpm:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
如果找不到 wget 命令,需要先安裝 wget:
yum install wget
安裝完成后,就可以使用最開始的命令安裝 redis 了。如果安裝之后使用redis-cli
命令不能連接到 redis 服務器上,說明 redis-server 沒有啟動。可以手動啟動 redis-server:
nohup redis-server > /dev/null 2>&1 &
安裝MySQL
yum install -y mysql-server
這一步容易出現與上一步相同的問題,即找不到 mysql-server 包,這是因為CentOS 7 中移除了默認的mysql包,改為了mariadb。為了安裝mysql,我們同樣需要手動下載。
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
然后手動安裝:
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安裝完成后啟動mysql:
mysql -uroot -p
發現沒有密碼,我們可以手動設置root的密碼:
set password for 'root'@'localhost'=password('your_pwd');
初始化MySQL表結構
這一節與官網相同,不會遇到什么大的問題。唯一的一個小問題現在5個.sql
文件的名字略微改動了一下,前面加上了序號。
二、啟動后端
官網地址:https://book.open-falcon.org/zh_0_2/quick_install/backend.html
這一節沒太多可說的,按照官網步驟一步步來即可。唯一需要注意的一點是,Open-Falcon中各個組件的配置文件中,MySQL和Redis的地址默認都是本地,即127.0.0.1,并且MySQL是root用戶不帶密碼,如果你不是采用與默認配置文件相同的方式則需要修改每個模塊的配置文件,每個模塊對應的配置文件地址在 $WorkDir/$moduleName/config/cfg.json
中,默認MySQL的配置項為:
"database": "root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true"
需要自行加入密碼,加在用戶名的“:”后面:
"database": "root:your_pwd@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true"
start
和check
命令官網有詳細的解釋。
三、安裝前端
官網地址:https://book.open-falcon.org/zh_0_2/quick_install/frontend.html
由于Open-Falcon的dashboard模塊使用python開發,所以前端安裝這一節基本都是在安裝python相關的依賴。注意官網給出的安裝命令都是基于CentOS的,如果是Ubuntu系統,請參考:https://github.com/open-falcon/dashboard#install-dependency。
前端安裝時會遇到一些小問題。第一個問題是如果在前面安裝redis時安裝了epel-release-6-8.noarch.rpm包,在安裝python依賴時可能會遇到源沖突的問題,解決辦法就是把之前安裝的epel-release-6-8.noarch.rpm包卸載掉:
yum -y remove epel-release-6-8.noarch
另外如果在最后安裝Flask框架時(執行./env/bin/pip install -r pip_requirements.txt
命令)出現由于安全問題不能連接到服務器,可以使用:
./env/bin/pip install -r pip_requirements.txt -i http://pypi.doubanio.com/simple
命令進行安裝即可。前端啟動后會看到頁面:
注冊并登錄即可。
四、參考
open-falcon "Dashboard" 報SSL錯:http://shadowhk.blog.51cto.com/2903709/1889234