让monit支持中文

现在很多rails的应用都用monit来做监控,monit提供了一个简单的web server可以很好的远程看到监控资源的情况。

但是有一个问题就是这个web server实现的比较简单,没有考虑多语言的支持。不过,我们可以通过简单修改一下monit的源代码,让它支持中文。

修改的方法有两个:
1、http/cervlet.h里面HEAD_HTML这个宏,是monit页面的html头,可以考虑增加:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
然后,用unicode的方式来编辑monit的控制文件,这样,就能够在页面上用unicode的方式来访问了

这个方法有一个不方便的地方就是必须要用unicode的方式来编辑控制文件。

2、对cervlet.c进行修改,用iconv库把url进行编码转换。在cervlet.c增加如下函数

  1. #include <iconv.h>
  2. int  code_convert( char  *from_charset, char  *to_charset, char  *inbuf, int  inlen, char  *outbuf, int  outlen)
  3. {
  4.     iconv_t cd;
  5.      //int rc;
  6.      char  **pin = &inbuf;
  7.      char  **pout = &outbuf;
  8.     cd = iconv_open(to_charset,from_charset);
  9.      if  (cd==0)  return  -1;
  10.     
  11.     memset(outbuf, 0, outlen);
  12.      if  (iconv(cd, ( const   char  **)pin, (unsigned  int  *)&inlen, pout, &outlen) == -1) 
  13.     {   
  14.         perror( "iconv error:" );
  15.          return  -1;
  16.     }
  17.     iconv_close(cd);
  18.      return  0;
  19. }


