每臺服務器,都有安裝falcon-agent,falcon-agent是一個golang開發的daemon程序,用於自發現的採集單機的各類數據和指標前端
redisnode
mkdir /home/redis && cd /home/redis wget http://download.redis.io/releases/redis-4.0.9.tar.gz tar -zxvf redis-4.0.9.tar.gz mv redis-4.0.9 redis4.0.9 && cd redis4.0.9 mkdir logs make && make install cat >>/home/redis/redis4.0.9/redis.conf<<EOF bind 0.0.0.0 daemonize yes pidfile /var/run/redis_6379.pid logfile "/home/redis/redis4.0.9/logs/redis.log" EOF redis-server /home/redis/redis4.0.9/redis.conf #鏈接測試 redis-cli -h 127.0.0.1 -p 6379
mysqlpython
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server chown mysql:mysql -R /var/lib/mysql mysqld --initialize systemctl start mysqld mysqladmin -u root password "new_password"; mysql -u root -p
導入數據mysql
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/
提示:若是是從v0.1.0升級到當前版本v0.2.0,則git
mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql
yum install golang 或者官網下編譯好的 wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.0/open-falcon-v0.2.0.tar.gzgithub
export FALCON_HOME=/home/work export WORKSPACE=$FALCON_HOME/open-falcon mkdir -p $WORKSPACE tar -xzvf open-falcon-v0.2.0.tar.gz -C $WORKSPACE
首先確認配置文件中數據庫帳號密碼與實際相同,不然須要修改配置文件golang
cd $WORKSPACE grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/root:123456/g'
啓動檢查redis
./open-falcon start # 檢查全部模塊的啓動情況 ./open-falcon check
更多命令行操做sql
# ./open-falcon [start|stop|restart|check|monitor|reload] module ./open-falcon start agent [root@jenkins open-falcon]# ./open-falcon check falcon-graph UP 91373 falcon-hbs UP 91383 falcon-judge UP 91393 falcon-transfer UP 91400 falcon-nodata UP 91407 falcon-aggregator UP 91414 falcon-agent UP 91423 falcon-gateway UP 91432 falcon-api UP 91439 falcon-alarm UP 91452 For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log
cd $WORKSPACE git clone https://github.com/open-falcon/dashboard.git 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 -i https://pypi.douban.com/simple 安裝過程缺乏包,則安裝好 wget https://files.pythonhosted.org/packages/24/6b/dd9031c446e05600b740086274a9939799f26401b8b96e124ccf71e6a9b2/Flask-Babel-0.9.tar.gz pip install 包名
提示:pip安裝 yum install python-pip -ydocker
dashboard的配置文件爲: 'rrd/config.py',請根據實際狀況修改 vim rrd/config.py ## API_ADDR 表示後端api組件的地址 API_ADDR = "http://127.0.0.1:8080/api/v1" ## 根據實際狀況,修改PORTAL_DB_*, 默認用戶名爲root,默認密碼爲"" ## 根據實際狀況,修改ALARM_DB_*, 默認用戶名爲root,默認密碼爲"" # portal database # TODO: read from api instead of db PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1") PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306)) PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root") PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","123456") PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal") # alarm database # TODO: read from api instead of db ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1") ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306)) ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root") ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","123456") ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")
./env/bin/python wsgi.py open http://127.0.0.1:8081 in your browser.
bash control start
查看日誌 bash control tail
開通8081端口,若是開了本機防火牆
dashbord沒有默認建立任何帳號包括管理帳號,須要你經過頁面進行註冊帳號。 想擁有管理全局的超級管理員帳號,須要手動註冊用戶名爲root的帳號(第一個賬號名稱爲root的用戶會被自動設置爲超級管理員)。 超級管理員能夠給普通用戶分配權限管理。
提示:註冊帳號可以被任何打開dashboard頁面的人註冊,因此當給相關的人註冊完帳號後,須要去關閉註冊帳號功能。只須要去修改api組件的配置文件cfg.json,將signup_disable配置項修改成true,重啓api便可。當須要給人開帳號的時候,再將配置選項改回去,用完再關掉便可。
#將agent目錄及啓動命令拷貝至客戶端上 #編輯agent配置文件,修改hostname、transfer、heaetbeat配置項 vim agent/config/cfg.json #啓動agent,查看agent狀態 nohup ./falco#重載配置文件 n-agent -c ../config/cfg.json >/tmp/falcon-agent.log 2>&1 & curl 127.0.0.1:1988/config/reload
cfg.json文件樣例
{ "debug": true, "hostname": "40", "ip": "", "plugin": { "enabled": false, "dir": "./plugin", "git": "https://github.com/open-falcon/plugin.git", "logs": "./logs" }, "heartbeat": { "enabled": true, "addr": "192.168.83.70:6030", "interval": 60, "timeout": 1000 }, "transfer": { "enabled": true, "addrs": [ "192.168.83.70:8433" ], "interval": 60, "timeout": 1000 }, "http": { "enabled": true, "listen": ":1988", "backdoor": false }, "collector": { "ifacePrefix": ["eth", "em", "ens", "docker"], "mountPoint": [] }, "default_tags": { }, "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 } } ignore 能夠自定義
自動安裝agent思路
初始化腳本中輸入主機名 curl -fsSL http://xxx.sh | sudo bash -s $host_name 腳本中引用安裝小米監控模塊 wget -P /usr/local/src http://xxx.tar.gz 替換對應的配置文件 替換主機名 HN1="$1" HN="\"$1\"," h1="\"hostname\": " h2="$h1$HN" sed -i "/debug/ i$h2" cfg.json 使用方法: bash xxx.sh [主機名] 後臺啓動 nohup ./bin/falcon-agent -c ./config/cfg.json >/tmp/falcon-agent.log 2>&1 curl -H 'Content-Type: application/x-www-form-urlencoded' -XPOST -d "endpoint=hostname&falcon_api=127.0.0.1:8080&hg_id=1" 192.168.83.59:8081/xxxx
agent訪問地址: http://ip:1988/ dashboard訪問地址: http://ip:8081/