6、物理主机搭建KF2服务端-服务端启动命令集中管理与崩溃自启动

目录 运维

经过上面的配置,一个最基本的服务端已经可以启动了,但20台服务端,每个都有不同的难度,不同的波数,不同的端口,不同的插件。管理这些参数是非常复杂繁琐的事情。但是,我们有了Zabbix,化繁为简,只有想不到没有做不到。

比如我们可以使用HTTP服务器,让服务端自动去获取自己的启动参数,根据IP次序来选择自己所在的行数,比如170的IP读取第一行启动参数,171读取第二行启动参数。

而HTTP我们可以使用Zabbix的Nginx实现

使用vim编辑器打开/etc/nginx/sites-available/default

在原有的server下面在添加一个server

server {
    listen 8080;
    server_name localhost;

    location / {
        root /usr/share/kf2script/;
        index index.html;
    }
}

配置完成后保存退出,然后在/usr/share下创建kf2script文件,创建完成后赋予www-data属组用户,随后重启nginx,创建启动数据存放文件start,并使用vim编辑。

在其中填入如上内容。看着砸但其实内容很简单。

参数 作用
…..KFGameSteamServer.bin.x86_64 KF2服务端的启动程序路径
KF-BurningParis KF2服务端启动后的首张地图名字
Port 服务端主通讯端口
QueryPort 与Steam通讯端口
WebAdminPort 网页管理端口
AdminPassword 网页管理密码
Difficulty 难度,分为0 1 2 3这几个级别
GameLength 波数,分为0 1 2这几个级别

一行一条启动项目,根据IP排列对应,例如第一条170,第二条171,第三条172,禁止空行。有需要的参数自行添加即可,只要保持一行就可以。写完后保存退出即可

mkdir -p /usr/share/kf2script && chown www-data.www-data /usr/share/kf2script && nginx -s reload && touch /usr/share/kf2script/start && vim /usr/share/kf2script

配置防火墙允许对应的IP访问8080端口,注意这边最好只允许几台服务端访问,因为启动项中存在管理密码。

ufw allow 192.168.0.170 to any port 8080
ufw allow 192.168.0.171 to any port 8080
ufw allow 192.168.0.172 to any port 8080
ufw allow 192.168.0.173 to any port 8080
ufw allow 192.168.0.174 to any port 8080
.
.
.

切换到IP为182的服务端进行测试,输入以下指令

$(curl -s http://192.168.0.201:8080/start | awk "NR==$(echo $(hostname -I | awk -F \. '{printf $4}') - 169 | bc)")

意思为 curl 静默访问zabbix下http协议8080端口,获取start文件数据,计算出应该取出的数据行数,比如这个IP是192.168.0.182 用awk以.字符为参照进行切割,取出182这个数然后用bc减去169得出3,在使用awk取出第三行数据,那么结果就是第三行182的启动代码,获得启动代码后,直接启动服务端。

接下来就只要配置监控项,监控服务端是否运行,当没有运行时,就运行上面的命令获取运行脚本后运行。

在模版中新建一条监控项,名字随意,能表达意思即可。键值选择system.run,输入以下的命令

system.run[sudo ps -ef | grep KF2Server | grep -v grep | wc -l]

意思是用ps命令列出当前的进程,用grep找出带有关键字KF2Server的进程,随后过滤带有grep关键字的那列结果,然后统计行数。运行正常的话,结果应该大于0,服务端崩溃后,结果为0。

随后配置触发器,触发表达式为最新的返回数据为0,也就是获取不到KF2服务端进程了。

配置恢复表达式,监控项依旧老样子,恢复表达式为最新的返回数据大于0,表示KF2的进程已经启动。

接下来添加一个脚本,命令就是获取201下8080端口中的start启动文件,并根据自身的IP地址取出特定的启动代码并执行。

最后创建一个动作,动作条件选择KF2服务端崩溃这个触发器。

接下来配置操作,在操作栏添加一个操作细节,Oparation选择KF2Server服务端重启这个脚步,目标选择当前主机即可。点击Add然后点击保存即可完成服务端崩溃的自动化报警,恢复。如果想要配置某个启动项的启动参数,更改Zabbix下8080端口指向的根目录下的start文件即可。

在htop命令中查看服务端已自行启动。

 

下一篇:https://deployment.net.cn/?p=1266