--- layout: default title: Controlling the Daemon --- The main daemon that runs on nodes keeps internal stats and supports reloading of agents and changing logging level without restarting. If you want to reload all the agents without restarting the daemon you can just send it signal *USR1* and it will reload its agents. You can send *USR2* to cycle the log level through DEBUG to FATAL and back again, just keep sending the signal and look at the logs. Reloading agents work in most cases though we recommend a full daemon restart in production use due to the nature of the ruby class loading system. If you are changing agent contents and relying on the reload behavior you might end up with agents not being in a consistent state. ## Obtaining daemon statistics The daemon keeps a number of statistics about its operation, you can view these using the _inventory_ application: {% highlight console %} % mco inventory example.com Server Statistics: Version: 2.2.0 Start Time: Mon Sep 24 17:37:28 +0100 2012 Config File: /etc/mcollective/server.cfg Collectives: mcollective, fr_collective Main Collective: mcollective Process ID: 24473 Total Messages: 52339 Messages Passed Filters: 44118 Messages Filtered: 8221 Expired Messages: 0 Replies Sent: 29850 Total Processor Time: 527.06 seconds System Time: 349.32 seconds . . . {% endhighlight %} The statistics mean: |Statistic |Meaning | |------------|-------------------------------------------| |Start Time |Local time on the node when the daemon started| |Collectives |All known collectives this agent responds on| |Main Collective |The primary collective| |Process ID |The process ID of the mcollectived| |Total Messages |Total messages received from the middleware| |Messages Passed Filters|Amount of messages that was determined to be applicable to this node based on filters| |Messages Filtered |Messages that did not apply to this node| |Expired Messages |Received messages that had expired their TTL values| |Replies Sent |Not all received messages result in replies, this counts the actual replies sent| |Total Processor Time |Processor time including user and system time consumed since start| |System Time |System Processor time only| You can get the raw values using the *rpcutil* agent using the *daemon_stats* action. {% highlight console %} % mco rpc rpcutil daemon_stats Discovering hosts using the mongo method .... 26 * [ ============================================================> ] 26 / 26 . . . example.com Agents: ["stomputil", "nrpe", "package", "rpcutil", "rndc", "urltest", "iptables", "puppetd", "discovery", "service", "eximng", "filemgr", "process"] Config File: /etc/mcollective/server.cfg Failed Filter: 168432 Passed Filter: 91231 PID: 1418 Replies: 91127 Start Time: 1347545937 Threads: ["#", "#", "#", "#"] Times: {:cutime=>1111.13, :utime=>3539.21, :cstime=>1243.64, :stime=>5045.21} Total Messages: 259842 TTL Expired: 179 Failed Security: 0 Security Validated: 259842 Version: 2.2.0 Summary of Agents: package = 26 process = 26 discovery = 26 service = 26 puppetd = 26 filemgr = 26 nrpe = 26 rpcutil = 26 stomputil = 26 iptables = 11 urltest = 7 libvirt = 4 eximng = 4 registration = 3 rndc = 3 angelianotify = 2 Summary of Version: 2.2.0 = 26 Finished processing 26 / 26 hosts in 289.20 ms {% endhighlight %} ## Obtaining running configuration settings All configuration settings of any mcollective daemon can be retrieved using the *get_config_item* action of the *rpcutil* agent: {% highlight console %} % mco rpc rpcutil get_config_item item=collectives -I example.com Discovering hosts using the mongo method .... 1 * [ ============================================================> ] 1 / 1 example.com: Property: collectives Value: ["mcollective", "fr_collective"] Summary of Value: mcollective = 1 fr_collective = 1 Finished processing 1 / 1 hosts in 59.05 ms {% endhighlight %}