openattic是个不错的运维监控工具,安装部署难度很大啊~~
写在前面
松鼠哥的ceph专业课程上线啦!
面向新手同学,从0实战,全面入门ceph安装部署与运维,有需要的同学赶紧扫码订购吧:
openattic是一个针对ceph的管理和监控系统,与zabbix和grafana相比,它最大的优势在于通过librados与集群通信,属于定制型的插件,除了可以实现监控外,还能进行一些配置,迈出了可视化运维管理的一步
openattic是openSUSE赞助的一个项目,因此在其安装平台主要是openSUSE,最新的3.x版本就仅有openSUSE有包可以直接安装,而其他发行版平台的包只有2.x的版本,2.x版本确是read-only的,功能缺少很多,考虑到场景及适用性,我们非常希望将最新版本安装到centos7中,并基于此进行二次开发
踩坑
一开始,笔者在虚拟机环境的centos 7.5上安装openattic 2.x,想着哪怕是read-only也好,看看样子,结果,安装完之后给我看的是这个!?
就不多吐槽安装过程有多疼了,哎呀,各种python依赖的版本不兼容换低版本装到吐。。。
接下来,好,你不是支持openSUSE嘛?我就来个openSUSE,誓要吃下你这个螃蟹,于是,笔者又在虚拟机环境中开了一个openSUSE 42.3,然后按照官方步骤一路安装下来,嗯,还是3.x的,阔以啊^_^,来,咱们启动完后,访问一下ui
使用openattic/openattic
登陆进去之后,随便点开看,都是不行的,what!?
排查一轮之后,发现访问ceph部分的代码一直超时.
1 | 2019-02-24 15:34:26,223 2334 mod_wsgi ERROR nodb.models#__get__ - failed to populate Field "osd_flags" of /etc/ceph/ceph.conf (<class 'ceph.models.CephCluster'>) |
尝试解决未果,会不会是访问集群都有问题呢?好,尽然本机器已经被admin授权,那执行ceph -s
看下
1 | linux-039h:/etc/ceph # ceph -s |
WTF!这简直就是包有问题吧,ceph命令都直接挂掉,放弃~.~
开始自力更生
既然openSUSE的ceph包不行,centos的openattic包直接就废掉,自力更生用源代码自己编自己跑行不行?好吧,看看它的开发者手册,发现有个Setting up a Development System,它的示例是在debian上部署开发环境,那么我们在centos上应该是差不多的,代码是跨平台的(那当然,python写的),所以有必要探索一下在centos上的安装部署,下面的安装过程重试了好多次才试出来的,对比了好多次openSUSE的内容,都快吐了。。。
环境准备
虚拟机使用的系统是CentOS Linux release 7.5.1804 (Core) - minimal,使用root用户进行操作
如果安装机器上没有ceph源,需要手动添加,因为要安装ceph客户端rados库
1 | [Ceph] |
首先yum安装包:
1 | yum -y install epel-release |
然后pip安装下面的包:
1 | packs='decorator==4.0.9 |
关闭linux防火墙及selinux
1 | systemctl stop firewalld.service |
因为我们不安装openattic的rpm包,根据它的spec文件,手工创建openattic使用的用户及相关目录并修改权限:
1 | groupadd -r openattic |
下载最新代码编译
从git上下载master代码,然后进入webui目录进行编译,编译过程中会下载一些文件,会比较慢:
1 | cd /srv |
这个过程比较慢,笔者用手机开热点(城中村的破网)搞了半小时,编译完成后,还是因为我们无法安装rpm包,所以需要手工创建并修改一些openattic的文件,这些文件启动openattic的时候要用到
1 | #创建openattic的相关文件,这些文件来源于git下载的代码 |
修改部分文件的内容,这些修改部分使得openattic的运行环境指向我们的代码,从而能够使用最新的代码,并且我们在本地修改代码后,能够直接跑起来(我们编译的是webui的代码,修改webui才需要再编译)
1 | #修改相关参数,使得openattic可以使用下载的git代码 |
配置集群访问
至此,环境准备得差不多了,接下来开始配置
首先是ceph集群,向监控机器授权密钥,这里openattic为监控机器名:
1 | ceph-deploy admin openattic |
然后修改keyring权限使得openattic可以读取到
1 | chmod o+r /etc/ceph/ceph.client.admin.keyring |
完成后,使用下面的脚本测试openattic主机能否正常访问到集群
1 | import rados |
如果没有报错,正常返回存储池的信息,则表示访问集群无问题
配置openattic
初始化openattic环境,首先是postgresql-server,在启动前需要初始化
1 | su - postgres |
最后,运行oaconfig install --allow-broken-hostname
和oaconfig start
将项目跑起来,检查一下两个关键服务是否正常起来
1 | systemctl status httpd.service |
如果这两个服务正常运行,说明环境没问题,可以在浏览器访问了
登陆进去后,可以看一下当前能够使用的功能,例如crushmap
还有存储池也可以进行配置
总结与展望
openattic是很年轻的一个项目,目前主要支持luminous版本,最新的Mimic版本的支持还有问题,页面会直接抛错,后续应该会越做越好,而且基于此基础做定制,也是一个很不错的选择
参考资料
- 本文作者: 奋斗的松鼠
- 本文链接: http://www.strugglesquirrel.com/2019/02/24/centos-7使用源代码安装openattic/
- 版权声明: 本博客所有文章除特别声明外,创作版权均为作者个人所有,未经允许禁止转载!