munin-cron 无法复制内容

munin-cron 无法复制内容

我最近在我的服务器上安装了 munin(基于 Fedora12)。现在,我想获取静态目录中的所有图表(应用程序在 Django 上运行)。因此,我/etc/munin/munin.conf通过将设置htmldir为静态文件夹的绝对路径来编辑文件。然后,当我执行时munin-cron,我收到以下错误:

This program will easily break if you run it as root as you are
trying now.  Please run it as user 'nobody'.  The correct 'su' command
on many systems is 'su - munin --shell=/bin/bash'
Aborting.

因此,我更改了用户并尝试使用穆宁作为用户。然后我收到以下错误:

[ERROR] Could not copy contents from /etc/munin/static/ to /[path to static 
file] at /usr/share/perl5/vendor_perl/Munin/Master/HTMLOld.pm line 716.

chown-ed 了静态目录(递归地穆宁用户)甚至尝试过chmod 777(实际上不应该这样做),所以基本上这似乎不是一个权限问题。

另外,我的开发服务器是基于 Ubuntu (12.04) 的。它在那里运行良好。即使在运行 Ubuntu (14.04) 的本地机器上,它也能正常工作。这可能是操作系统问题吗?这似乎不太可能。我还可能遗漏了什么?任何帮助都将不胜感激。

PS:还有一个问题。当我munin-cron在 Ubuntu 中以 root 身份运行时,它给出的错误是:

This program will easily break if you run it as root as you are
trying now.  Please run it as user 'munin'.  The correct 'su' command
on many systems is 'su - munin --shell=/bin/bash'
Aborting.

而它在nobody这里。这可能是配置问题吗?

我的 munin 版本是 2.0.16。

答案1

您绝不应该以“root”用户身份运行 munin-cron。

尝试运行此命令:

 chown -R munin:munin  /var/www/munin

此后尝试从“munin”用户重新运行“munin-cron”。

答案2

首先:
munin-cron只能以 munin 用户身份运行,因此不能以 root 身份运行它并不是错误。

日志文件中还有一些详细信息?
在我的 Ubuntu 系统上,它们位于/var/log/munin/

你的 Fedora 服务器上运行着哪个版本的 Munin?Munin 可能有 Bug 吗?

答案3

你可以使用以下命令切换到 Munin 用户:su - munin --shell=/bin/bash
要显示版本号,请使用munin-cron -v
第一行类似于munin version 1.4.6.
这适用于我(Ubuntu 10.04/12.04/14.04)。

Munin 有五个二进制文件,它们协同工作:
munin-update- 收集数据
munin-graph- 创建图表
munin-limits- 检查服务是否关键/警告(如果已配置)
munin-html- 构建 HTML 页面
munin-cron- 调用其他二进制文件

因此,如果你(或你的 Cronjob)调用munin-cron所有二进制文件,它们都会完成她的部分。
每个二进制文件都会写入自己的日志文件(标准为/var/log/munin/),由二进制文件命名。
查看日志文件,也许你会看到哪一个失败了。
日志文件通常包含更多信息作为“错误代码”。

答案4

我通过将用户添加munin到组nobody(与 apache 的组相同)并将 munin 目录设置为该组可写来解决此错误nobody

chmod -R g+w /usr/local/apache/htdocs/munin

错误停止。图表再次开始出现。

相关内容