DevTestOps开发测试运维监控

运维监控:openfalcon部署

2018-10-23  本文已影响84人  李孝伟

使用源码安装需要安装各种依赖,这里采用的是docker安装,直接拉取镜像启动。
源码安装的小伙伴->官方直通车:https://github.com/open-falcon/falcon-plus/
docker部署地址:
https://github.com/open-falcon/falcon-plus/tree/master/docker

  1. 拉取mysql镜像并启动
    ## start mysql in container
    docker run -itd \
        --name falcon-mysql \
        -v /home/work/mysql-data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=test123456 \
        -p 3306:3306 \
        mysql:5.7

    ## init mysql table before the first running
    cd /tmp && \
    git clone --depth=1 https://github.com/open-falcon/falcon-plus && \
    cd /tmp/falcon-plus/ && \
    for x in `ls ./scripts/mysql/db_schema/*.sql`; do
        echo init mysql table $x ...;
        docker exec -i falcon-mysql mysql -uroot -ptest123456 < $x;
    done

    rm -rf /tmp/falcon-plus/

2.拉取redis并启动

docker run --name falcon-redis -p6379:6379 -d redis:4-alpine3.8
  1. 拉取falconplus并启动
    ## pull images from hub.docker.com/openfalcon 拉取镜像
    docker pull openfalcon/falcon-plus:v0.2.1
    
    ## run falcon-plus container  启动镜像,主要mysql密码端口,以及映射的文件路径
    docker run -itd --name falcon-plus \
         --link=falcon-mysql:db.falcon \
         --link=falcon-redis:redis.falcon \
         -p 8433:8433 \
         -p 8080:8080 \
         -e MYSQL_PORT=root:test123456@tcp\(db.falcon:3306\) \
         -e REDIS_PORT=redis.falcon:6379  \
         -v /home/work/open-falcon/data:/open-falcon/data \
         -v /home/work/open-falcon/logs:/open-falcon/logs \
         openfalcon/falcon-plus:v0.2.1
    
    ## start falcon backend modules, such as graph,api,etc.  一次启动所有服务
    docker exec falcon-plus sh ctrl.sh start \
            graph hbs judge transfer nodata aggregator agent gateway api alarm
    
    ## or you can just start/stop/restart specific module as:  启动单个服务xxx
    docker exec falcon-plus sh ctrl.sh start/stop/restart xxx

    ## check status of backend modules 检测是否安装ok
    docker exec falcon-plus ./open-falcon check
    
    ## or you can check logs at /home/work/open-falcon/logs/ in your host 看下日志文件
    ls -l /home/work/open-falcon/logs/

   浏览器访问:
  http://ip:8081

Agent 作为数据收集的模块,需要每台机器都部署,这个省不了。
单独-agent地址:
https://github.com/open-falcon-archive/agent
需要go语言环境(!!!Go >= 1.6)

https://dl.google.com/go/go1.10.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz

vi /etc/profile
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/opt/gopath

go version

一次编译打包后,可以直接将包分发到其他机器,其他机器不需要go语言环境,直接解压启动即可,记得修改配置文件。

# set $GOPATH and $GOROOT
mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/open-falcon/agent.git
cd agent
go get ./...
./control build    编译
./control start    启动
./control pack  打包  

./falcon-agent --check 检查

配置文件必须叫cfg.json,可以基于cfg.example.json修改

cp cfg.example.json cfg.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, # 此处enabled要设置为true
        "addrs": [
            "127.0.0.1:8433"
        ], # transfer的地址,端口是transfer的rpc端口, 可以支持写多个transfer的地址,agent会保证HA
        "interval": 60, # 采集周期,单位是秒,即agent一分钟采集一次数据发给transfer
        "timeout": 1000 # 连接transfer的超时时间,单位是毫秒
    },
    "http": {
        "enabled": true, # 是否要监听http端口
        "listen": ":1988" # 如果监听的话,监听的地址
    },
    "collector": {
        "ifacePrefix": ["eth", "em"] # 默认配置只会采集网卡名称前缀是eth、em的网卡流量,配置为空就会采集所有的,lo的也会采集。可以从/proc/net/dev看到各个网卡的流量信息
    },
    "ignore": { # 默认采集了200多个metric,可以通过ignore设置为不采集
        "cpu.busy": true,
        "mem.swapfree": true
    }
}
上一篇下一篇

猜你喜欢

热点阅读