1sensord(8)                Linux System Administration               sensord(8)
2
3
4

NAME

6       sensord - Sensor information logging daemon.
7

SYNOPSIS

9       sensord [ options ] [ chips ]
10
11

DESCRIPTION

13       Sensord  is  a daemon that can be used to periodically log sensor read‐
14       ings from hardware health-monitoring chips to  syslog(3)  or  a  round-
15       robin database (RRD) and to alert when a sensor alarm is signalled; for
16       example, if a fan fails, a temperature limit is exceeded, etc.
17
18

OPTIONS

20       -i, --interval time
21              Specify the interval between scanning  for  sensor  alarms;  the
22              default is to scan every minute.
23
24              The  time should be specified as a raw integer (seconds) or with
25              a suffix `s' for seconds, `m' for minutes or `h' for hours;  for
26              example, the default interval is `60' or `1m'.
27
28              Specify  an interval of zero to suppress scanning explicitly for
29              alarms.
30
31       -l, --log-interval time
32              Specify the interval between logging all  sensor  readings;  the
33              default is to log all readings every half hour.
34
35              The time is specified as before; e.g., `30m'.
36
37              Specify  an interval of zero to suppress logging of regular sen‐
38              sor readings.
39
40       -1, --oneline
41              Log sensor value, chip, and adapter on one line for easier pars‐
42              ing.
43
44       -t, --rrd-interval time
45              Specify  the  interval  between logging all sensor readings to a
46              round-robin database; the default is to log all  readings  every
47              five minutes if a round-robin database is configured.
48
49              The time is specified as before; e.g., `5m'.
50
51       -T, --rrd-no-average
52              Specify that the round-robin database should not be averaged.
53
54
55       -r, --rrd-file file
56              Specify  a  round-robin  database  into  which to log all sensor
57              readings; e.g., `/var/log/sensord.rrd'. This  database  will  be
58              created  if  it does not exist. By default, no round-robin data‐
59              base is used.
60
61              See the section ROUND ROBIN DATABASES below for more details.
62
63       -c, --config-file file
64              Specify a libsensors(3) configuration file. If no file is speci‐
65              fied, the libsensors default configuration file is used.
66
67
68       -p, --pid-file file
69              Specify what PID file to write; the default is to write the file
70              `/var/run/sensord.pid'. You should always  specify  an  absolute
71              path here. The file is removed when the daemon exits.
72
73       -f, --syslog-facility facility
74              Specify  the syslog(3) facility to use when logging sensor read‐
75              ings and alarms; the default is to use daemon.
76
77              Other possible facilities include  local0  through  local7,  and
78              user.
79
80       -g, --rrd-cgi directory
81              Prints  out  a  sample  rrdcgi(1) CGI script that can be used to
82              display graphs of recent sensor information in a Web  page,  and
83              exits.  You  must  specify  the  world-writable,  Web-accessible
84              directory where the graphs should  be  stored;  the  CGI  script
85              assumes  that this will be accessed under the `/sensord/' direc‐
86              tory on the Webserver. See the  section  ROUND  ROBIN  DATABASES
87              below for more details.
88
89       -a, --load-average
90              Include  the  load  average in the RRD database. You should also
91              specify this flag when you create the CGI script.
92
93       -d, --debug
94              Prints a small amount of additional debugging information.
95
96       -h, --help
97              Prints a help message and exits.
98
99       -v, --version
100              Displays the program version and exits.
101

CHIPS

103       To restrict the devices that  are  scanned  by  this  daemon,  you  may
104       optionally  specify  a  list  of  chip names. By default, all available
105       chips are scanned.
106
107       A typical chip name would be `w83782d-*' (you may want  to  escape  the
108       `*'  for your shell) which would scan any W83782D chips on any bus. See
109       sensors.conf(5) for more details. Another option is to simply not  load
110       the sensor modules for chips in which you have no interest.
111

SIGNALS

113       Upon  receipt  of  a  SIGTERM  (see  signal(7) for details) this daemon
114       should gracefully shut down.
115
116       Upon receipt of a SIGHUP, this daemon will rescan the kernel  interface
117       for chips and features, and reload the libsensors configuration file.
118

LOGGING

120       All messages from this daemon are logged to syslog(3) under the program
121       name `sensord' and facility daemon, or whatever  is  specified  on  the
122       command line.
123
124       Regular  sensor  readings  are  logged  at  the level info.  Alarms are
125       logged at the level alert.  Inconsequential status messages are  logged
126       at the minimum level, debug, when debugging is enabled.
127
128       You can use an appropriate `/etc/syslog.conf' file to direct these mes‐
129       sages in a useful manner. See syslog.conf(5) for full details. Assuming
130       you  set the logging facility to local4, the following is a sample con‐
131       figuration:
132
133              # Sample syslog.conf entries
134              *.info;...;local4.none;local4.warn  /var/log/messages
135              local4.info                        -/var/log/sensors
136              local4.alert                        /dev/console
137              local4.alert                        *
138
139       The first line ensures that regular  sensor  readings  do  not  clutter
140       `/var/log/messages';  we  first say `local4.none' to eliminate informa‐
141       tional messages; then `local4.warn' to enable warnings and  above.  The
142       second  line  says to log all regular sensor readings to `/var/log/sen‐
143       sors'; the leading hyphen `-' means that this file is not flushed after
144       every  message.  The  final two lines ensure that alarms are printed to
145       the system console as well as to all connected users  (in  addition  to
146       `/var/log/messages' and `/var/log/sensors').
147

LOG ROTATION

149       On  a typical system with a good sensor chip, expect about 2KB per sen‐
150       sor reading in the log file. This works out at about 3MB per month. You
151       should be rotating your syslog files anyway, but just to be sure you'll
152       want to use something like logrotate(8) or equivalent. You  might,  for
153       example, want an entry in `/etc/logrotate.d/syslog' containing:
154
155              # Sample logrotate.d entry
156              /var/log/sensors {
157                  postrotate
158                      /usr/sbin/killall -HUP syslogd
159                  endscript
160              }
161
162       Note, of course, that you want to restart syslogd(8) and not sensord(8)
163

ALARMS

165       Alarms  generally  indicate  a  critical  condition; for example, a fan
166       failure or an unacceptable temperature or voltage. However, some sensor
167       chips  do  not  support alarms, while others are incorrectly configured
168       and may signal alarms incorrectly.
169
170       Note that some drivers may lack support for alarm reporting even though
171       the chips they support do have alarms. As of Linux 2.6.23, many drivers
172       still don't report alarms in a format suitable for libsensors 3.
173
174

BEEPS

176       If you see `(beep)' beside any sensor reading,  that  just  means  that
177       your  system  is  configured to issue an audio warning from the mother‐
178       board if an alarm is signalled on that sensor.
179

ROUND ROBIN DATABASES

181       Sensord(8) provides support for storing sensor  readings  in  a  round-
182       robin  database.  This  may  be a useful alternative to the use of sys‐
183       log(3).
184
185       Round-robin databases are constant-size databases that can be  used  to
186       store, for example, a week's worth of sensor readings. Subsequent read‐
187       ings stored in the database will overwrite readings  that  are  over  a
188       week  old. This capability is extremely useful because it allows useful
189       information to be stored in an easily-accessible manner  for  a  useful
190       length of time, without the burden of ever-growing log files.
191
192       The  rrdtool(1)  utility  and  its associated library provide the basic
193       framework for the round-robin database beneath  sensord(8).   In  addi‐
194       tion,  the rrdcgi(1) and rrdgraph(1) utilities provide support for gen‐
195       erating graphs of these data for display in a Web page.
196
197       If you wish to use the default configuration of  round-robin  database,
198       which  holds one week of sensor readings at five-minute intervals, then
199       simply start sensord(8) and specify where you want the database stored.
200       It  will  automatically  be  created and configured using these default
201       parameters.
202
203       If you wish readings to be stored for a longer period, or want multiple
204       readings  to  be averaged into each database entry, then you must manu‐
205       ally create and configure  the  database  before  starting  sensord(8).
206       Consult  the  rrdcreate(1)  manual  for details. Note that the database
207       must match exactly the names and order of sensors read  by  sensord(8).
208       It  is  recommended  that  you create the default database and then use
209       rrdinfo(1) to obtain this information, and/or rrdtune(1) to change it.
210
211       After creating the round-robin database, you must then  configure  your
212       Web  server  to  display  the sensor information. This assumes that you
213       have a Web server preconfigured and functioning on your machine.   Sen‐
214       sord(8)  provides  a  command-line option --rrd-cgi to generate a basic
215       CGI script to display these graphs; you can then customize this  script
216       as  desired.  Consult the rrdcgi(1) manual for details. This CGI script
217       requires a world-writable, Web-accessible directory into which to write
218       the graphs that it generates.
219
220       An  example  of  how  to  set up Web-accessible graphs of recent sensor
221       readings follows:
222
223              sensord --log-interval 0 \
224                --load-average \
225                --rrd-file /var/log/sensord.rrd
226
227       Here, we start sensord(8) and configure  it  to  store  readings  in  a
228       round-robin  database;  note that we disable logging of sensor readings
229       to syslog(3), and enable logging of the load average.
230
231              mkdir /var/www/sensord
232              chown www-data:staff /var/www/sensord
233              chmod a=rwxs /var/www/sensord
234
235       Here, we create a world-writable,  Web-accessible  directory  in  which
236       graphs  will  be  stored;  we set the ownership and permissions on this
237       directory appropriately. You will have to determine  the  location  and
238       ownership that is appropriate for your machine.
239
240              sensord --load-average \
241                --rrd-file /var/log/sensord.rrd \
242                --rrd-cgi /var/www/sensord \
243                > /usr/lib/cgi-bin/sensord.cgi
244              chmod a+rx /usr/lib/cgi-bin/sensord.cgi
245
246       Here, we create a CGI script that will display sensor readings from the
247       database.  You must specify the location of the  round-robin  database,
248       the  location  of  the directory where the images should be stored, and
249       whether you want the load average displayed. The --rrd-cgi command-line
250       parameter  causes sensord(8) to display a suitable CGI script on stdout
251       and then to exit. You will need to write this script  to  the  CGI  bin
252       directory  of  your Web server, and edit the script if the image direc‐
253       tory you chose is not the `/sensord/' directory of your Web server.
254
255       Finally, you should be able to view your sensor readings from  the  URL
256       `http://localhost/cgi-bin/sensord.cgi'.
257

MODULES

259       It  is  expected  that  all required sensor modules are loaded prior to
260       this daemon being started. This can either be achieved  with  a  system
261       specific  module  loading scheme (e.g., listing the required modules in
262       the file `/etc/modules' under Debian) or with explicit modprobe(1) com‐
263       mands in an init script before loading the daemon.
264
265       For  example,  a  `sensord'  initialization script might contain (among
266       others) the following commands:
267
268              # Sample init.d scriptlet
269              echo -n "Loading AMD756 module: "
270              modprobe i2c-amd756 || { echo Fail. ; exit 1 ; }
271              echo OK.
272              echo -n "Loading W83781D module: "
273              modprobe w83781d || { echo Fail. ; exit 1 ; }
274              echo OK.
275              echo -n "Starting sensord: "
276              daemon sensord
277
278       Ignore the platform-specific shell functions; the general  idea  should
279       be fairly clear.
280

ERRORS

282       Errors  encountered by this daemon are logged to syslogd(8) after which
283       the daemon will exit.
284

BUGS

286       Round-robin database support doesn't cope with  multiple  sensor  chips
287       having duplicate sensor labels.
288

FILES

290       /etc/sensors3.conf
291       /etc/sensors.conf
292              The  system-wide  libsensors(3)  configuration  file.  See  sen‐
293              sors.conf(5) for further details.
294       /etc/syslog.conf
295              The system-wide syslog(3) / syslogd(8) configuration  file.  See
296              syslog.conf(5) for further details.
297
298

SEE ALSO

300       sensors.conf(5)
301

AUTHORS

303       Sensord  was  written  by  Merlin Hughes <merlin@merlin.org>. Basics of
304       round-robin databases were misappropriated from Mark D. Studebaker.
305
306
307
308lm-sensors 3                     October 2007                       sensord(8)
Impressum