open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境

收到新的任务研究一下 open-falcon 监控公司的服务器指标玩玩。说实话如今连要重视哪些监控指标都不知道,但在
open-falcon 中文介绍 中,就安装这一块,踩的坑实在好多,因此有必要写篇文章记一下。
这篇文章主要包括:html

  • 如何搭一个虚拟的 linux 服务器和相关配置python

  • 按照官方的中文介绍安装,会踩到哪些坑。mysql

目标只有一个:尽快跑起来。linux

服务器选择

笔者最终选择的是 ubuntu-server 16.04 LTS 64bit。基于这款服务器,许多安装指令和介绍中不同。具体包括git

  • yum 替换为 apt-getgithub

  • mysql-devel 替换为 libmysqld-dev,libmysqlclient-devgolang

等。而且 ubuntu 的源须要配置。笔者配置的是阿里云的ubuntu 16.04 源,参考 ubuntu 16.04 国内快速更新源
这里有几点须要注意。redis

  • open-falcon 须要 64 位的操做系统以实现快速安装,即使是源码安装也须要你手动调整命令区别。非熟悉者别擅自尝试。sql

  • 尽可能别选择 desktop 的操做系统。卡的要死。shell

  • 安装以前会有一坨提示,别随便从电脑前走开。会问你要不要安装一些网络服务包,记得 openssh 要装,到时用什么 Xshell 啊,Powershell 啊去远程链接,支持文本复制到命令行和 vim 什么的仍是很好的。固然了你到时手动装也行。

虚拟机选择的是Virtual Box for Windows。分配了 2G 内存和 8G 硬盘(应该够用了吧 QAQ )。第一次启动会提示你装载ISO。以后须要配置设备-网络-高级-端口转发。以及可能须要从主机传文件过去,一会讲。

从 VirtualBox 中配置 ssh 的 22 端口转发。记得在主机网络链接里查看主机网络,在虚拟机中使用 ifconfig 等命令查看子系统网络。显示命令不存在的话是缺相应的包了。若是子系统网络只有 ipv6 的话。。我还真不知道怎么办。估计本身用 ifconfig 命令重设一下 ipv4 地址?

CentOS 里的坑

这里说一下我一开始为了适配 yum 命令,选择的是 CentOS 7 Minimal ISO。这货下载快安装也快,但进去以后要本身配虚拟网卡。勾选什么的用空格。还有配网卡以前不推荐参见某些教程手撕 eth0 配置文件,网卡坏了改都改不过来。

默认的网卡名称还不是 eth0,而是enp0s3 ,彷佛是 ipv6 链接的,这个会在以后端口转发的时候有影响。

不过最惨的坑仍是CentOS 7 没有 mysql,excuse me? 啊好吧是被换成了彻底向前兼容的子项目 mariadb 不过既然兼容 mysql 命令就先用上吧。
在安完数据库以后照常进行配置数据库远程访问以经过数据库管理软件诸如 Navicat (注:不便宜)进行访问。可是在配置完成以后会发现报错:

SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0

/(ㄒoㄒ)/~~

搜这个问题会有一些提示你在 mysql 的配置文件 my.infmy.ini当中在 [mysqld] 配置项加上
skip-name-resolve 的,有让你删掉 bind-address=127.0.0.1 的(这个的确是必要的),还有让你重启数据库链接的?_?。
照作的时候发现问题了。mariadb 的配置文件是采用导入别的文件夹里的配置的方式的。因为水平所限不了解 mysql 配置体系,因而这个坑回来再填。
若是有小伙伴知道这里怎么解决还请赐教。

只好弃坑 mariadb 去从新用了 ubuntu server。到这里其实半天已经没了 QAQ。

配置准备环境

redis 不必定存在这个包,能够尝试换成 redis-server。
建立工做目录恐怕是必要的,保不许到时候那些脚本会不会直接调用这个 export 变量。
配置 mysql 若是要用远程链接记得去配置项里面把 bind-address 这一行注释掉,不然不能远程访问的。

准备环境里有要求下载已经编译好的 of-release-v0.1.0.tar 组件的,这地方就有坑了。从 github 下载这个包的确巨慢,只好本身手配主机到虚拟机的传送环境。一共是三种方法:

其中第一个须要 VirtualBox 的加强功能,我在 windows 上面由于缺乏安装盘报了错;第二个未验证;第三个记得配置服务器的读写权限。

不厌其烦地提醒一下下好了以后解压,命令循环解压,若不是 root 用户,是须要 sudo 的。安装好以后你的文件夹里应该是这个状态:
open-falcon 目录

接下来就是逐个根据教程安装服务了。

服务安装的注意事项

在绘图组件当中,graph 组件是要链接数据库的,而且设置 root 的密码为空的链接会失败。表现为查看./control tail 时会发现启动失败,报了Access Denied for root@localhost 的相似错误。但比较坑的是在启动的时候咋不给我报出来呢,启动显示成功查进程查不到看 log 又只有这么点信息,由于对 golang 不熟也没能跟踪缘由具体是啥。查看 mysql 的 user 表会发现无密码的登陆方式是 plugin:auth_socket,而其余的是 mysql_native_password + authentication_string。至此萌比。
总之我是修改用户密码来解决问题的,为此要变动$WORKPLACE/graph/cfg.json

"db": {
        "dsn": "root:yourpassword@tcp(127.0.0.1:3306)/graph?loc=Local&parseTime=true",
        "maxIdle": 4 
    },

一改这个配置其余服务组件全都要改,其实这并非个优雅的解决方案。
若是有小伙伴了解为什么不用密码链接会失败,好比看个源码啥的,请告诉我谢谢。(我可能之后会补。)

dashboard 组件是基于 python virtualenv 去搭建的。mysql-devel 会被替换为 libmysqld-dev,除此以外还须要安装 python-dev/python2.7-dev(取决于你的版本,应该知道 python 2 和 python 3 有很大不兼容性。),不然下一步 pip install requirements 的时候就会发现没有 gcc 去编译一些依赖包。

完事以后把服务一个个启动起来就好了。查 log 的时候会报错此时还正常,毕竟告警组件还有一堆没安装。

启动以后打开表盘,左边输入你的服务器机器名(ubuntu),左边找出来以后再到右边点查找。screen 里面是空的应该没有各类统计指标啥的。不要吓着恩。

就先写到这里。接下来会有关于告警组件的坑,还有业务相关什么的。

相关文章
相关标签/搜索