一、背景
#
二、步骤
1.docker部署open-falcon
(1)启动mysql容器
docker run -itd \
        --name falcon-mysql \
        -v /home/work/mysql-data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=root \
        -p 3306:3306 \
        mysql:5.7
docker拉取官方mysql5.7镜像并打镜像为容器名为falcon-mysql,如服务器中3306端口已被mysql占用,可以用3307:3306的方式做端口映射。
做这步的时候我出现过容器启动以后,mysql -uroot -p输入密码显示密码错误的,建议更换一下映射目录/home/work/mysql-data:/var/lib/mysql,排查下来很可能是因为已经映射过目录,目录下面的秘钥已经生成,再次映射同一个目录数据会不一致,建议使用md5值查看一下
(2)在第一次运行之前启动mysql并初始化mysql
cd /tmp && \
    git clone 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 -proot < $x;
    done
(3)启动redis容器
docker run --name falcon-redis -p6379:6379 -d redis:4-alpine3.8
(4)启动falcon-plus容器
## pull images from hub.docker.com/openfalcon
    docker pull openfalcon/falcon-plus:v0.2.1

    ## run falcon-plus container
    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: 
    docker exec falcon-plus sh ctrl.sh start/stop/restart xxx

    ## check status of backend modules
    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/
(5)启动falcon-dashboard容器
docker run -itd --name falcon-dashboard \
        -p 8081:8081 \
        --link=falcon-mysql:db.falcon \
        --link=falcon-plus:api.falcon \
        -e API_ADDR=http://api.falcon:8080/api/v1 \
        -e PORTAL_DB_HOST=db.falcon \
        -e PORTAL_DB_PORT=3306 \
        -e PORTAL_DB_USER=root \
        -e PORTAL_DB_PASS=root\
        -e PORTAL_DB_NAME=falcon_portal \
        -e ALARM_DB_HOST=db.falcon \
        -e ALARM_DB_PORT=3306 \
        -e ALARM_DB_USER=root \
        -e ALARM_DB_PASS=root\
        -e ALARM_DB_NAME=alarms \
        -w /open-falcon/dashboard openfalcon/falcon-dashboard:v0.2.1  \
       './control startfg'
(6)浏览器输入http://服务器ip:8081访问前端页面。

这里写图片描述

(7)查看监控项,如图,做好图中三步点击右边的看图

这里写图片描述

这里写图片描述

(8)添加客户端。
添加客户端与非docker部署一致,详情可见https://blog.csdn.net/qq_33633013/article/details/82493432 添加agent步骤

这里写图片描述

以上部署open-falcon已完成,以下主要进行展示插件配置,如不需要可忽略
2.docker部署grafana
(1)docker 安装grafana
#由于宿主机中已安装grafana,因此3000端口被占用,使用宿主机3001端口映射到3000端口的方式解决
#此处安装指定版本grafana
docker run \
  -d \
  -p 3001:3000 \
  --name grafana \
  docker.io/grafana/grafana:4.4.3
(2)浏览器输入http://服务器ip:3001端口进行访问,默认账号/密码:admin/admin

这里写图片描述

(3)添加open-falcon插件
#进入容器
docker exec -it grafana bash

#更新下载源,此步不做可能会导致之后步骤失败
apt-get update

#下载git,nano.主要因为我这边apt-get install vi vim没成功
apt-get install git nano

#下载插件,放置到grafana插件文件夹下
git clone https://github.com/open-falcon/grafana-openfalcon-datasource
mv grafana-openfalcon-datasource /var/lib/grafana/plugins/grafana-openfalcon-datasource-master

#配置grafana,取消注释如下图
nano /etc/grafana/grafana.ini

#重启grafana,因为有时候配置好了会有缓存
docker restart grafana

#查看plugins是否多了一个Open-Falcon,如下图

这里写图片描述

这里写图片描述

(4)添加datasource

这里写图片描述

这里写图片描述

注意:如果以上提示xxx Bad Gateway可能是主机与docker之间通信造成的,在宿主机执行iptables -I INPUT 1 -p tcp –dport 8080 -j ACCEPT开放8080端口即可

这里写图片描述

(5)配置template

这里写图片描述

这里写图片描述

(6)创建dashboard

这里写图片描述

(7)创建图像

这里写图片描述

(8)配置图像

这里写图片描述

这里写图片描述

三、问题总结
整理后更新
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