当前位置: 首页 > Linux

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

时间:2023-04-06 21:59:23 Linux

接到新任务,研究open-falcon监控公司的服务器指标取乐。说实话,我现在连关注哪些监控指标都不知道,但是在open-falcon的中文介绍里,就装这个,坑那么多,写一篇文章很有必要记住它。这篇文章主要包括:如何根据官方中文介绍搭建虚拟linux服务器及相关配置进行安装,会踩到哪些坑。只有一个目标:尽可能快地跑。服务器选择笔者最终选择了ubuntu-server16.04LTS64bit。基于这个服务器,很多安装说明和介绍的不一样。具体来说,把yum换成apt-getmysql-devel,换成libmysqld-dev,libmysqlclient-dev等。并且需要配置ubuntu的源。笔者配置的是阿里云的ubuntu16.04源。参考ubuntu16.04国内快更新源。这里有几点需要注意。open-falcon需要64位操作系统才能快速安装,甚至源代码安装也需要您手动调整命令差异。如果您不熟悉它,请不要尝试。尽量不要选择桌面操作系统。卡死了。安装前会有一堆提示,不要直接离开电脑。系统会询问您是否要安装一些网络服务包。记得安装openssh。将使用什么Xshell或Powershell进行远程连接。支持复制文本到命令行和vim就不错了。当然你也可以手动安装。选择的虚拟机是VirtualBoxforWindows。分配了2G内存和8G硬盘(应该够用了QAQ)。第一次启动会提示您挂载ISO。之后,您需要配置设备-网络-高级-端口转发。并且可能需要从主机传输文件,这将在后面讨论。从VirtualBox中为ssh配置端口22转发。记得在主机网络连接中查看主机网络,在虚拟机中使用ifconfig等命令查看子系统网络。如果display命令不存在,则对应的包丢失。如果子系统网络只有ipv6。.我真的不知道该怎么办。估计自己用ifconfig命令重置ipv4地址吧?先说说CentOS中的坑吧。为了适应yum命令,一开始选择了CentOS7MinimalISO。本产品下载安装速度快,但进入后需要自己配置虚拟网卡。检查使用什么空间。还有,不建议在配置网卡之前,先参考一些教程手撕eth0配置文件。如果网卡坏了,就不能换了。默认网卡名不是eth0,而是enp0s3,好像是ipv6连接的,会影响以后的端口转发。但最糟糕的是CentOS7没有mysql,请问?嗯,换成一个完全向前兼容的子项目mariadb,不过既然兼容mysql命令,那还是先用吧。安装数据库后,照常配置数据库远程访问,通过数据库管理软件如Navicat访问(注意:不便宜)。但是配置完成后会发现报错:SQLError(2013):LostconnectiontoMySQLserverat'waitingforinitialcommunicationpacket',systemerror:0/(ㄒoㄒ)/~~正在搜索这个问题会给你一些提示如果在mysql配置文件my.inf或者my.ini中的[mysqld]配置项中添加skip-name-resolve,可能会要求删除bind-address=127.0.0.1(这确实是必要的),并且有一个?_?这使您可以重新启动数据库连接。这样做的时候发现了问题。mariadb的配置文件采用的是在其他文件夹中导入配置的方式。由于水平有限,对mysql的配置系统不是很懂,等回来再补这个坑。如果有人知道如何解决这个问题,请告诉我。我不得不放弃mariadb并重新使用ubuntu服务器。其实QAQ在这里已经消失很久了。配置准备环境redis不一定存在这个包,可以尝试用redis-server替换。可能需要创建一个工作目录,我不确定那时那些脚本是否会直接调用这个导出变量。配置mysql,如果要使用远程连接,记得把配置项中的bind-address这一行注释掉,否则无法远程访问。在准备环境中,要求下载编译好的of-release-v0.1.0.tar组件,这里有个坑。从github上下载这个包实在是太慢了,只好手动配置宿主机到虚拟机的传输环境。一共三种方法:使用VirtualBox的共享功能(需要安装增强功能)scp(注意Windows下需要额外安装包)带FTP服务器的虚拟机:vsftpd第一种需要VirtualBox的增强功能,我在windows上因为缺少安装盘报错;第二个未经验证;第三个记得配置服务器的读写权限。下载后麻烦提醒我解压,命令循环解压,如果你不是root用户,需要sudo。安装完成后,你的文件夹应该是这样的状态:接下来就是按照教程一个一个安装服务了。服务安装注意事项绘图组件中,图形组件需要连接数据库,设置root密码为空会连接失败。显示查看./controltail时会发现启动失败,报类似AccessDeniedforroot@localhost的错误。但是比较棘手的是你为什么不在启动时报告给我。启动显示进程成功,但是找不到日志,只有这么一点信息,因为我对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组件是基于pythonvirtualenv构建的。mysql-devel将被libmysqld-dev取代,此外,您需要安装python-dev/python2.7-dev(根据您的版本,您应该知道python2和python3非常不兼容。),否则你会发现在下一步pipinstall要求的时候没有gcc编译一些依赖包。完成后,一项一项启动服务。检查日志报错是正常的。毕竟还有一堆告警组件没有安装。启动后,打开表盘,在左侧输入你的服务器机器名(ubuntu),在左侧找到,然后点击右侧的搜索。屏幕是空的,应该没有各种统计指标。不要被吓倒。先写到这里吧。接下来会有关于告警组件的坑,以及业务相关的东西。