002.Open-Falcon部署及監控
阿新 • • 發佈:2018-12-04
一 前期準備
- 安裝後端
- 安裝前端
二 基礎環境
2.1 安裝redis
1 [[email protected] ~]# yum install -y redis
2.2 安裝資料庫
1 [[email protected] ~]# yum -y install mariadb mariadb-server
2.3 啟動相關服務
1 [[email protected] ~]# systemctl start redis 2 [[email protected] ~]# systemctl enable redis 3 [[email protected] ~]# systemctl start mariadb 4[[email protected] ~]# systemctl enable mariadb
2.4 設定資料庫安全性
1 [[email protected] ~]# mysql_secure_installation #設定安全性,並設定資料庫root密碼
2.5 安裝go語言
1 [[email protected] ~]# mkdir /gohome 2 [[email protected] ~]# yum install -y epel-release 3 [[email protected] ~]# yum install -y golang提示:若yum無法安裝可通過以下方式採用二進位制安裝形式:
1 [[email protected] ~]# wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz 2 [[email protected] ~]# tar -C /usr/local/ -zxvf go1.11.2.linux-amd64.tar.gz 3 [[email protected] ~]# echo 'export GOROOT=/usr/local/go' >> /etc/profile.d/go.sh 4 [[email protected] ~]# echo 'export GOBIN=$GOROOT/bin' >> /etc/profile.d/go.sh 5 [[email protected] ~]# echo 'export GOPKG=$GOROOT/pkg/tool/linux_amd64' >> /etc/profile.d/go.sh 6 [[email protected] ~]# echo 'export GOARCH=amd64' >> /etc/profile.d/go.sh 7 [[email protected] ~]# echo 'export GOOS=linux' >> /etc/profile.d/go.sh 8 [[email protected] ~]# echo 'export GOPATH=/gohome' >> /etc/profile.d/go.sh 9 [[email protected] ~]# echo 'export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin' >> /etc/profile.d/go.sh 10 [[email protected] ~]# go version 11 go version go1.11.2 linux/amd64
2.6 建立Falcon工作目錄
1 [[email protected] ~]# mkdir -p $GOPATH/src/github.com/open-falcon
2.7 下載Falcon原始碼
1 [[email protected] ~]# cd $GOPATH/src/github.com/open-falcon 2 [[email protected] open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git
2.8 初始化資料庫
1 [[email protected] tmp]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema 2 [[email protected] db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 1_uic-db-schema.sql 3 [[email protected] db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 2_portal-db-schema.sql 4 [[email protected] db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 3_dashboard-db-schema.sql 5 [[email protected] db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 4_graph-db-schema.sql 6 [[email protected] db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 5_alarms-db-schema.sql
2.9 獲取rrdtool工具包
1 [[email protected] db_schema]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/ 2 [[email protected] falcon-plus]# go get github.com/open-falcon/rrdlite
2.10 編譯及打包
1 [[email protected] falcon-plus]# make all 2 [[email protected] falcon-plus]# make pack提示:編譯打包完成後會生產一個open-falcon-v0.2.1.tar.gz的壓縮包,表示已經編譯和打包完成; 若編譯異常也可以使用官方提供的已編譯完成的包:https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz
三 部署後端
3.1 建立工作目錄
1 [[email protected] ~]# export FALCON_HOME=/data/falcon 2 [[email protected] ~]# export WORKSPACE=$FALCON_HOME/open-falcon 3 [[email protected] ~]# mkdir -p $WORKSPACE
3.2 解壓二進位制包
1 [[email protected] ~]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/ 2 [[email protected] falcon-plus]# tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
3.2 修改配置檔案
各模組配置檔案路徑如下:1 [[email protected] ~]# cd $WORKSPACE 2 [[email protected] open-falcon]# grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/root:123456/g' 3 [[email protected] open-falcon]# grep -Ir 3306 ./ #確認修改提示:由於預設所有配置檔案的資料庫配置均為空,因此需要將所有配置檔案中關於db的使用者名稱和密碼進行修改。
3.3 啟動後端模組
1 [[email protected] ~]# cd $WORKSPACE 2 [[email protected] open-falcon]# ./open-falcon start #啟動所有後端模組 3 [[email protected] open-falcon]# ./open-falcon check #檢查啟動情況提示:更多命令使用方法:
1 # ./open-falcon [start|stop|restart|check|monitor|reload] module 2 # ./open-falcon start agent 3 [[email protected] open-falcon]# ./open-falcon check 4 falcon-graph UP 17148 5 falcon-hbs UP 17165 6 falcon-judge UP 17178 7 falcon-transfer UP 17187 8 falcon-nodata UP 17199 9 falcon-aggregator UP 17209 10 falcon-agent UP 17220 11 falcon-gateway UP 17232 12 falcon-api UP 17243 13 falcon-alarm UP 17259相關排查log見:$WorkDir/$moduleName/log/logs/xxx.log
四 部署前端
4.1 建立工作目錄
見3.1。4.2 下載前端原始碼
1 [[email protected] ~]# cd $WORKSPACE 2 [[email protected] open-falcon]# git clone https://github.com/open-falcon/dashboard.git
4.3 安裝依賴
1 [[email protected] ~]# yum install -y python-virtualenv 2 [[email protected] ~]# yum install -y python-devel 3 [[email protected] ~]# yum install -y openldap-devel 4 [[email protected] ~]# yum install -y mariadb-devel 5 [[email protected] ~]# yum groupinstall "Development tools" -y 6 [[email protected] ~]# cd $WORKSPACE/dashboard/ 7 [[email protected] dashboard]# virtualenv ./env 8 [[email protected] dashboard]# ./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
4.4 初始化資料庫
參考:2.8。 提示:由於前後端部署在同一節點,部署後端過程中已初始化資料庫,4.4步驟可跳過。4.5 修改前端dashboard配置
1 [[email protected] ~]# vi /data/falcon/open-falcon/dashboard/rrd/config.py 2 # portal database 3 # TODO: read from api instead of db 4 PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1") 5 PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306)) 6 PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root") 7 PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","123456") #修改資料庫密碼 8 PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal") 9 10 # alarm database 11 # TODO: read from api instead of db 12 ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1") 13 ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306)) 14 ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root") 15 ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","123456") #修改資料庫密碼 16 ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")提示:config.py配置檔案解析: API_ADDR:表示後端api元件的地址,前後端部署在同一臺時不需要修改。
4.6 放通防火牆
1 [[email protected] ~]# firewall-cmd --add-port=8081/tcp --permanent 2 [[email protected] ~]# firewall-cmd --reload提示:若已關閉防火牆,則跳過此步驟。
4.7 啟動dashboard
1 [[email protected] ~]# cd /data/falcon/open-falcon/dashboard/ 2 [[email protected] dashboard]# bash control start #以生產模式啟動 3 [[email protected] dashboard]# bash control tail #檢視相關log
4.8 測試訪問
瀏覽器訪問Falcon服務端:http://120.132.23.107:8081五 dashboard管理
5.1 註冊賬號
dashbord沒有預設建立任何賬號包括管理賬號,需要通過頁面進行註冊賬號。 想擁有管理全域性的超級管理員賬號,需要手動註冊使用者名稱為root的賬號(第一個帳號名稱為root的使用者會被自動設定為超級管理員)。 超級管理員可以給普通使用者分配許可權管理。5.2 登入測試
使用5.1所註冊賬號進行登入。
提示:註冊賬號能夠被任何開啟dashboard頁面的人註冊,所以當給相關的人註冊完賬號後,需要去關閉註冊賬號功能。只需要去修改api元件的配置檔案cfg.json,將signup_disable配置項修改為true,重啟api即可。當需要給人開賬號的時候,再將配置選項改回去,用完再關掉即可。
六 Agent獨立安裝
6.1 Agent簡介
agent用於採集機器負載監控指標,比如cpu.idle、load.1min、disk.io.util等等,每隔60秒push給Transfer。agent與Transfer建立了長連線,資料傳送速度比較快,agent提供了一個http介面/v1/push用於接收使用者手工push的一些資料,然後通過長連線迅速轉發給Transfer。6.2 複製agent包
將Falcon服務端的Agent包複製至被監控端node01。1 [[email protected] ~]# mkdir -p /data/falcon/open-falcon/ #node01節點建立工作目錄 2 [[email protected] ~]# cd /data/falcon/open-falcon/ 3 [[email protected] open-falcon]# scp -r agent/ [email protected]:/data/falcon/open-falcon/ 4 [[email protected] open-falcon]# scp -r open-falcon [email protected]:/data/falcon/open-falcon/
6.3 修改agent配置
1 [[email protected] ~]# vi /data/falcon/open-falcon/agent/config/cfg.json 2 { 3 "debug": true, # 控制一些debug資訊的輸出,生產環境通常設定為false 4 "hostname": "", # agent採集了資料發給transfer,endpoint就設定為了hostname,預設通過`hostname`獲取,如果配置中配置了hostname,就用配置中的 5 "ip": "", # agent與hbs心跳的時候會把自己的ip地址發給hbs,agent會自動探測本機ip,如果不想讓agent自動探測,可以手工修改該配置 6 "plugin": { 7 "enabled": false, # 預設不開啟外掛機制 8 "dir": "./plugin", # 把放置外掛指令碼的git repo clone到這個目錄 9 "git": "https://github.com/open-falcon/plugin.git", # 放置外掛指令碼的git repo地址 10 "logs": "./logs" # 外掛執行的log,如果外掛執行有問題,可以去這個目錄看log 11 }, 12 "heartbeat": { 13 "enabled": true, # 此處enabled要設定為true 14 "addr": "172.24.10.95:6030", # hbs的地址,埠是hbs的rpc埠 15 "interval": 60, # 心跳週期,單位是秒 16 "timeout": 1000 # 連線hbs的超時時間,單位是毫秒 17 }, 18 "transfer": { 19 "enabled": true, 20 "addrs": [ 21 "172.24.10.95:18433" 22 ], # transfer的地址,埠是transfer的rpc埠, 可以支援寫多個transfer的地址,agent會保證HA 23 "interval": 60, # 採集週期,單位是秒,即agent一分鐘採集一次資料發給transfer 24 "timeout": 1000 # 連線transfer的超時時間,單位是毫秒 25 }, 26 "http": { 27 "enabled": true, # 是否要監聽http埠 28 "listen": ":1988", 29 "backdoor": false 30 }, 31 "collector": { 32 "ifacePrefix": ["eth", "em"], # 預設配置只會採集網絡卡名稱字首是eth、em的網絡卡流量,配置為空就會採集所有的,lo的也會採集。可以從/proc/net/dev看到各個網絡卡的流量資訊 33 "mountPoint": [] 34 }, 35 "default_tags": { 36 }, 37 "ignore": { # 預設採集了200多個metric,可以通過ignore設定為不採集 38 "cpu.busy": true, 39 "df.bytes.free": true, 40 "df.bytes.total": true, 41 "df.bytes.used": true, 42 "df.bytes.used.percent": true, 43 "df.inodes.total": true, 44 "df.inodes.free": true, 45 "df.inodes.used": true, 46 "df.inodes.used.percent": true, 47 "mem.memtotal": true, 48 "mem.memused": true, 49 "mem.memused.percent": true, 50 "mem.memfree": true, 51 "mem.swaptotal": true, 52 "mem.swapused": true, 53 "mem.swapfree": true 54 } 55 }
6.4 啟動Agent
1 [[email protected] ~]# cd /data/falcon/open-falcon/ 2 [[email protected] open-falcon]# ./open-falcon start agent 3 [[email protected] open-falcon]# ./open-falcon monitor agent #檢視執行日誌
6.5 檢查Agent
1 [[email protected] ~]# cd /data/falcon/open-falcon/agent/bin 2 [[email protected] bin]# ./falcon-agent --check 3 disk.io ... ok 4 memory ... ok 5 netstat ... ok 6 ss -s ... ok 7 kernel ... ok 8 net.if ... ok 9 loadavg ... ok 10 cpustat ... ok 11 du -bs ... ok 12 df.bytes ... ok 13 ss -tln ... ok 14 ps aux ... ok