centos6.9
工作目錄:
[root@centos2 services]# /usr/local/services
安裝環(huán)境
open-falcon的后端組件都是使用Go語言編寫的,本節(jié)我們搭建Go語言開發(fā)環(huán)境返劲,clone代碼
我們使用64位Linux作為開發(fā)環(huán)境,與線上環(huán)境保持一致粤剧。如果你所用的環(huán)境不同鹊奖,請(qǐng)自行解決不同平臺(tái)的命令差異
首先安裝Go語言開發(fā)環(huán)境:
[root@centos2 services]# wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
配置環(huán)境變量:
添加以下配置
[root@centos2 agent]# vim /etc/profile
export HOME=/usr/local/service
export GOROOT=$HOME/go
export GOPATH=$HOME/workspace
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
然后執(zhí)行命令使其生效:
[root@centos2 agent]# source /etc/profile
解壓go包。
下載小米監(jiān)控安裝包:
wget https://github.com/open-falcon/of-release/releases/download/v0.1.0/open-falcon-v0.1.0.tar.gz -O open-falcon-latest.tar.gz
解壓:
for x in `find ./tmp/ -name "*.tar.gz"`;do \
app=`echo $x|cut -d '-' -f2`; \
mkdir -p $app; \
tar -zxf $x -C $app; \
done
我這里是用git 拉下來的代碼:
[root@centos2 github.com]# pwd
/usr/local/services/go/src/github.com
[root@centos2 github.com]# git clone --recursive https://github.com/open-falcon/of-release.git
然后: mv of-release open-falcon
進(jìn)入agent:
[root@centos2 github.com]# ll open-falcon/
total 76
drwxr-xr-x 10 root root 4096 Aug 16 00:23 agent
drwxr-xr-x 7 root root 4096 Aug 15 23:47 aggregator
drwxr-xr-x 11 root root 4096 Aug 15 23:48 alarm
drwxr-xr-x 8 root root 4096 Aug 15 23:48 common
drwxr-xr-x 4 root root 4096 Aug 15 23:49 dashboard
drwxr-xr-x 12 root root 4096 Aug 15 23:49 fe
drwxr-xr-x 8 root root 4096 Aug 15 23:50 gateway
drwxr-xr-x 12 root root 4096 Aug 15 23:50 graph
drwxr-xr-x 8 root root 4096 Aug 15 23:50 hbs
drwxr-xr-x 8 root root 4096 Aug 15 23:50 judge
drwxr-xr-x 6 root root 4096 Aug 15 23:50 links
drwxr-xr-x 10 root root 4096 Aug 15 23:50 nodata
drwxr-xr-x 6 root root 4096 Aug 15 23:51 portal
drwxr-xr-x 9 root root 4096 Aug 15 23:51 query
-rw-r--r-- 1 root root 310 Aug 15 23:46 README.md
drwxr-xr-x 4 root root 4096 Aug 15 23:51 scripts
drwxr-xr-x 9 root root 4096 Aug 15 23:51 sender
drwxr-xr-x 9 root root 4096 Aug 15 23:53 task
drwxr-xr-x 9 root root 4096 Aug 15 23:53 transfer
[root@centos2 github.com]# cd open-falcon/agent/
[root@centos2 agent]# ll
-rw-r--r-- 1 root root 1233 Aug 15 23:47 cfg.example.json
-rwxr-xr-x 1 root root 2291 Aug 15 23:47 control
drwxr-xr-x 2 root root 4096 Aug 15 23:47 cron
-rwxr-xr-x 1 root root 10933496 Aug 16 00:16 falcon-agent
-rw-r--r-- 1 root root 3900610 Aug 16 00:16 falcon-agent-5.1.0.tar.gz
drwxr-xr-x 2 root root 4096 Aug 15 23:47 funcs
drwxr-xr-x 2 root root 4096 Aug 15 23:47 g
-rw-r--r-- 1 root root 8 Aug 16 00:16 gitversion
drwxr-xr-x 2 root root 4096 Aug 15 23:47 http
-rw-r--r-- 1 root root 11358 Aug 15 23:47 LICENSE
-rw-r--r-- 1 root root 780 Aug 15 23:47 main.go
-rw-r--r-- 1 root root 462 Aug 15 23:47 NOTICE
drwxr-xr-x 2 root root 4096 Aug 15 23:47 plugins
drwxr-xr-x 5 root root 4096 Aug 15 23:47 public
-rw-r--r-- 1 root root 659 Aug 15 23:47 README.md
drwxr-xr-x 2 root root 4096 Aug 16 00:16 var
[root@centos2 agent]# go get ./...
[root@centos2 agent]# ./control build
[root@centos2 agent]# ./control pack
最后一步會(huì)pack出一個(gè)tar.gz的安裝包伐谈,拿著這個(gè)包去部署服務(wù)即可。
配置說明
配置文件必須叫cfg.json试疙,可以基于cfg.example.json修改
{
"debug": true, # 控制一些debug信息的輸出诵棵,生產(chǎn)環(huán)境通常設(shè)置為false
"hostname": "", # agent采集了數(shù)據(jù)發(fā)給transfer,endpoint就設(shè)置為了hostname祝旷,默認(rèn)通過`hostname`獲取履澳,如果配置中配置了hostname,就用配置中的
"ip": "", # agent與hbs心跳的時(shí)候會(huì)把自己的ip地址發(fā)給hbs怀跛,agent會(huì)自動(dòng)探測(cè)本機(jī)ip距贷,如果不想讓agent自動(dòng)探測(cè),可以手工修改該配置
"plugin": {
"enabled": false, # 默認(rèn)不開啟插件機(jī)制
"dir": "./plugin", # 把放置插件腳本的git repo clone到這個(gè)目錄
"git": "https://github.com/open-falcon/plugin.git", # 放置插件腳本的git repo地址
"logs": "./logs" # 插件執(zhí)行的log吻谋,如果插件執(zhí)行有問題忠蝗,可以去這個(gè)目錄看log
},
"heartbeat": {
"enabled": true, # 此處enabled要設(shè)置為true
"addr": "127.0.0.1:6030", # hbs的地址,端口是hbs的rpc端口
"interval": 60, # 心跳周期漓拾,單位是秒
"timeout": 1000 # 連接hbs的超時(shí)時(shí)間阁最,單位是毫秒
},
"transfer": {
"enabled": true, # 此處enabled要設(shè)置為true
"addrs": [
"127.0.0.1:8433",
"127.0.0.1:8433"
], # transfer的地址戒祠,端口是transfer的rpc端口, 可以支持寫多個(gè)transfer的地址,agent會(huì)保證HA
"interval": 60, # 采集周期速种,單位是秒姜盈,即agent一分鐘采集一次數(shù)據(jù)發(fā)給transfer
"timeout": 1000 # 連接transfer的超時(shí)時(shí)間,單位是毫秒
},
"http": {
"enabled": true, # 是否要監(jiān)聽http端口
"listen": ":1988" # 如果監(jiān)聽的話配阵,監(jiān)聽的地址
},
"collector": {
"ifacePrefix": ["eth", "em"] # 默認(rèn)配置只會(huì)采集網(wǎng)卡名稱前綴是eth馏颂、em的網(wǎng)卡流量,配置為空就會(huì)采集所有的闸餐,lo的也會(huì)采集饱亮。可以從/proc/net/dev看到各個(gè)網(wǎng)卡的流量信息
},
"ignore": { # 默認(rèn)采集了200多個(gè)metric舍沙,可以通過ignore設(shè)置為不采集
"cpu.busy": true,
"mem.swapfree": true
}
}
進(jìn)程管理
我們提供了一個(gè)control腳本來完成常用操作
./control start 啟動(dòng)進(jìn)程
./control stop 停止進(jìn)程
./control restart 重啟進(jìn)程
./control status 查看進(jìn)程狀態(tài)
./control tail 用tail -f的方式查看var/app.log
ionice -c 3 nice -n 10 ./control start
參考 :https://book.open-falcon.org/zh/install_from_src/agent.html