一、環境準備 作業系統:centos7(minimal,www.centos.org下載下傳的包是CentOS-7-x86_64-Minimal-1611.iso) 1.1 更換阿裡yum(個人習慣) 步驟: 1)下載下傳wget yum install -y wget 2)備份預設的yum mv /etc/yum.repos.d /etc/yum.repos.d.backup 3)設定新的yum目錄 mkdir /etc/yum.repos.d 4)下載下傳阿裡yum配置到該目錄中 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 5)重建緩存 yum clean all yum makecache 6)更新所有包(改變軟體設定和系統設定,系統版本核心都更新,故需要幾分鐘耐心等待) yum update -y 1.2 安裝vim(個人習慣) yum install -y vim 1.3 安裝git yum install -y git 安裝結束後安全起見,确認是否滿足官方要求的Git >= 1.7.5 git version 1.4 安裝go語言環境(因為官方yum和阿裡yum都沒有go的安裝包,故隻能通過fedora的epel倉庫來安裝) yum install -y epel-release yum install golang -y 安裝結束後安全起見,确認是否滿足官方要求的Go >= 1.6 go version 1.5 安裝redis 由于部署go時已經安裝了epel,故直接執行下面的安裝指令(如果沒有裝epel,會提示No package redis available,也就是沒有安裝包可用,因為官方yum和阿裡yum都沒有redis,故隻能通過fedora的epel倉庫來安裝) yum install redis -y 啟動redis systemctl start redis 設定redis開機啟動 systemctl enable redis 可以用下面的語句檢視redis是否開啟 systemctl status redis 1.6 安裝mysql 步驟: 1)下載下傳repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2)安裝該rpm包(安裝這個包後,會獲得兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo) rpm -ivh mysql-community-release-el7-5.noarch.rpm 3)安裝mysql yum install mysql-server -y 4)啟動mysql systemctl start mysql 可以用下面的語句檢視mysql是否開啟 systemctl status mysql 1.7 設定環境變量GOROOT和GOPATH export GOROOT=/usr/lib/golang export GOPATH=/home 1.8 初始化資料庫 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/ 再運作“mysql -h..................”時會提示“Enter password”,如果mysql的root沒有設定密碼,回車即可。
二、部署後端 {兩種方法:1)源碼編譯,2)下載下傳編譯好的二進制檔案。【兩者選其一】} 1).源碼編譯 1.1 将open-falcon的源碼從github上get下來 步驟: 1)建立GOPATH下的一個本地的路徑 mkdir -p $GOPATH/src/github.com/open-falcon 2)進入該路徑 cd $GOPATH/src/github.com/open-falcon 3)将源碼get到本地 git clone https://github.com/open-falcon/falcon-plus.git 1.2 編譯源碼并打包 步驟: 1)進入本地源碼路徑下 cd $GOPATH/src/github.com/open-falcon/falcon-plus/ 2)使用go get擷取rrdtool工具包(make過程卡殼的一個點) go get github.com/open-falcon/rrdlite 這一步是官方教程沒有提到的内容,如果不擷取該工具包make的時候會報錯。
3)編譯所有子產品 make all 4)打包 make pack 在$GOPATH/src/github.com/open-falcon/falcon-plus/目錄下就多了剛才的壓縮包“open-falcon-v0.2.1.tar.gz”。 2.1 建立工作目錄 export WORKSPACE=/home/work mkdir -p $WORKSPACE 2.2 解壓二進制包(包名根據實際進行修改) 由于我是根據本教程編譯源碼獲得的壓縮包,故需要切換到“$GOPATH/src/github.com/open-falcon/falcon-plus/”路徑下。 包名由于make pack的時候就是open-falcon-v0.2.0.tar.gz,具體根據實際情況。 cd $GOPATH/src/github.com/open-falcon/falcon-plus/ tar -xzvf open-falcon-v0.2.0.tar.gz -C $WORKSPACE 2.3 修改配置檔案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 |
1)修改aggregator的配置檔案 vim /home/work/aggregator/config/cfg.json
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”。 2)修改graph的配置檔案 vim /home/work/graph/config/cfg.json
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”。 3)修改hbs的配置檔案 vim /home/work/hbs/config/cfg.json
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”。 4)修改nodata的配置檔案 vim /home/work/nodata/config/cfg.json
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”。 5)修改api的配置檔案 vim /home/work/api/config/cfg.json
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”。 6)修改alarm的配置檔案 vim /home/work/alarm/config/cfg.json
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”。 2.4 啟動後端子產品 cd $WORKSPACE ./open-falcon start 可以用下面的指令檢查各個子產品的啟動情況 ./open-falcon check 更多指令的用法(指令的例子是啟動agent子產品)
# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon start agent ./open-falcon check
falcon-graph UP 53007
falcon-hbs UP 53014
falcon-judge UP 53020
falcon-transfer UP 53026
falcon-nodata UP 53032
falcon-aggregator UP 53038
falcon-agent UP 53044
falcon-gateway UP 53050
falcon-api UP 53056
falcon-alarm UP 53063
For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log
2)下載下傳編譯好的二進制檔案 2.1 建立工作目錄 export FALCON_HOME=/home/work export WORKSPACE=$FALCON_HOME/open-falcon mkdir -p $WORKSPACE 2.2 下載下傳解壓二進制包 wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE 2.3 修改各配置檔案中資料庫賬号密碼 cd $WORKSPACE grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/real_user:real_password/g' 2.4 啟動 cd $WORKSPACE ./open-falcon start # 檢查所有子產品的啟動狀況 ./open-falcon check 更多指令用法 # ./open-falcon [start|stop|restart|check|monitor|reload] module ./open-falcon start agent ./open-falcon check falcon-graph UP 53007 falcon-hbs UP 53014 falcon-judge UP 53020 falcon-transfer UP 53026 falcon-nodata UP 53032 falcon-aggregator UP 53038 falcon-agent UP 53044 falcon-gateway UP 53050 falcon-api UP 53056 falcon-alarm UP 53063 For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log 三、部署前端 3.1 建立工作目錄 export HOME=/home/work export WORKSPACE=$HOME/open-falcon mkdir -p $WORKSPACE cd $WORKSPACE 3.2 擷取前端代碼 cd $WORKSPACE git clone https://github.com/open-falcon/dashboard.git 3.3 安裝依賴包 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 $WORKSPACE/dashboard/ virtualenv ./env ./env/bin/pip install -r pip_requirements.txt 3.4 修改配置 dashboard的配置檔案為: 'rrd/config.py',請根據實際情況修改 ## API_ADDR 表示後端api元件的位址 API_ADDR = "http://127.0.0.1:8080/api/v1" ## 根據實際情況,修改PORTAL_DB_*, 預設使用者名為root,預設密碼為"" ## 根據實際情況,修改ALARM_DB_*, 預設使用者名為root,預設密碼為"" 3.5 開啟8081端口 1)防火牆添加8081端口永久開放 firewall-cmd --add-port=8081/tcp --permanent 2)重新載入防火牆配置 firewall-cmd --reload 3.6 在生産環境啟動 bash control start open http://127.0.0.1:8081 in your browser. 3.7 以開發者模式啟動 ./env/bin/python wsgi.py open http://127.0.0.1:8081 in your browser. 3.8 檢視日志 bash control tail dashbord使用者管理 dashbord沒有預設建立任何賬号包括管理賬号,需要你通過頁面進行新增賬號。 想擁有管理全局的超級管理者賬号,需要手動注冊使用者名為root的賬号(第一個帳号名稱為root的使用者會被自動設定為超級管理者)。 超級管理者可以給普通使用者配置設定權限管理。 小提示:新增賬號能夠被任何打開dashboard頁面的人注冊,是以當給相關的人注冊完賬号後,需要去關閉新增賬號功能。隻需要去修改api元件的配置檔案cfg.json,将signup_disable配置項修改為true,重新開機api即可。當需要給人開賬号的時候,再将配置選項改回去,用完再關掉即可。 四、用戶端agent部署 【linux】 4.1 可以使用服務端包open-falcon-v0.2.1.tar.gz解壓,也可以單獨複制agent目錄(需安裝go環境) ./open-falcon start agent 啟動程序 ./open-falcon stop agent 停止程序 ./open-falcon monitor agent 檢視日志 4.2 配置說明 配置檔案必須叫cfg.json,可以基于cfg.example.json修改 { "debug": true, # 控制一些debug資訊的輸出,生産環境通常設定為false "hostname": "", # agent采集了資料發給transfer,endpoint就設定為了hostname,預設通過`hostname`擷取,如果配置中配置了hostname,就用配置中的 "ip": "", # agent與hbs心跳的時候會把自己的ip位址發給hbs,agent會自動探測本機ip,如果不想讓agent自動探測,可以手工修改該配置 "plugin": { "enabled": false, # 預設不開啟插件機制 "dir": "./plugin", # 把放置插件腳本的git repo clone到這個目錄 "git": "https://github.com/open-falcon/plugin.git", # 放置插件腳本的git repo位址 "logs": "./logs" # 插件執行的log,如果插件執行有問題,可以去這個目錄看log }, "heartbeat": { "enabled": true, # 此處enabled要設定為true "addr": "127.0.0.1:6030", # hbs的位址,端口是hbs的rpc端口 "interval": 60, # 心跳周期,機關是秒 "timeout": 1000 # 連接配接hbs的逾時時間,機關是毫秒 }, "transfer": { "enabled": true, "addrs": [ "127.0.0.1:18433" ], # transfer的位址,端口是transfer的rpc端口, 可以支援寫多個transfer的位址,agent會保證HA "interval": 60, # 采集周期,機關是秒,即agent一分鐘采集一次資料發給transfer "timeout": 1000 # 連接配接transfer的逾時時間,機關是毫秒 }, "http": { "enabled": true, # 是否要監聽http端口 "listen": ":1988", "backdoor": false }, "collector": { "ifacePrefix": ["eth", "em"], # 預設配置隻會采集網卡名稱字首是eth、em的網卡流量,配置為空就會采集所有的,lo的也會采集。可以從/proc/net/dev看到各個網卡的流量資訊 "mountPoint": [] }, "default_tags": { }, "ignore": { # 預設采集了200多個metric,可以通過ignore設定為不采集 "cpu.busy": true, "df.bytes.free": true, "df.bytes.total": true, "df.bytes.used": true, "df.bytes.used.percent": true, "df.inodes.total": true, "df.inodes.free": true, "df.inodes.used": true, "df.inodes.used.percent": true, "mem.memtotal": true, "mem.memused": true, "mem.memused.percent": true, "mem.memfree": true, "mem.swaptotal": true, "mem.swapused": true, "mem.swapfree": true } } 4.3 驗證 ./falcon-agent --check 【windows】 4.1 下載下傳windows-agent 首先安裝go環境 https://redirector.gvt1.com/edgedl/go/go1.9.2.windows-amd64.msi (需要代理) agent包 https://github.com/freedomkk-qfeng/windows-agent/archive/master.zip https://github.com/freedomkk-qfeng/windows-agent/releases/download/1.0.2/windows-agent-release-1.0.2.zip 把 windows-agent-release-1.0.2.zip解壓到windows-agent-master目錄下 4.2 修改配置檔案 配置檔案請參照cfg.example.json,修改該檔案名為cfg.json { "debug": true, "logfile": "windows.log", //日志的輸出路徑 "hostname": "", "ip": "", "iis":{ "enabled": false, "websites": [ "Default Web Site" //web 的站點,可以留白,預設會采集_Total的 ] }, "mssql":{ "enabled": false, "addr":"127.0.0.1", "port":1433, "username":"sa", "password":"123456", "encrypt":"disable", //disable - 不加密 //false - 除認證封包外不加密 //true -加密 //SQL Server 2008 和 SQL Server 2008 R2 必須選擇 disable,否則無法正常認證。要修複這個問題,需要更新 SQL Server 2008 R2 SP2,或 SQL Server 2008 SP3 "instance": [ //要采集資料庫執行個體名 "test" ] }, "heartbeat": { "enabled": true, "addr": "127.0.0.1:6030", "interval": 60, "timeout": 1000 }, "transfer": { "enabled": true, "addrs": [ "127.0.0.1:8433" ], "interval": 60, "timeout": 1000 }, "http": { "enabled": true, "listen": ":1988", "backdoor": false }, "collector": { "ifacePrefix": ["本地連接配接"] //所采集的網卡名,注意 falcon 預設不支援中文名的tag,是以需要修改 graph 表的編碼為 uft8 }, "ignore": { "cpu.busy": true, } } 4.3 運作 以下指令需在管理者模式下運作開 cmd 或 Powershell 先試運作一下 .\windows-agent.exe 2016/08/08 13:44:31 cfg.go:96: read config file: cfg.json successfully 2016/08/08 13:44:31 var.go:31: logging on windows.log 2016/08/08 13:44:31 http.go:64: listening :1988 等待1-2分鐘,觀察輸出,确認運作正常 使用 nssm 注冊為 Windows 服務。 .\nssm.exe install windows-agent
啟動服務 .\nssm.exe start windows-agent 4.3 測試
http 資訊維護接口
curl http://127.0.0.1:1988/health 正常則傳回 ok curl http://127.0.0.1:1988/version 傳回版本 curl http://127.0.0.1:1988/workdir 傳回工作目錄 curl http://127.0.0.1:1988/config 傳回配置
http 轉發接口
http://127.0.0.1:1988//v1/push
轉載于:https://www.cnblogs.com/Ghost-bird/p/8675943.html