如何自己开发一套服务器管理系统

如何自己开发一套服务器管理系统,第1张

转载表面上看,是一套基于B/S方式实现的分布式管理系统,但其实背后的架构是基于C/S完成的。你以为他是一只鞋吗?其实他是一个吹风机。作为界面化的系统,浏览器框架是不可或缺的,但更加重要的东西在Socket上面。

一、需要解决中央控制端到各节点服务器之间的通信。

这个其实牵扯到一个通信协议的问题,各语言都有自己的socket,thread的库,直接调用即可。但是这个通信协议就需要自己来完成了。既不能太简单,太简单了,明码传输,如果别人获知了这个接口,就很容易执行一些令人讨厌的 *** 作。也不能太复杂,太复杂了等于是给自己找麻烦,所以简单的数据包编解码的工作或者用token验证的方式是需要的。通信协议起码要两种,一种是传输命令执行的协议,一种是传输文件的协议。

二、跨语言的socket通信

为什么要跨语言,主控端和代理端通信,用什么语言开发其实无所谓。但是为了给自己省事,尽可能使用服务器上已经有了的默认语言,Ambari前期采用phppuppet的方式管理集群,这不是不可以,puppet自己解决了socket通信协议和文件传输的问题,可你需要为了puppet在每台服务器上都安装ruby。我是个有点服务器和代码洁癖的人。光是为了一个puppet就装个ruby,我觉得心里特对不起服务器的资源。所以我自己写了一个python的代理端。python是不管哪个linux系统在安装的时候就都会有了。然后主控端的通信,可以用python实现,也可以用php实现,但是考虑到对于更多的使用者来说,改php可能要比改tornado简单许多,所以就没用python开发。hadoop分支版本众多,发布出去,用户要自己修改成安装适合自己的hadoop发行版,就势必要改源码,会php的明显比会python的多。php里面的model封装了所有的 *** 作,而python只是个 *** 作代理人的角色而已。

所以也延伸出一个问题,什么语言用来做这种分布式管理系统的代理端比较合适,我自己觉得,也就是python比较合适了, *** 作系统自带,原生的package功能基本够用。用java和php也可以写agent,但是你势必在各节点预先就铺设好jre或者php运行环境。这就跟为什么用python和java写mapred的人最多是一样的。没人拦着你用nodejs写mapred,也可以写,就是你得在每个节点都装v8的解释引擎,不嫌麻烦完全可以这样干。原理参看map/rece论文,不解释。perl也是 *** 作系统原生带的,但是perl的可维护性太差了,还是算了吧。

所以这就牵扯到一个跨语言的socket问题,理论上来说,这不存在什么问题。但这是理论上的,实际开发过程中确实存在问题,比如socket长连接,通信数据包在底层的封装方式不同。我没有使用xml-rpc的原因之一就是我听说php的xmlrpc跟其他语言的xmlrpc有不同的地方,需要修改才能用,我就没有用这种办法。最早是自己定义的 *** 作协议,这时就遇到了这些问题,所以后来直接采用了thrift方式。就基本不存在跨语言的socket通信问题了。

三、代理端执行结果的获取

无论命令还是文件是否在代理端执行成功,都需要获取到执行结果返回给中央端。所以这里也涉及一个读取节点上的stdout和stderr的问题。这个总体来说不是很难,都有现成的包。当然这个时候你需要的是阻塞执行,而不能搞异步回调。

还有个问题是,我要尽可能使用python默认就带的包,而尽量不让服务器去访问internet下载第三方的包。

还有代理端最重要的一点,就是python的版本兼容性。centos5用python24,centos6用python26,ubuntu基本默认都是27。所以一定要最大限度的保证语言的跨版本兼容性,要是每个 *** 作系统和每一个版本我都写一个代理,我一个人就累死了。

四、浏览器端的model,view,controller

这里面你要封装好所有的通信协议,以及需要在节点上面执行的脚本。发送文件的 *** 作和数据库 *** 作也要在model里面完成。

