1. 程式人生 > >open-falcon小米監控安裝部署

open-falcon小米監控安裝部署

一、部署前的準備

設定環境變數

    export WORKSPACE=/home/work/open-falcon
  • 1

redis安裝 - yum安裝或原始碼安裝

  • yum安裝
    yum install redis-cli redis-server
  • 2
  • 原始碼安裝
    tar zxvf redis-3.2.1.tar.gz
    cd redis-3.2.1
    make && make install    
  • 1
  • 2
  • 3

安裝完之後,將原始碼目錄下的redis.conf拷貝到/etc目錄,並且修改,最後啟動redis-server。

    redis-server /etc/redis.conf 
  • 4

MySql安裝

    yum install mysql mysql-server php-mysql.x86_64
  • 5

初始化Mysql指令碼

    git clone https://github.com/open-falcon/scripts.git
    cd scripts
    mysql -uroot -pxxx < db_schema/dashboard-db-schema.sql 
    mysql -uroot -pxxx < db_schema/graph-db-schema.sql 
    mysql -uroot -pxxx < db_schema/links-db
-schema.sql mysql -uroot -pxxx < db_schema/portal-db-schema.sql mysql -uroot -pxxx < db_schema/uic-db-schema.sql /* mysql如果有密碼,需要指定密碼.*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

下載open-falcon

直接使用官方編譯好的二進位制包, [地址](http://pan.baidu.com/s/1eR1cNj8)
DOWNLOAD="https://github.com/open-falcon/of-release/releases/download/v0.1.0/open-falcon-v0.1.0.tar.gz"
cd $WORKSPACE mkdir ./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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

安裝GoLang環境

如果不是原始碼編譯安裝,可以不裝golang環境。

二、安裝部署-繪圖相關元件

1、安裝agent

每臺機器上,都需要部署agent,agent會自動採集預先定義的各種採集項,每隔60秒,push到transfer。

cd agent
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/

/* 椒鹽服務, 這裡假定服務開啟了1988的http監聽埠。 在瀏覽器中開啟下面的頁面 */
goto -->  http://127.0.0.1:1988
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、安裝hbs

心跳伺服器,公司所有agent都會連到HBS,每分鐘發一次心跳請求。

cd hbs
mv cfg.example.json cfg.json 
vim cfg.json  /*編輯cfg.json, 修改對應的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/
  • 1
  • 2
  • 3
  • 4
  • 5

3、安裝transfer

transfer預設監聽在:8433埠上,agent會通過jsonrpc的方式來push資料上來。

cd transfer
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/

/* 校驗服務,這裡假定服務開啟了6060的http監聽埠。檢驗結果為ok表明服務正常啟動。 */
curl -s http://127.0.0.1:6060/health
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4、安裝graph

graph元件是儲存繪圖資料、歷史資料的元件。transfer會把接收到的資料,轉發給graph。

cd graph
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/

/* 校驗服務,這裡假定服務開啟了預設6071的http監聽埠。檢驗結果為ok表明服務正常啟動。 */
curl -s http://127.0.0.1:6071/health
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5、安裝query

query元件,繪圖資料的查詢介面,query元件收到使用者的查詢請求後,會從後端的多個graph,查詢相應的資料,聚合後,再返回給使用者。

cd query
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/
  • 1
  • 2
  • 3
  • 4
  • 5

6、安裝 dashboard

dashboard是面向使用者的查詢介面,在這裡,使用者可以看到push到graph中的所有資料,並檢視其趨勢圖。

這裡需要安裝兩個軟體, pip 和virtualenv 。 如果軟體倉庫裡面有,直接用yum安裝,否則需要用原始碼來安裝。

下面介紹用原始碼來安裝 pip 和 virtualenv。

安裝過程如下:

wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz
tar zxvf 1.5.5.tar.gz
cd pip-1.5.5
python ./setup.py install
  • 1
  • 2
  • 3
  • 4

pip安裝virtualenv

pip install virtualenv
  • 1

install dependency     

yum install -y python-virtualenv mysql-devel  # run as root

cd dashboard
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt  /*這裡可能會報錯,可能是系統沒有安裝某些軟體包*/
  • 1
  • 2
  • 3

配置

dashboard的config的路徑為 $WORKSPACE/dashboard/rrd/config.py,裡面有資料庫相關的配置資訊,如有必要,請修改。預設情況下(所有元件都在同一臺伺服器上),保持預設配置即可

    ./control start
    ./control tail
    goto ---> http://127.0.0.1:8081
  • 1
  • 2
  • 3

三、安裝部署-報警相關元件

1、安裝judge

Judge用於告警判斷,agent將資料push給Transfer,Transfer不但會轉發給Graph元件來繪圖,還會轉發給Judge用於判斷是否觸發告警。

cd judge
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置  這裡要注意redis的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/
  • 1
  • 2
  • 3
  • 4
  • 5

2、安裝portal

Portal是用來配置報警策略的 
Portal是個Python的專案,無需像Go的專案那樣去做編譯。不過Go的專案是靜態編譯的,編譯好了之後二進位制無依賴,拿到其他機器也可以跑起來,Python的專案就需要安裝一些依賴庫了。

cd portal
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
  • 1
  • 2
  • 3

Portal的配置檔案在frame/config.py 
設定好配置檔案之後就可以用下面的方式啟動

./control start
./control tail
  • 1
  • 2

3、安裝alarm

alarm模組是處理報警event的,judge產生的報警event寫入redis,alarm從redis讀取處理

cd alarm
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置  這裡要注意redis的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/
  • 1
  • 2
  • 3
  • 4
  • 5

4、安裝sender

Sender這個模組專門用於呼叫各公司提供的郵件、簡訊傳送介面。

cd sender
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置  這裡要注意redis的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/
  • 1
  • 2
  • 3
  • 4
  • 5

Links是為報警合併功能寫的元件。如果你不想使用報警合併功能,這個元件是無需安裝的。

cd links
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
  • 1
  • 2
  • 3

Links的配置檔案在frame/config.py,注意裡面的配置。

6、安裝fe

這是Go版本的UIC,也是一個統一的web入口,因為監控元件眾多,記憶ip、port去訪問還是比較麻煩。fe像是一個監控的hao123

cd fe
mv cfg.example.json cfg.json
vim cfg.json  /*編輯cfg.json, 修改對應的配置  這裡要注意redis的配置*/
./control start     /*啟動*/
./control tail      /*檢視啟動日誌*/
  • 1
  • 2
  • 3
  • 4
  • 5