1sensord(8) Linux System Administration sensord(8)
2
3
4
6 sensord - Sensor information logging daemon.
7
9 sensord [ options ] [ chips ]
10
11
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
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
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
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
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
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
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
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
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
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
282 Errors encountered by this daemon are logged to syslogd(8) after which
283 the daemon will exit.
284
286 Round-robin database support doesn't cope with multiple sensor chips
287 having duplicate sensor labels.
288
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
300 sensors.conf(5)
301
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)