如果对tcl/tk很熟,也可以写基于 *** 作系统界面方式的管理,不用浏览器就是了。

view对我来说是最痛苦的事,都是现学的jQuery怎么用,前端的工作太可怕了。关于这方面,没有太多可描述的,html和js带给我的只有痛苦的回忆,万恶的undefined。

五、跨 *** 作系统的安装文件封装。

要适应不同的 *** 作系统也是个很麻烦的事情,需要用agent提前获知 *** 作系统的发行分支,版本号。然后去找到对应的安装文件去执行。你不能保证一个分布式系统的集群中所有的节点都可以访问internet,更多的情况是这些节点都存在在一个安全的内网中。只有个别几个节点是可以访问外网的。所以,我势必要把所有的安装文件以及他们的依赖尽可能集中起来。我不确定安装 *** 作系统的lzo,yum或者apt-get会去下什么鬼东西,甚至无论是yum还是apt-get,里面都没有hadoop-lzo的库文件。所以,最好的办法是自己编译打包rpm和deb包。直接安装就好了,别去找repo下载什么。

这就是第五步工作,把需要的依赖的东西自己编译打包成rpm和deb。

deb包很好解决,但是rpm就没那么好办了,需要学习rpm的编译文件如何编写,这块是挺麻烦的,但是这玩意用好了还是挺不错的。现在我自制的安装包里面就已经包含了自己编译的lzo和snappy两种压缩库,以及hadoop-gpl-packaging的rpm和deb。下一个发布的easyhadoop将直接支持centos5,6,suse,以及ubuntu/debian的系统上安装hadoop。已经自带了lzo和snappy以及lzop和snzip。

六、把这些所有东西,整合到一个系统里面。

关联这些所有事情间的联系,整合到一个浏览器界面里面去。写一个分布式的管理脚本不难,写一个界面也不难,但是也许是我的水平不行,这两件事结合起来让他们协同工作还是有点难度的。对我来说,写界面的工作可能更难一点。

Cloudera可能是十来个人在写Manager的东西,ambari也是放到github和apachesvn上面,apache基金会的各种committer在写。easyhadoop没他们功能那么强大,一年来只有我一个人设计架构,功能,各种语言的编码,测试,发布。Fortheloveofgod,WhathaveIdone(英文部分请站在山顶仰天长啸)T_T。从前台到后台,到hadoop和生态系统以及他们的依赖软件的单独patch、编译打包。(系统yum或者apt-get的包不如自己打的好使。)

从时间上来看,全球第一款开源的hadoop部署管理系统应该还是属于ambari,2011年8月开始写的,2012年9月底进入apache的incubator。我是大概2012年8月开始写的easyhadoop,全球第一没赶上,估计国内第一个开源的hadoop管理系统还是可以排上的。

先期准备 首先要保证每台机器都指定了一个固定的IP地址。
其次是找一个CCProxy的安装程序,然后可以到这里去下载一个试用版。
服务器的安装
运行下载后的Ccproxysetupexe就可以一步步进行安装,只是在最后一步选择语言时要选择ChineseGB即为中文简体。
安装完成后,桌面有一个CCProxy的绿色图标,双击即可启动CCProxy了(如附图)。绿色的网格坐标将会出现的曲线表示网络数据流量。
学生机的设置
1、对TCP/IP协议的属性进行设置。
方法:右击“网上邻居”,选择“属性”,双击网卡对应的“TCP/IP协议”,选择“DNS”标签。设置如下:选中“启用DNS”;“主机”中填入服务器名称;并在下面的“DNS服务器搜索顺序”中填入服务器的IP地址,本例为“19216801”,然后单击[填加];单击[确定]结束DNS设置;再次单击[确定],结束对网络属性的设置。这时需要重新启动计算机。
2、重新启动后,右击桌面上的IE图标,选择“属性”。在接下来的“Internet属性”对话框中进行如下设置:选中“连接”标签;单击“局域网设置”按钮;选中“使用代理服务器”;单击“高级”;在“服务器类型”中分别填入:>

