2
  • CentOS 6.3
  • 穆宁 2.0.17-1
  • php54 (php-fpm)
  • nginx 1.2.6-1

通过'epel' repo 设置 munin,经过修改后,我让它与多个节点一起工作。但是,图形缩放不适用于任何图形。根据我在网上找到的建议,我最终将 *_strategy 模式从 HTML 切换到 cgi - 这使得没有任何图形更新(因为 cgi 不工作)并且缩放仍然被破坏。

我可以在网上找到的所有指南(包括官方:http : //munin-monitoring.org/wiki/CgiHowto2)都指的是使用 spawnfcgi(我曾经在较旧的 CentOS5 服务器上使用)并为此生成特定实例. 但是,我在这台服务器上使用 php-fpm 而不是 spawnfcgi 无法适应它的工作。

通过不工作,我的意思是图表不会加载到“缩放”屏幕上,而是显示损坏的图像链接。nginx错误日志显示:

2013/09/05 16:31:59 [error] 29384#0: *2 open() "/usr/share/nginx/vhosts/munin.mydomain.com/public_html/munin-cgi/munin-cgi-graph/mydomain.com/host.mydomain.com/postfix_mailvolume-pinpoint=1378299671,1378407671.png" failed (2: No such file or directory), client: 10.30.2.1, server: munin.mydomain.com, request: "GET /munin-cgi/munin-cgi-graph/mydomain.com/host.mydomain.com/postfix_mailvolume-pinpoint=1378299671,1378407671.png?&lower_limit=&upper_limit=&size_x=800&size_y=400 HTTP/1.1", host: "munin.mydomain.com", referrer: "http://munin.mydomain.com/static/dynazoom.html?cgiurl_graph=/munin-cgi/munin-cgi-graph&plugin_name=mydomain.com/host.mydomain.com/postfix_mailvolume&size_x=800&size_y=400&start_epoch=1378299671&stop_epoch=1378407671"

这是 munin.conf:

[16:42:21]$ cat /etc/munin/munin.conf | sed -e '/^#/d' -e '/^$/d'
htmldir /usr/share/nginx/vhosts/munin.mydomain.com/public_html/
includedir /etc/munin/conf.d
graph_strategy cgi
cgiurl_graph /munin-cgi/munin-cgi-graph
html_strategy cgi
[host.mydomain.com]
    address 127.0.0.1
    use_node_name yes
[otherhost.mydomain.com]
    address 1.2.3.4
    use_node_name yes

这是 nginx 的虚拟主机:

[16:44:16]$ cat /etc/nginx/conf.d/vhosts/munin.thegnomedev.com.conf | sed -e '/^$/d' -e '/^#/d'
server {
    listen      80;
    server_name munin.mydomain.com;
    access_log /var/log/nginx/munin.mydomain.com combined;
    error_log /var/log/nginx/error.log warn;
    rewrite_log on;
    root    /usr/share/nginx/vhosts/munin.mydomain.com/public_html/;
    index   index.php index.html index.htm;
    location  /  {
        auth_basic            "Restricted";
        auth_basic_user_file  /usr/share/nginx/vhosts/munin.mydomain.com/.htpasswd;
    }   
    location ^~ /cgi-bin/munin-cgi-graph/ {
        fastcgi_split_path_info ^(/cgi-bin/munin-cgi-graph)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        include fastcgi_params;
    }
    location /munin/static/ {
        alias /etc/munin/static/;
    }
    location /munin/ {
        fastcgi_split_path_info ^(/munin)(.*);
        fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        include fastcgi_params;
    }
    # Deny hidden file types
    location ~ /(\.ht|\.git|\.svn) {
    deny  all;
    }
}

在这一点上,我感到非常沮丧,以至于我认为我正在击中大脑锁定。我承认,我对 nginx 的语法以及它如何与 php-fpm 交互的方式缺乏完全理解可能是罪魁祸首——尤其是如果我可以进行简单的语法更改以使其正常工作。

使用我现有的堆栈解决此问题的任何帮助将不胜感激。一天中的大部分时间都在谷歌上搜索并尝试各种事情。

谢谢

4

2 回答 2

2

根据https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1000736,这是一个与 RHEL 中的 SELinx 相关的错误。

Description of problem:
zooming doesn't work when selinux is in enforcing mode

Version-Release number of selected component (if applicable):
munin-2.0.17-1.el6.noarch
selinux-policy-3.7.19-195.el6_4.12.noarch
selinux-policy-targeted-3.7.19-195.el6_4.12.noarch

Steps to Reproduce:
1. click on munin graph to zoom in

Actual results:
no graph image

Expected results:
graph image

Additional info:
it works with selinux in permissive mode

如果您禁用 SELinux,它可以正常工作:

sudo setenforce 0

根据错误报告中的最后一条评论,这应该在 RHEL 6.5 中得到修复(Centos 应该选择它)。

于 2013-12-05T15:24:17.813 回答
0

您已经通过 FastCGI passthrough 将位置 /cgi-bin/munin-cgi-graph/ 映射到 PHP-FPM,但这适用于 PHP 脚本,而不适用于任意 CGI 脚本,例如 Munin 的 CGI grapher,它实际上是 Perl。要使该 CGI 脚本使用 FastCGI 协议,您需要使用的包装器是通用的spawn-fcgi.

于 2015-12-09T17:14:53.720 回答