现在很多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增加如下函数
- #include <iconv.h>
- int
code_convert(
char
*from_charset,
char
*to_charset,
char
*inbuf,
int
inlen,
char
*outbuf,
int
outlen)
- {
- iconv_t cd;
-
-
char
**pin = &inbuf;
-
char
**pout = &outbuf;
- cd = iconv_open(to_charset,from_charset);
-
if
(cd==0)
return
-1;
-
- memset(outbuf, 0, outlen);
-
if
(iconv(cd, (
const
char
**)pin, (unsigned
int
*)&inlen, pout, &outlen) == -1)
- {
- perror(
"iconv error:"
);
-
return
-1;
- }
- iconv_close(cd);
-
return
0;
- }
再把handle_action函数的前面几行进行修改
- static
void
handle_action(HttpRequest req, HttpResponse res) {
-
char
*org_name= req->url;
-
const
char
*action= get_parameter(req,
"action"
);
-
-
char
new_name[512];
- code_convert(
"UTF-8"
,
"GBK"
, org_name, strlen(org_name), new_name, 512);
-
char
*name = new_name;
重新编译之后就可以使用了,这个方式的缺点是修改的量有点大,但是以后使用起来就比较方便了。
注:以上代码基于monit-4.6
分享到:
相关推荐
Monit 是一个开源的系统和进程监控工具,它可以在Linux系统中用来监控系统服务、文件、目录、网络接口等,并在出现问题时进行自动修复或通知管理员。CentOS 7是基于RHEL(Red Hat Enterprise Linux)的一个流行的...
Monit支持多种报警方式,包括发送电子邮件、执行脚本或通过HTTP接口。在配置文件中,可以设置当监控条件触发时的通知方式,例如: ```ini set alert your_email@example.com ``` 此外,Monit还提供了Web界面,允许...
Monit 是一款强大的系统管理工具,专为Unix系统设计,用于监控和管理进程、文件、目录和设备。它具备自动修复功能,可以在检测到错误时执行预设的响应操作,如启动、重启或关闭进程。此外,Monit 还能监控文件、目录...
同时,Monit支持发送警报邮件,及时通知用户系统异常情况。 总的来说,"monit-5.4.tar.gz"是一个包含Monit 5.4版本源码和"qsdk"编译包的压缩文件,提供了监控和管理系统服务的能力,对于系统管理员来说是一个强大的...
Ansible-monit.zip,配置monit的ansible角色。还将设置ssh、ntp和cron.anxs-monit的基线监视,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
Monit 是一个开源的系统监控工具,用于...使用5.0.1版本可能意味着你希望在不支持较新版本的旧系统上部署,或者需要特定版本的功能。不过,对于最新版本的系统,建议升级到最新的Monit,以获取更多的安全更新和新特性。
Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件。它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。
3. **网络服务监控**:Monit 支持多种网络服务,如 HTTP、SMTP、FTP 等,确保这些服务正常响应客户端请求。 4. **资源使用监控**:可以监控 CPU、内存、磁盘空间等资源使用情况,当达到预设阈值时发出警告。 5. **...
docker-monit可用于从提取该图像包括监控版本5.13概述此映像将monit安装到以下位置: / opt / monit Monit配置为由runit(phusion / baseimage-docker的init系统)执行和管理。 它将以名为monit的非特权用户身份...
Monit 是一款在 Unix-like 系统中广泛使用的开源监控工具,主要用于监控系统服务、文件、目录、程序以及网络资源的状态。"monit-4.9.tar" 是这个软件的一个特定版本,通常以 tar 归档文件的形式提供,用于在各种 ...
Monit 是一款强大的开源服务监控管理工具,专为Linux系统设计,它允许用户对系统中的进程、文件、目录、网络服务等进行实时监控,并在发现问题时自动修复或通知管理员。这款工具不仅提供了命令行接口,还包含了一个...
Ansible角色,用于安装Monit并设置服务监视。 用法(示例) 典型的最小用法: - role : monit 在不安装和使用自定义服务的情况下配置monit: - role : monit monit_setup : configure monit_custom_services ...
6. **安全控制**:支持身份验证,确保只有授权的用户或程序可以操作Monit。 **使用方法** 要使用`python-monit`,首先需要确保Monit已经在系统上安装并运行,且HTTP守护进程已经启用。然后,通过pip安装库: ``` ...
Monit 服务器监控系统搭建指南 一、Monit 介绍 Monit 是一种跨平台的开源工具,用于监控 Unix/Linux 系统。它安装起来非常容易,也非常轻量级(大小只有 500KB),并不需要任何第三方程序、插件或代码库。Monit ...
AsydSolutions/monit 这是来自官方的分支,包括一些小的更改,用于从 XML Web API 获取更详细的输出以用于 ASYD(即主机故障通知)。 ASYD 版本基于带有上述补丁的最新稳定版 Monit(当前为 5.11)。 您可以查看...
monit_bin 食谱 从源安装monit。 包括设置工具monitensite、monitdisite。 为创建的配置添加 LWRP。 要求 制作(构建必不可少) 平台 乌本图 智能操作系统 用法 recipe[monit]默认安装。 从其他食谱调用 include...
总结来说,这个部署方案利用了Ubuntu的稳定基础,Nginx的高性能,Rails的开发效率,Mongrel的执行效率,MySQL的数据库支持,以及Monit的监控保障,构建了一个全面且可靠的Web应用基础设施。对于运维人员来说,这样的...
在这个名为 "Ansible-ansible-role-monit.zip" 的压缩包中,包含了一个名为 "ansible-role-monit-master" 的文件,这表明这是一个Ansible的角色(role)用于配置Monit。在Ansible中,角色是一种组织和重用配置代码的...
应该支持所有平台。 - 可以通过pip install fabric或easy_install fabric pip install fabric 运行 Debian 挤压的服务器 目标主机 最好在运行 Debian 6 (Squeeze) 的干净虚拟机上执行此操作。 安装说明 运行fab ...