可以的,服务器组装不犯法,如果自己搭建服务器网络,进行运营,网站发布的话就要备案。

网站服务器可根据网站应用的需要,部署搭建ASP/JSP/NET/PHP等应用环境。流行两种环境一种是 Linux+ Apache( Nginx)+ Mysql+ Php 也就是LAMP/LNMP环境;另一种是 WINDOWS+ IIS+ ASP/ NET+ MSSQL环境。

LAMP为现在使用最广的服务器环境,它运行在Linux系统下,稳定、安全,Apache是最著名的开源网页服务器,Mysql也是最著名的一种开源 关系型数据库,而PHP是一门流行的开源脚本语言,能处理用户的动态请求。

Windows+IIS+ASP/NET+MSSQL凭借其极强的易用性,也赢得了许多站长的青睐,Windows是著名的可视化 *** 作系统,而IIS是运行在Windows上的Web服务器,可使用ASP/NET 两种编程语言开发,现在应用最广的就是 ASPNET。

问题一:电脑怎样启动服务器 开启远程桌面服务,具有一定的不安全性,容易被网上黑客攻击,如果一定要开启远程桌面服务,一定要做好安全防护的措施。
开启Windows远程桌面服务的方法
步骤:
右键点击桌面计算机,在右键菜单中左键点击:属性,打开系统窗口;
在打开的系统窗口,我们左键点击:高级系统设置,打开系统属性窗口;在系统属性窗口,我们左键点击:远程;在远程窗口,(1)左键点击:允许远程协助连接这台计算机,(2)点击:高级,打开远程协助设置窗口;在远程协助设置窗口,我们左键点击:允许计算机被远程控制,默认远程控制时间为:6小时(也可以更改时间),再点击:确定;回到系统属性窗口,(1)左键点击:仅允许运行使用网络级别身份验证的远程桌面计算机连接(N);(2)点击:选择用户(S);在远程桌面用户窗口,管理员gong已经有访问权,在这里我们还可以添加、删除用户,再点击:确定;回到系统属性窗口,点击:应用 - 确定,Windows远程桌面服务已经开启。重新启动计算机,具有管理员权限的用户就可以远程访问远程桌面了。

问题二:怎么进IBM服务器起启动选项 开机过一会 待到 屏幕提示 F 1 F2 F12 处 按 F12
在屏幕下方

问题三:怎样进入服务器 你好如果你是指网站服务器的话连接的方法很简单
在本地电脑上点开始运行输入mstsc后按确定然后在d出的窗口中依次输入服务器的IP用户和密码然后点确定即可直接远程登录服务器当 *** 作完成需要退出时可以在服务器系统桌面上点开始选择关机选项里面的断开或者注销即可
海腾数据杨闯为你解答希望对你有帮助

问题四:web 服务器怎么启动 你需要在你的系统里安装IIS服务,这样你就可以使用你的Microsoft visual studio 2003了
或者你安装过IIS服务了(停止运行了),右键我的电脑 管理 服务和应用程序 internet信息服务,网站 默认网站 右键 启动!

问题五:金蝶服务器怎么启动?KIS标准版的。 如果是KIS80以上版本,你要在安装KIS网络服务器,如果有安装的话,在开始――程序――金蝶KIS下面就可以找到。
你回头看看你的安装程序,你是不是没有安装这个服务器?

