每台服务器,都有安装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/