[collectd] Collectd on CentOS always broken?
Jarle Bjørgeengen
jarle at bjorgeengen.net
Wed Apr 25 07:36:55 CEST 2012
On 04/25/2012 03:48 AM, O G wrote:
> Would anyone have any more ideas why a perfectly normal looking Collectd whose config file is valid and that runs just fine would not be logging anything anywhere and would be saying
> "No write callback has been registered. Please load at least one output plugin, if you want the collected data to be stored." ?
>
It says right there in the message "Please load at least one output
, if you want the collected data to be stored." I suggest you read
about plugins in the excellent documentation [1].
I guess that you need the csv-plugin [2]
Also, you are likely to get better response from the list if you ask
nicely, and don't start out claiming the software is broken.
[1] http://collectd.org/documentation.shtml
[2] http://collectd.org/wiki/index.php/Plugin:CSV
Best regards
Jarle Bjørgeengen
> Over the last few days I've seen this same behaviour on multiple Linux systems and with multiple 4.* and 5.* versions of Collectd.
>
> Any help would be greatly appreciated!
>
> Thank you,
> Otis
>
>
> ----- Original Message -----
> From: O G<otis_junk at yahoo.com>
> To: "collectd at verplant.org"<collectd at verplant.org>
> Cc:
> Sent: Monday, April 23, 2012 3:00 PM
> Subject: Re: [collectd] Collectd on CentOS always broken?
>
> Hello Richard,
>
> I have not try this before (because I need plain-text collectd log files, not rrd ones), but I have now and it didn't help, I still get:
>
> "No write callback has been registered. Please load at least one output plugin, if you want the collected data to be stored."
>
> The files I'm looking for are, for example (this is from another system):
>
> $ head /opt/collectd/var/lib/collectd/cpu-0/cpu-user-2012-04-20
> epoch,value
> 1334880003,7.700000
> 1334880013,2.000000
> 1334880023,0.300000
>
> Thanks,
> Otis
>
>
>
>
> ________________________________
> From: Richard Shade<rshade at rightscale.com>
> To: O G<otis_junk at yahoo.com>
> Cc: "collectd at verplant.org"<collectd at verplant.org>
> Sent: Monday, April 23, 2012 1:37 PM
> Subject: Re: [collectd] Collectd on CentOS always broken?
>
>
> Have you tried adding LoadPlugin rrdtool, so that it will make rrd files?
>
>
> On Mon, Apr 23, 2012 at 12:21 PM, O G<otis_junk at yahoo.com> wrote:
>
> Hi,
>>
>> I've removed LoadPlugin syslog just in case. Yes, I can see Collectd is running with ps:
>>
>> # ps auxww| grep collectd
>> root 1272 0.0 0.1 44464 740 ? Ssl 17:06 0:00 /opt/collectd/sbin/collectd -C /opt/collectd/etc/collectd.conf
>>
>> Also, when I kill this process I see this in the log (/tmp/collectd.log in my case), so I know Collectd really is running before I kill it:
>>
>> [2012-04-23 17:06:21] [info] Exiting normally.
>> [2012-04-23 17:06:21] [info] collectd: Stopping 5 read threads.
>>
>> And when I start it, I see the following in /tmp/collectd.log:
>>
>> [2012-04-23 17:06:52] [info] Initialization complete, entering read-loop.
>> [2012-04-23 17:06:52] [warning] plugin_dispatch_values: No write callback has been registered. Please load at least one output plugin, if you want the collected data to be stored.
>> [2012-04-23 17:06:52] [info] Filter subsystem: Built-in target `write': Dispatching value to all write plugins failed with status 2 (ENOENT). Most likely this means you didn't load any write plugins.
>> ... the last [info] line above keeps repeating as collectd is running ...
>>
>>
>> So this "No write callback has been registered. Please load at least one output plugin, if you want the collected data to be stored" log message really looks weird.
>> What "output plugin" is this referring to? I do have "LoadPlugin cpu" and that should be writing CPU usage info to the log file under /opt/collectd/var/lib/collectd/.
>>
>> Here is a part of lsof output that shows cpu and logfile plugins are loaded. There is also a reference to /opt/collectd/var/lib/collectd directory that should have files with Collectd data, but doesn't:
>>
>> # lsof | grep collectd
>> collectd 1272 root cwd DIR 202,1 4096 133804 /opt/collectd/var/lib/collectd
>> collectd 1272 root mem REG 202,1 12814 133591 /opt/collectd/lib/collectd/cpu.so
>> collectd 1272 root mem REG 202,1 16189 133621 /opt/collectd/lib/collectd/logfile.so
>> ...
>>
>>
>> As for strace output, here it is:
>>
>> execve("/opt/collectd/sbin/collectd", ["/opt/collectd/sbin/collectd", "-C", "/opt/collectd/etc/collectd.conf"], [/* 31 vars */]) = 0
>> brk(0) = 0x9f9a000
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77a9000
>> access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
>> open("/etc/ld.so.cache", O_RDONLY) = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=18810, ...}) = 0
>> mmap2(NULL, 18810, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77a4000
>> close(3) = 0
>> open("/lib/i686/nosegneg/librt.so.1", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\30\0\0004\0\0\0"..., 512) = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=39676, ...}) = 0
>> mmap2(NULL, 33332, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb779b000
>> mmap2(0xb77a2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xb77a2000
>> close(3) = 0
>> open("/lib/libresolv.so.2", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240&\0\0004\0\0\0"..., 512) = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=103384, ...}) = 0
>> mmap2(NULL, 104520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7781000
>> mprotect(0xb7796000, 4096, PROT_NONE) = 0
>> mmap2(0xb7797000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15) = 0xb7797000
>> mmap2(0xb7799000, 6216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7799000
>> close(3) = 0
>> open("/lib/i686/nosegneg/libpthread.so.0", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0pL\0\0004\0\0\0"..., 512) = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=131044, ...}) = 0
>> mmap2(NULL, 106976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7766000
>> mmap2(0xb777d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16) = 0xb777d000
>> mmap2(0xb777f000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb777f000
>> close(3) = 0
>> open("/lib/libdl.so.2", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\n\0\0004\0\0\0"..., 512) = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=17892, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7765000
>> mmap2(NULL, 16500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7760000
>> mmap2(0xb7763000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xb7763000
>> close(3) = 0
>> open("/lib/i686/nosegneg/libc.so.6", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 at n\1\0004\0\0\0"..., 512) = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=1893680, ...}) = 0
>> mmap2(NULL, 1657224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb75cb000
>> mprotect(0xb7759000, 4096, PROT_NONE) = 0
>> mmap2(0xb775a000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18e) = 0xb775a000
>> mmap2(0xb775d000, 10632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb775d000
>> close(3) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ca000
>> set_thread_area({entry_number:-1 -> 6, base_addr:0xb75ca6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
>> mprotect(0xb775a000, 8192, PROT_READ) = 0
>> mprotect(0xb7763000, 4096, PROT_READ) = 0
>> mprotect(0xb777d000, 4096, PROT_READ) = 0
>> mprotect(0xb7797000, 4096, PROT_READ) = 0
>> mprotect(0xb77a2000, 4096, PROT_READ) = 0
>> mprotect(0xb77c9000, 4096, PROT_READ) = 0
>> munmap(0xb77a4000, 18810) = 0
>> set_tid_address(0xb75ca728) = 1324
>> set_robust_list(0xb75ca730, 0xc) = 0
>> futex(0xbf97ee10, FUTEX_WAKE_PRIVATE, 1) = 0
>> futex(0xbf97ee10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, bf97ee20) = -1 EAGAIN (Resource temporarily unavailable)
>> rt_sigaction(SIGRTMIN, {0xb776a6a0, [], SA_SIGINFO}, NULL, 8) = 0
>> rt_sigaction(SIGRT_1, {0xb776ab40, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
>> rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
>> getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
>> uname({sys="Linux", node="domU-12-31-38-00-A8-F5", ...}) = 0
>> brk(0) = 0x9f9a000
>> brk(0x9fbb000) = 0x9fbb000
>> stat64("/opt/collectd/etc/collectd.conf", {st_mode=S_IFREG|0644, st_size=24208, ...}) = 0
>> open("/opt/collectd/etc/collectd.conf", O_RDONLY) = 3
>> ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbf97c978) = -1 ENOTTY (Inappropriate ioctl for device)
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=24208, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77a8000
>> read(3, "#\n# Config file for collectd(1)."..., 8192) = 8192
>> read(3, "\tIgnoreSource \"192.168.0.1\"\n#\tSe"..., 8192) = 8192
>> read(3, "queries\"\n# Socket \"/var/run/p"..., 8192) = 7824
>> read(3, "", 4096) = 0
>> read(3, "", 8192) = 0
>> ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbf97c978) = -1 ENOTTY (Inappropriate ioctl for device)
>> close(3) = 0
>> munmap(0xb77a8000, 4096) = 0
>> open("/opt/collectd/share/collectd/types.db", O_RDONLY|O_LARGEFILE) = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=6710, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77a8000
>> read(3, "absolute\t\tvalue:ABSOLUTE:0:U\napa"..., 4096) = 4096
>> read(3, "nter\tvalue:DERIVE:0:U\nps_code\t\t\t"..., 4096) = 2614
>> read(3, "", 4096) = 0
>> close(3) = 0
>> munmap(0xb77a8000, 4096) = 0
>> open("/opt/collectd/lib/collectd", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
>> fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)
>> getdents64(3, /* 194 entries */, 32768) = 6536
>> lstat64("/opt/collectd/lib/collectd/logfile.so", {st_mode=S_IFREG|0755, st_size=16189, ...}) = 0
>> futex(0xb7764068, FUTEX_WAKE_PRIVATE, 2147483647) = 0
>> open("/opt/collectd/lib/collectd/logfile.so", O_RDONLY) = 4
>> read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\7\0\0004\0\0\0"..., 512) = 512
>> fstat64(4, {st_mode=S_IFREG|0755, st_size=16189, ...}) = 0
>> mmap2(NULL, 9308, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0xb77a6000
>> mmap2(0xb77a8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1) = 0xb77a8000
>> close(4) = 0
>> close(3) = 0
>> open("/opt/collectd/lib/collectd", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
>> getdents64(3, /* 194 entries */, 32768) = 6536
>> lstat64("/opt/collectd/lib/collectd/cpu.so", {st_mode=S_IFREG|0755, st_size=12814, ...}) = 0
>> open("/opt/collectd/lib/collectd/cpu.so", O_RDONLY) = 4
>> read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\6\0\0004\0\0\0"..., 512) = 512
>> fstat64(4, {st_mode=S_IFREG|0755, st_size=12814, ...}) = 0
>> mmap2(NULL, 7908, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0xb77a4000
>> mmap2(0xb77a5000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0) = 0xb77a5000
>> close(4) = 0
>> close(3) = 0
>> chdir("/opt/collectd/var/lib/collectd") = 0
>> rt_sigaction(SIGCHLD, {SIG_IGN, [], 0}, NULL, 8) = 0
>> clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb75ca728) = 1325
>> exit_group(0) = ?
>>
>>
>> Thanks!
>> Otis
>>
>>
>>
>>
>>
>>
>> ----- Original Message -----
>> From: "Crowder, Travis"<Travis.Crowder at penton.com>
>> To: O G<otis_junk at yahoo.com>; "collectd at verplant.org"<collectd at verplant.org>
>> Cc:
>> Sent: Monday, April 23, 2012 12:25 PM
>> Subject: RE: [collectd] Collectd on CentOS always broken?
>>
>> I don't think you can use two logs, but I am not positive on this. You are using syslog and a logfile with that config. I am not sure which one load, or if either does.
>>
>> What is in your /tmp/collectd.log?
>>
>> Do you get any errors when you configure or make?
>>
>> When you start collectd, are you able to verify it is still running via top or ps?
>>
>> If there is nothing in the /tmp/collectd.log and the process isn't running after you start it, can you start it with strace and post the output?
>>
>> -Travis
>>
>> -----Original Message-----
>> From: collectd-bounces at verplant.org [mailto:collectd-bounces at verplant.org] On Behalf Of O G
>> Sent: Monday, April 23, 2012 11:17 AM
>> To: collectd at verplant.org
>> Subject: Re: [collectd] Collectd on CentOS always broken?
>>
>> Hi Travis,
>>
>> Thanks for replying! I'm using this minimalistic collectd.conf:
>> ####
>> Hostname "localhost"
>> FQDNLookup true
>> BaseDir "/opt/collectd/var/lib/collectd"
>> PIDFile "/opt/collectd/var/run/collectd.pid"
>> PluginDir "/opt/collectd/lib/collectd"
>> TypesDB "/opt/collectd/share/collectd/types.db"
>> #Interval 10
>> #Timeout 2
>> #ReadThreads 5
>>
>> LoadPlugin syslog
>> LoadPlugin logfile
>> <Plugin logfile>
>> LogLevel info
>> File "/tmp/collectd.log"
>> Timestamp true
>> PrintSeverity true
>> </Plugin>
>> <Plugin syslog>
>> LogLevel info
>> </Plugin>
>>
>> LoadPlugin cpu
>> ####
>>
>> I've now also compiled and installed collectd 5.1.0 by hand (configure, make, make install) on "Amazon Linux AMI" (something based on RedHat, it seems, since it has yum) and I got the exact same error message. So I'm starting to suspect I'm doing something wrong with Collectd.
>>
>> Also:
>> # /opt/collectd/sbin/collectd -help
>> ...
>> Builtin defaults:
>> Config file /opt/collectd/etc/collectd.conf
>> PID file /opt/collectd/var/run/collectd.pid
>> Plugin directory /opt/collectd/lib/collectd
>> Data directory /opt/collectd/var/lib/collectd<== nothing shows up here or in /opt/collectd/var/log/ collectd 5.1.0, http://collectd.org/
>>
>> I've tried starting Collectd like this:
>> # /opt/collectd/sbin/collectd -C /opt/collectd/etc/collectd.conf
>>
>> As well we like this:
>> # /opt/collectd/sbin/collectdmon -c /opt/collectd/etc/collectd.conf
>>
>> Any help would be greatly appreciated.
>>
>> Thanks!
>> Otis
>>
>>
>> ----- Original Message -----
>> From: Travis Crowder<travis.crowder at spechal.com>
>> To: O G<otis_junk at yahoo.com>
>> Cc:
>> Sent: Sunday, April 22, 2012 1:21 PM
>> Subject: Re: [collectd] Collectd on CentOS always broken?
>>
>> On 4/21/2012 11:25 PM, O G wrote:
>>> Hello,
>>> Is there a version of CentOS with a working Collectd?
>>> I have tried several CentOS 5.* and 6.* versions where I installed Collectd with yum install collectd and each of them had a non-working Collectd.
>>> This is a common error message I'd find in /var/log/messages:
>>> Filter subsystem: Built-in target `write': Dispatching value to all
>>> write plugins failed with status 2 (ENOENT). Most likely this means you
>>> didn't load any write plugins
>>> Of course, there were plugins in collectd.conf that write stuff to filesytem.
>>> Is there a version of CentOS with a working Collectd?
>>> Thanks,
>>> Otis
>>>
>>> _______________________________________________
>>> collectd mailing list
>>> collectd at verplant.org
>>> http://mailman.verplant.org/listinfo/collectd
>>
>> I use Collectd exclusively on CentOS servers; CentOS 5 and CentOS 6. I install via YUM and build from source without issue.
>>
>> Can you post your collectd.conf from /etc/ or /opt/collectd/etc ?
>>
>> -Travis
>>
>> _______________________________________________
>> collectd mailing list
>> collectd at verplant.org
>> http://mailman.verplant.org/listinfo/collectd
>>
>> _______________________________________________
>> collectd mailing list
>> collectd at verplant.org
>> http://mailman.verplant.org/listinfo/collectd
>>
>
>
More information about the collectd
mailing list