问题六:远程桌面是怎么从新启动服务器的 一般来说不管是内网服务器还是外网服务器,我们都可能遇到通过远程桌面连接访问服务器IP出现无法连接的错误提示。这代表远程桌面服务已经不能提供使用。那么我们如何快速的重启机房的服务器呢?下面我为大家介绍两种方法:
方法一:使用windows自带的shutdown命令,远程重启服务器。
第一步:当远程桌面服务无法顺利使用后我们首先要确定的是服务器是否真的死机。我们可以通过ping目标服务器IP看是否畅通或者访问该服务器上的相关网络服务看是否还能顺利应用,当然也可以通过UNC地址来判断其网络访问是否顺利。当以上任何一个判断返回成功结果后,我们就可以使用下面的方法来远程重启服务器了。(如图)
无法连接时如何远程重启服务器
第二步:接下来我们通过shutdown命令,在远程桌面不能顺利连接的情况下通过网络重启服务器。具体 *** 作是在命令提示窗口中执行“shutdown /m \\服务器IP地址 /r”,这样服务器将自动重新启动。我们在ping -t命令窗口中也将看到目的网络连接情况从畅通到requeset timed out,这说明目的服务器已经在进行重启 *** 作。(如图)
无法连接时如何远程重启服务器
小提示:
如果之前没有连接过目的服务器的话我们在执行shutdown命令前还需要使用“et user \\服务器IP地址 “密码” /user:用户名”进行连接,例如“net user\\129168121 123456 /user:administrator”(管理员用户名administrator,密码123456)。只有建立了相应的IPC$连接后shutdown才能够发挥作用,不连接就执行shutdown的话目的服务器并不会乖乖重启。
以上就是如何在远程桌面无法顺利连接服务器时,通过网络来远程重新启动服务器的方法。那么如果我们在公网上,就无法直接连到内网IP了,这种情况下我们如何远程重启呢?请接着往下看。
方法二:我们可以使用专业远程管理软件,来完成远程维护工作。
易维帮助台不但可以应用在企业中实现在线客服、远程服务管理,还能很好的完成远程维护工作。我们登录易维帮助台,在系统维护中可以看到下图的功能菜单,不但有多种重启方式外,还有更多高级的维护功能可以使用。
无法连接时如何远程重启服务器
下面,我们看看如何安装配置,使用远程维护功能。
无法连接时如何远程重启服务器
第一步:打开英孚凯尔官网infocare,免费注册账号,下载易维帮助台。
无法连接时如何远程重启服务器
第二步:参照易维帮助台SaaS快速向导,定制维E,并下载安装、激活维E。
无法连接时如何远程重启服务器
第三步:维E成功激活后,就可以实现远程管理了。我们看看是如何远程重启机房服务器的。登录易维帮助台进入主动维护,连接被控服务器。
无法连接时如何远程重启服务器
第四步:在系统维护中打开重启计算机功能页面,我们可以根据不同的情况选择重启方式。
注:有朋友问过我,如果服务器设置了登录密码,系统停在登录界面怎么办?其实易维帮助台的维E客户端会以服务形式启动,就算没进入系统你还是可以在后台对服务器进行维护。另外您还可以开启维E的免打扰功能
无法连接时如何>>

问题七:windows server2008怎么启动ftp服务器 1安装FTP服务
开始--》管理工具--》服务器管理器
2安装IIS/FTP角色
打开服务器管理器,找到添加角色,然后点击,d出添加角色对话框,选择下一步
3选择Web服务器(IIS),然后选择FTP服务,直到安装完成。
4在IIS中查看,如果能够右键创建FTP站点,则表明FTP服务安装成功
5创建Windows用户名和密码,用于FTP使用。
6开始--》管理工具--》服务器管理器,添加用户,如下图:本实例使用ftptest
在服务器磁盘上创建一个供FTP使用的文件夹,创建FTP站点,指定刚刚创建的用户FtpTest,赋予读写权限
7客户端测试。直接使用ftp:服务器ip地址:ftp端口,如图。d出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对FTP文件进行相应权限的 *** 作。

问题八:如何从网卡启动 一、服务器装2003或2008服务器系统,然后在服务器装锐起(锐起是无盘软件)服务端二、然后用另一台作为客户端(装锐起客户端软件)这台一定要有硬盘,然后在这台客户端装好系统,进入系统,先打开网上邻居的网络连接,把QOS先卸了,一定要卸掉;三、在服务器打开服务端软件,分配一个虚拟磁盘作为客户机的硬盘,然后再设置给客户机的IP;四、在客户机打开磁盘管理,这时就显示多了一个硬盘,而且是没格式化的,把这个磁盘格式化,然后你要分几个就几个;五、到桌面打开锐起客户端软件,把这个 *** 作系统上传到刚才分区的虚拟磁盘的第一个分