再把handle_action函数的前面几行进行修改

  1. static   void  handle_action(HttpRequest req, HttpResponse res) {
  2.    char  *org_name= req->url;
  3.    const   char  *action= get_parameter(req,  "action" );
  4.   
  5.    char  new_name[512];
  6.   code_convert( "UTF-8""GBK" , org_name, strlen(org_name), new_name, 512);
  7.    char  *name = new_name;

重新编译之后就可以使用了,这个方式的缺点是修改的量有点大,但是以后使用起来就比较方便了。


注:以上代码基于monit-4.6

=============================================================== 简介+注册机使用方法 =============================================================== 简介: HostMonitor是一种可以持续的监测服务器可用性和性能的系统管理工具。当网络出现错误时,它可以警报网络管理员,甚至自动解决问题,从而避免问题严重化至不能解决,也保护了计算机的数据,减少了高成本网络瘫痪的可能性。 Hostmonitor是一款适用广泛的网络监控软件,从小型网络系统到企业业级和网路都可以适用 。 您可能会说:“像这种程序有许多。”是的。但是请您查看一下hostmonitor的功能并比较一下他的强大功能和灵活性,真是超低价,物美价廉: • 拥有60种测试方法,我们的软件几乎可以监测服务器的任何参数。 • 您可以利用其高适用性的特点灵活使用HostMonitor来实现您的特殊要求。 • HostMonitor可以生成各种格式(比如Text,HTML,DBF,ODBC等等)和内容细节的LOG日志文件。。 • 内置的报告管理器让您可以根据自己喜好用各种各样的方式创造和定制报告。 • 通过在Windows, FreeBSD, Linux, NetBSD, OpenBSD and Solaris等操作系统上安装代理,可以轻松监控远程网络系统。 • Web Service,Telnet Service以及Remote Control Console(遥控控制台)简化了远程管理。 • 此外还有。。。 60种测试方法 HostMonitor(网络监视器)可以检查任何TCP 服务,ping 主机,检查路由,监控Web,FTP,邮件,DNS服务器,检查可利用的磁盘空间,监测文件或文件夹的大小,检查文件和网站的完整性,测试SQL 服务器和监控网络流量等。见完整的测试清单。 但是,同样重要的还有如何管理监控任务。测试项目被分为不同的组或文件夹,每个文件夹有它自己的设置。如调色板,报告目录,不同的统计信息等等。 测 试会定期执行(如每5分钟)或按时执行(如每星期五在下午6和下午9点之间)。测试也可以直接由HostMonitor(网络监视器)或者由安装在远程网 络上的Remote Monitoring Agent(远距离监控代理)执行。有些测试需要其他支持,例如,当您的主要路由器工作时,您可以轻松的设定HostMonitor(网络监视器)检查 10台网络服务器,而当您的主要路由器停止工作时,您可以检查另一台服务器也就是您的备用服务器。 30种报警方式 HostMonitor 是网络管理软件,它提供不同的方式来响应失败的服务。通过音频和视频使在机器附近的人发出报警。通过电子邮件和传呼器通知广范围远程操作员。 HostMonitor可以执行已设定好策略来自动恢复应用服务,而不需要人工干预。例如“重启服务”,“重新启动计算机”或“拨号联网”。请见完整的行 动目录。 高灵活性行动模式允许您依据测试结果按照预先设定的程序开始行动。 -例如,只有当主要和备用邮件服务器不反应时,您可以采取一些措施。 -或者可以设定行动模式。在正常办公时间内呼叫IT经理和网络管理员,在周末等其他时间内,HostMonitor所做的工作只是登记日志,那么仅仅呼叫管理员。 -另一个例子:当一些重要的服务出故障时,HostMonitor可以重新启动服务器。如果这样不起作用,网络服务器可以发送电子邮件给值班工程师。如果在随后三次探测之后服务器仍然不能运作,将会呼叫网络管理员直至备用服务器启用。 安装网络监视器,你会发现实施上述所有行为模式是多么容易。 是的,各种各样的最大变量允许您为数百或数以万计的监视任务使用同一个行动模式(测试项目)。例如,如果您在100台服务器上监视10个不同的服务,您可以使用一个行动重新开始所有此系统中的失败服务。 强大的报告管理器和记录分析器 HostMonitor可以提供测试结果的记录文件和报告。网络监视器使用不同的细节水平和文件格式包括文本,HTML,DBF和ODBC,可以提供各种各样的记录文件,还可以依据您的需要来设定。 高灵活性的内置报告管理器可以用各种方法依据您的喜好创造和定制报告。例如,为IT经理设计的报告可能与为网络管理员设计的报告有完全不同的品质。并且注意不同组别的测试有其自己的报告目录,对应这个小组的每个报告产生时,都有一个报告产生时间随之产生。 而 且,Advanced HostMonitor产品包裹包括Log Analyzer(日志分析仪),日志分析仪可以为每个测试主机图解不同信息。日志分析仪可以收集统计信息,显示特定时间内所有服务器或者单个服务器的所 有反应时间图表。使用这些统计信息,管理员可以花费些时间分析具体服务器的请求时间。 HostMonito可以直接检查远程主机或使用安 装于另一个网络的RMA(远距离监控代理)。远距离监控代理是一个可以接收从网络监视器发出的请求的小程序。远距离监控代理可以增加网络的安全,减少网络 信息流通量,简化网络管理,并且准许监测无法直接从网络监视器监测的系统。例如使用远距离监控代理,网络监视器能够在Linux系统中检查出一定数量的运 行程序。 网络服务, 远程登陆服务,遥控操纵台 Web Service的工作就像HTTP服务器,为HostMonitor提供WEB接口。Telnet Service的工作像Telnet Server远程登录服务器,允许你使用任何远程登录客户来远距离的控制HostMonitor。这些应用允许检查任何测试的简要或详细状况,开始或停止 监视过程,使能或者不能警报,改变全程最大变量等等。并且能够使测试能或不能进行,重新设计统计,强迫测试执行甚至改变有些测试的参量。遥控操纵台能让运 行在远距离系统上的网络监视器如同本地网络监视器一样工作。几名操作员可以在不同系统上开始使用RCC,也可以与HostMonitor同时使用。 工具和辅助软件 除核心软件网络监视器之外,一个Advanced Host Monitor还包括以下辅助组件: IP-Tools provides 19 TCP/IP utilities IP-Tools是一个通用而强大的网络工具,它可以提供19项TCP/IP功用。IP-Tools是一个独立的产品包,但是一Enterprise License包括一个IP-Tools license。 =============================================================== 注册机使用方法: 打开HostMonitor注册机,然后在下拉列表中选择:host monitor 下面填写域名,如:www.baidu.com 然后单击Generate,即可获取注册码 注册方法: 打开hostMonitor,单击help--license.., 在打开的窗口中单击register Now,然后输入域名,再输入注册码即可
03-29
<think>好的,我需要帮助用户了解PM2的使用方法和相关信息。首先,我要整理用户提供的引用内容,看看里面有哪些关键点。根据引用内容,PM2是一个进程管理工具,主要优势包括持续运行、负载均衡、日志管理、实时监控等。安装方法有npm和yarn两种,常用命令如启动、查看列表、监控应用等都有提到。还有一些其他用法,比如启动不同类型的应用程序,以及Linux离线安装包的验证方法。 接下来,我需要按照用户的要求组织回答结构。用户希望回答结构清晰,分步骤解决问题,并保证真实可靠。同时,需要引用提供的引用内容,并在引用末尾添加标识。系统级指令还要求使用中文,生成相关问题,并正确使用LaTeX格式,不过在这个案例中可能用不上数学表达式,但需要确保行内和独立公式的格式正确,如果有的话。 首先,我应该先介绍PM2是什么,它的主要功能和优势。然后分步骤讲解安装方法、常用命令、其他用法以及注意事项。每个部分都需要引用对应的引用内容,例如在安装部分引用引用2和3,命令部分引用引用2和4,离线安装引用引用3,注意事项引用引用5。 需要注意用户提到的引用标识要自然地添加到引用段落的末尾。例如,在介绍PM2的优势时,引用引用2,安装部分引用引用2和3,启动命令引用引用4,注意事项引用引用5。 然后需要生成相关问题,根据用户提供的示例,问题应该围绕PM2的进一步使用和可能的问题,比如优势、安装方法、常用命令、应用场景、与其他工具的比较等。 最后要检查是否所有引用都正确标注,回答是否结构清晰,符合用户的要求。同时确保没有使用任何Markdown格式,保持自然的中文表达。</think>### PM2 使用指南 #### 1. PM2 简介 PM2 是一个进程管理工具,专为 Node.js 应用设计,但也可用于管理其他语言编写的脚本或服务。其核心优势包括: - **持续运行**:应用崩溃或出错时自动重启[^2]。 - **负载均衡**:支持多实例负载均衡,提升并发处理能力[^2]。 - **日志集中管理**:所有应用的日志统一显示和存储[^2]。 - **实时监控**:可查看应用的 CPU、内存占用等性能指标。 #### 2. 安装 PM2 通过以下命令全局安装: ```bash npm install pm2 -g # 使用 npm yarn global add pm2 # 使用 yarn ``` **离线安装**: 若需在 Linux 离线环境下安装,下载离线包后运行 `npx pm2 --version` 验证是否成功[^3]。 #### 3. 常用命令 - **启动应用**: ```bash pm2 start app.js # 启动 Node.js 应用 pm2 start "npm run start" # 启动脚本或命令 pm2 start app.py # 启动 Python 脚本[^4] ``` - **查看应用列表**: ```bash pm2 list ``` - **监控资源**: ```bash pm2 monit # 实时查看 CPU、内存使用情况 ``` - **日志管理**: ```bash pm2 logs # 查看实时日志 ``` - **重启/停止/删除应用**: ```bash pm2 restart <appName> # 重启 pm2 stop <appName> # 停止 pm2 delete <appName> # 删除 ``` #### 4. 高级用法 - **多实例负载均衡**: 通过 `-i` 参数指定实例数: ```bash pm2 start app.js -i 4 # 启动 4 个实例 ``` - **开机自启动**: 生成启动脚本并保存配置: ```bash pm2 startup pm2 save ``` #### 5. 注意事项 - **模式切换问题**: 若使用 PM 框架时手动切换睡眠模式(如 `pm_request` 命令)未生效,需检查参数是否对应宏定义值(如 `PM_SLEEP_MODE_LIGHT` 对应值 2)[^5]。 - **进程守护**: PM2 默认会守护进程,无需额外配置崩溃重启。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值