`
tower
  • 浏览: 243738 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让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

分享到:
评论

相关推荐

    centos7安装monit

    Monit 是一个开源的系统和进程监控工具,它可以在Linux系统中用来监控系统服务、文件、目录、网络接口等,并在出现问题时进行自动修复或通知管理员。CentOS 7是基于RHEL(Red Hat Enterprise Linux)的一个流行的...

    monit 服务端监控

    Monit支持多种报警方式,包括发送电子邮件、执行脚本或通过HTTP接口。在配置文件中,可以设置当监控条件触发时的通知方式,例如: ```ini set alert your_email@example.com ``` 此外,Monit还提供了Web界面,允许...

    monit使用说明.docx

    Monit 是一款强大的系统管理工具,专为Unix系统设计,用于监控和管理进程、文件、目录和设备。它具备自动修复功能,可以在检测到错误时执行预设的响应操作,如启动、重启或关闭进程。此外,Monit 还能监控文件、目录...

    monit-5.4.tar.gz

    同时,Monit支持发送警报邮件,及时通知用户系统异常情况。 总的来说,"monit-5.4.tar.gz"是一个包含Monit 5.4版本源码和"qsdk"编译包的压缩文件,提供了监控和管理系统服务的能力,对于系统管理员来说是一个强大的...

    Ansible-monit.zip

    Ansible-monit.zip,配置monit的ansible角色。还将设置ssh、ntp和cron.anxs-monit的基线监视,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。

    monit-5.0.1.tar.gz_monit-5.0.1.tar.gz

    Monit 是一个开源的系统监控工具,用于...使用5.0.1版本可能意味着你希望在不支持较新版本的旧系统上部署,或者需要特定版本的功能。不过,对于最新版本的系统,建议升级到最新的Monit,以获取更多的安全更新和新特性。

    监测应用monit

    Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件。它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。

    monit_bin-源码.rar

    3. **网络服务监控**:Monit 支持多种网络服务,如 HTTP、SMTP、FTP 等,确保这些服务正常响应客户端请求。 4. **资源使用监控**:可以监控 CPU、内存、磁盘空间等资源使用情况,当达到预设阈值时发出警告。 5. **...

    docker-monit:用于monit的Docker映像

    docker-monit可用于从提取该图像包括监控版本5.13概述此映像将monit安装到以下位置: / opt / monit Monit配置为由runit(phusion / baseimage-docker的init系统)执行和管理。 它将以名为monit的非特权用户身份...

    monit-4.9.tar

    Monit 是一款在 Unix-like 系统中广泛使用的开源监控工具,主要用于监控系统服务、文件、目录、程序以及网络资源的状态。"monit-4.9.tar" 是这个软件的一个特定版本,通常以 tar 归档文件的形式提供,用于在各种 ...

    monit服务监控管理工具

    Monit 是一款强大的开源服务监控管理工具,专为Linux系统设计,它允许用户对系统中的进程、文件、目录、网络服务等进行实时监控,并在发现问题时自动修复或通知管理员。这款工具不仅提供了命令行接口,还包含了一个...

    ansible-monit:Monit的Ansible角色

    Ansible角色,用于安装Monit并设置服务监视。 用法(示例) 典型的最小用法: - role : monit 在不安装和使用自定义服务的情况下配置monit: - role : monit monit_setup : configure monit_custom_services ...

    python-monit:与Monit对话的Python库

    6. **安全控制**:支持身份验证,确保只有授权的用户或程序可以操作Monit。 **使用方法** 要使用`python-monit`,首先需要确保Monit已经在系统上安装并运行,且HTTP守护进程已经启用。然后,通过pip安装库: ``` ...

    如何借助Monit搭建服务器监控系统-.docx

    Monit 服务器监控系统搭建指南 一、Monit 介绍 Monit 是一种跨平台的开源工具,用于监控 Unix/Linux 系统。它安装起来非常容易,也非常轻量级(大小只有 500KB),并不需要任何第三方程序、插件或代码库。Monit ...

    monit:ASYD 的 Monit 分叉

    AsydSolutions/monit 这是来自官方的分支,包括一些小的更改,用于从 XML Web API 获取更详细的输出以用于 ASYD(即主机故障通知)。 ASYD 版本基于带有上述补丁的最新稳定版 Monit(当前为 5.11)。 您可以查看...

    monit_bin:从源代码安装monit并使用LWRP添加几个工具

    monit_bin 食谱 从源安装monit。 包括设置工具monitensite、monitdisite。 为创建的配置添加 LWRP。 要求 制作(构建必不可少) 平台 乌本图 智能操作系统 用法 recipe[monit]默认安装。 从其他食谱调用 include...

    基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0

    总结来说,这个部署方案利用了Ubuntu的稳定基础,Nginx的高性能,Rails的开发效率,Mongrel的执行效率,MySQL的数据库支持,以及Monit的监控保障,构建了一个全面且可靠的Web应用基础设施。对于运维人员来说,这样的...

    Ansible-ansible-role-monit.zip

    在这个名为 "Ansible-ansible-role-monit.zip" 的压缩包中,包含了一个名为 "ansible-role-monit-master" 的文件,这表明这是一个Ansible的角色(role)用于配置Monit。在Ansible中,角色是一种组织和重用配置代码的...

    monit-fabric:monit-graphite 是一个快速的'n'dirty 结构脚本,用于在 debian 挤压盒上安装 monit

    应该支持所有平台。 - 可以通过pip install fabric或easy_install fabric pip install fabric 运行 Debian 挤压的服务器 目标主机 最好在运行 Debian 6 (Squeeze) 的干净虚拟机上执行此操作。 安装说明 运行fab ...

Global site tag (gtag.js) - Google Analytics