问题九:怎么启动tomcat服务器 bin目录下有个startupbat文件,发布的项目放在webapps下面即可,如果发现运行startupbat,DOS窗口一闪而过,那就要去检查环境变量中的JAVA_HOME是否配置好。

没有电脑基础就去学一下再来看,不要问我这里怎么 *** 作那里怎么 *** 作,已经很详细了,有不会的很可能是因为你没学

(此为Java版的教程,Java版开服务器是免费的。前提是你有可24小时运行的电脑或服务器,没有的话租赁服务器的费用不计。基岩版开服务器请另寻)

首先呢,你需要一个JE国际版的正版账号。

接下来,确保你的电脑里安装了java和JDK。

没有安装可以去java官网安装。(记得也要安装JDK并添加到环境变量)

接下来,下载一个服务器核心(推荐paperMC或spigot)网站上找到对应的版本号下载即可。

然后任意位置(方便找到就好)新建一个文件夹(最好不要用中文,不然有可能识别不了),吧你下载的核心拖进去,新建一个文本文档(名称随意,好记就行),里面写:java -Xms(大小)g -Xmx(大小)g -jar (你下载的服务器核心名字)jar

-Xms意为服务器最小大小,-Xmx意为服务器最大大小,如果人少的话最小1g,最大2g就行了。复制之后把括号和里面的文字删掉后填写上你预定的大小。后面的把括号和里面的内容删去后填你下载的服务器核心的名字(这个是可以随便改的,但记得核心名字和这里的名字必须一致,差一个空格都不行)然后关掉保存,修改后缀名为bat,双击运行,等它下载完,代码跑完后就开服了。

后续维护及如何让别人连接上服务器,请查阅Minecraft Wiki!上面有详细讲解。

创建:
打开edit,在打开external,server
name是名字,address写别人的ip地址,port默认,再按add
server,然后别人与你都处于网络环境下的话,你按一下新建的存档,这样即使别人不跟你联机,也可以进入别人的世界了。也就是说,你作为服务器,把你的ip地址给你的朋友,再按以上步骤,你在网络环境下,你的朋友也在,完成步骤后会出现一个新的存档,你的朋友按下去后就会进入你在玩的存档啦。至于ip,打开wlan设置,按一下你现在连接的wlan,就会看到ip地址了
加入:
下载最新版本的我的世界手机版,然后进入到游戏中,点击play按钮,然后可以看到右上角有一个edit按钮,点击进入就可以看到external。在里面输入ip和端口就ok了。
在external里有三行让你输入的,第一行随便输入点什么就可以了,第二行是输出当前的ip地址,然后第三行则是端口号,输入完了就可以进行远程联机了。
望采纳,谢谢!

第一步:将自己的电脑变成服务器。

首先,对于搭建的环境尤为重要,所以这推荐一个集成环境wamp。

安装,一路点击next,apache+sql+phpmyadmin的环境一键搭好。

在浏览器输入localhost,出现以下页面说明安装成功了。现在服务器和php环境算是搭好了。此时在桌面右下角任务栏中会有wamp的图标,点击会有下图显示,>

第二步:域名

怎么获取域名呢,其实有很多种方式,百度上都有,这里呢就介绍花生壳这种方式。

去花生壳的官网下载相应版本的软件下载地址:(点击打开链接)

去注册一个会员,这时花生壳会给你一个免费的壳域名。

在软件中可以查看域名信息。

若需要将自己的项目发布到外网上,需要注册内网穿透,这样你的项目在外网上也能发布。

第三部,发布软件

找到你集成软件安装目录将你的项目放在>

在浏览器中输入域名加端口号就可以访问你的项目了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13316135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-13
下一篇 2023-07-13

发表评论

登录后才能评论

评论列表(0条)

保存