博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在kubernetes集群中部署open-falcon
阅读量:7085 次
发布时间:2019-06-28

本文共 3552 字,大约阅读时间需要 11 分钟。

公司最近监控系统从zabbix切换到open-falcon,需要将open-falcon部署到私有的kubernetes集群上。open-falcon团队最近没有更新维护,提交的PR没有反应,所以将部署方法记录到这里。

2019年04月15日更新,PR已经被open-falcon项目团队接受,给项目官方一个?,全部yaml文件链接调整到官方项目。

kubernetes 环境

部署环境为kubernetes 1.14 , 详情见 kubectl version :

Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:45:25Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}复制代码

准备mysql服务

如果已经有mysql服务了,可以跳过创建mysql服务这个步骤。创建mysql服务方法如下:

kubectl apply -f mysql.yaml复制代码

然后,初始化open-falcon需要使用的mysql库:

sh init_mysql_data.sh复制代码

脚本内容如下:

#!/bin/shmysql_pod=$(kubectl get pods | grep mysql | awk '{print $1}')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 ...;	    kubectl exec -it $mysql_pod -- mysql -uroot -p123456 < $x;	donerm -rf /tmp/falcon-plus/复制代码

这个脚本主要做了下面几件事:

  1. 获取集群中mysql服务的pod id。
  2. 从open-falcon的github repo中下载数据初始化脚本。
  3. 执行数据初始化脚本,初始化open-falcon的数据库。
  4. 清理临时文件和目录

注意: 按需修改 mysql.yaml 中的mysql密码,同样注意openfalcon-plus和dashboard中的mysql密码。

准备redis服务

如果已经有redis服务了,可以跳过创建redis服务这个步骤。创建redis服务方法如下:

kubectl apply -f redis.yaml复制代码

启动open-falcon后端服务全家桶

kubectl apply -f openfalcon-plus.yaml复制代码

其中主要的点在使用ConfigMap配置了 entrypoint.sh

apiVersion: v1kind: ConfigMapmetadata:  name: openfalcon-configmapdata:  entrypoint.sh: |-    #!/bin/bash    /bin/sh -c 'sleep 10 && sh ctrl.sh start graph hbs judge transfer nodata aggregator gateway api alarm'  & /usr/bin/supervisord -c /etc/supervisord.conf复制代码

这样在不改动镜像和deployment的情况下,调整configmap就可以调整openfalcon启动的模块。当然正式环境下,从源码重新编译镜像更佳。因为supervisord管理进程的方式不 docker

/bin/sh -c 'sleep 10 && sh ctrl.sh start graph hbs judge transfer nodata aggregator gateway api alarm' & /usr/bin/supervisord -c /etc/supervisord.conf 这个命令的逻辑是先启动supervisord,十秒后再启动openfalcon的全家桶模块。

启动open-falcon-dashboard

kubectl apply -f openfalcon-dashboard.yaml复制代码

dashboard的部署,主要关注其中的 API_ADDR 这个环境变量是指向kubernetes集群中open-falcon服务。我这里偷懒,直接定义到deployment中了,合理的方式应该是configmap。

containers:      - name: open-falcon-dashboard        image: openfalcon/falcon-dashboard:v0.2.1        command: ["sh","-c","cd /open-falcon/dashboard &&  ./control startfg"]        imagePullPolicy: IfNotPresent        ports:        - containerPort: 8081        env:        - name: API_ADDR          value: http://open-falcon:8080/api/v1        - name: PORTAL_DB_HOST          value: mysql        - name: PORTAL_DB_PORT          value: "3306"        ....复制代码

访问open-falcon-dashboard

全部完成后,查看 kubectl get svc :

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGEmysql                   NodePort    10.110.20.201   
3306:30535/TCP 25mopen-falcon NodePort 10.97.12.125
8433:31952/TCP,8080:31957/TCP 53sopen-falcon-dashboard NodePort 10.96.119.231
8081:30191/TCP 3sredis ClusterIP 10.98.212.126
6379/TCP 32m复制代码

得到 open-falcon-dashboard 服务暴露的本地端口 30191 , 然后浏览器访问 http://192.168.10.21:30191

转载于:https://juejin.im/post/5cab6af4e51d456e31164990

你可能感兴趣的文章
linux中sed的用法
查看>>
HDUOJ----A Computer Graphics Problem
查看>>
2013第39周六不要以任何行动推迟拖延行动
查看>>
line-height和vertical-algin
查看>>
道德经
查看>>
如何修改SVN中的用户名和密码
查看>>
铁通、长宽网络支付时“签名失败”问题分析及解决方案  [88222001]验证签名异常:FAIL[20131101100002-142]...
查看>>
POJ 3345 Bribing FIPA(树形DP)
查看>>
用Github账号领Ripple币 - biaobiaoqi - 博客园
查看>>
Update-ServiceTemplate
查看>>
ylb: SQL表的高级查询-子查询
查看>>
Red Pen - 快速高效的获取设计项目的反馈
查看>>
今天挨批了
查看>>
Func和Action的用法区别
查看>>
莫名其妙的js脚本文件引用不到
查看>>
转:Android开发之旅:环境搭建及HelloWorld
查看>>
Red–black tree ---reference wiki
查看>>
阅读uboot
查看>>
不要为自己找借口,你可以做到的--职场实用做人法则
查看>>
CentOS 6.3下Samba服务器的安装与配置详解
查看>>