[collectd] Collectd on CentOS always broken?

O G otis_junk at yahoo.com
Wed Apr 25 15:30:47 CEST 2012


Hi Jarle,
 
Thanks - you made my day - that did it!  My mistake for not realizing it is the csv plugin that's responsible for writing those files.  For some reason I thought it was the logfile plugin that did that which, in retrospect, makes no sense.
 
Regarding asking nicely - I tried doing exactly that (have been participating in MLs for over 15 years now), hence the "?" in my subject and hence "So I'm starting to suspect I'm doing something wrong with Collectd", which turned out to be right.  I'll try harder next time! :)
 
Again, thanks for the help!
 
Otis
 


----- Original Message -----
From: Jarle Bjørgeengen <jarle at bjorgeengen.net>
To: collectd at verplant.org
Cc: 
Sent: Wednesday, April 25, 2012 1:36 AM
Subject: Re: [collectd] Collectd on CentOS always broken?

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
>>
>
>


_______________________________________________
collectd mailing list
collectd at verplant.org
http://mailman.verplant.org/listinfo/collectd



More information about the collectd mailing list