我启动时遇到问题收集服务在我通过命令安装的 Fedora 31 64 位操作系统中sudo dnf install collectd
。当我输入时,sudo systemctl status collectd.service
我得到以下输出:
● collectd.service - statistics collection daemon
Loaded: loaded (/etc/systemd/system/collectd.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) since Sat 2020-09-19 18:18:47 CEST; 3s ago
Docs: man:collectd(1)
Process: 3796 ExecStart=/usr/sbin/collectd (code=exited, status=0/SUCCESS)
Main PID: 3796 (code=exited, status=0/SUCCESS)
CPU: 7ms
顺便说一句,我必须手动创建collectd.service
位于/etc/systemd/系统/目录。真正奇怪的是我不断收到激活(自动重启) 状态=0/成功在上面提到的输出中。我还按各自的顺序执行了以下命令:
sudo systemctl daemon-reload
sudo systemctl stop collectd.service
sudo systemctl start collectd.service
...但没有任何改变,我尝试在所有这些之后重新启动计算机并执行所有提到的 1)-3) 步骤,但没有任何帮助。顺便说一句,这是我的collectd.service
:
[Unit]
Description=statistics collection daemon
Documentation=man:collectd(1)
After=local-fs.target network.target
Requires=local-fs.target network.target
[Service]
ExecStart=/usr/sbin/collectd
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
这就是我的/etc/collectd.conf
文件的样子:
#
# Config file for collectd(1).
# Please read collectd.conf(5) for a list of options.
# http://collectd.org/
#
##############################################################################
# Global #
#----------------------------------------------------------------------------#
# Global settings for the daemon. #
##############################################################################
#Hostname "localhost"
FQDNLookup true
#BaseDir "/var/lib/collectd"
#PIDFile "/var/run/collectd.pid"
PluginDir "/usr/lib64/collectd"
TypesDB "/usr/share/collectd/types.db"
LoadPlugin cpu
<Plugin cpu>
ReportByCpu false
ReportByState false
# Interval 1
ValuesPercentage true
# ReportNumCpu false
# ReportGuestState false
# SubtractGuestState true
</Plugin>
<Plugin memory>
ValuesAbsolute false
ValuesPercentage true
</Plugin>
Include "/etc/collectd.d"
LoadPlugin syslog
LoadPlugin logfile
#LoadPlugin log_logstash
<Plugin logfile>
LogLevel info
File "/var/log/error_syslog"
Timestamp true
# PrintSeverity false
</Plugin>
#<Plugin log_logstash>
# LogLevel info
# File "/var/log/collectd.json.log"
#</Plugin>
<Plugin syslog>
LogLevel info
</Plugin>
Include "/etc/collectd.d"
非常感谢任何建议/为我指明如何解决这个问题的正确方向。
答案1
正如collectd
手册告诉你的,您必须在服务单元中 使用-f
命令行选项 和Type=simple
或使用Type=notify
(并且 no )。-f
Collectd 附带的样本服务单元做这个。
答案2
经过“实验”后,我设法找到了一个解决方案,并通过编辑文件ExecStart
中的属性来运行collectd.service /etc/systemd/system/collectd.service
,现在提到的文件如下所示:
[Unit]
Description=statistics collection daemon
Documentation=man:collectd(1)
After=local-fs.target network.target
Requires=local-fs.target network.target
[Service]
ExecStart=/usr/sbin/collectd
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
Type=notify
[Install]
WantedBy=multi-user.target
已按照 @JdeBP 在他的回答中建议的进行更改。另外,指定生成指标值的间隔时间中央处理器插件我已将其加载为标签指定Interval
每 1 秒生成一次指标,如下所示:
<LoadPlugin cpu>
Interval 1
</LoadPlugin cpu>
...而不是像这样的默认格式:LoadPlugin cpu
.顺便说一句,插件加载在文件中指定/etc/collectd.conf
(在Fedora31操作系统)。如果Interval
在 ...</plugin cpu> 标签下指定了属性,则collectd.服务将不会启动(问题参见 https://github.com/collectd/collectd/issues/2444)。更多信息请访问官方文档,但是有点乱,很难理解。
希望对遇到这种情况的人有所帮助。 :)
干杯!