3 Every module should be compatible with python2 and python3.
4 All third party libraries should be installed system-wide or in `python_modules` directory.
5 Module configurations are written in YAML and **pyYAML is required**.
7 Every configuration file must have one of two formats:
9 - Configuration for only one job:
12 update_every : 2 # update frequency
13 retries : 1 # how many failures in update() is tolerated
14 priority : 20000 # where it is shown on dashboard
16 other_var1 : bla # variables passed to module
20 - Configuration for many jobs (ex. mysql):
29 update_every : 5 # job update frequency
30 other_var1 : some_val # module specific variable
33 priority : 5 # job position on dashboard
34 retries : 20 # job retries
35 other_var2 : val # module specific variable
38 `update_every`, `retries`, and `priority` are always optional.
42 The following python.d modules are supported:
46 This module will monitor one or more apache servers depending on configuration.
49 * apache with enabled `mod_status`
51 It produces the following charts:
53 1. **Requests** in requests/s
59 3. **Async Connections**
64 4. **Bandwidth** in kilobytes/s
71 6. **Lifetime Avg. Requests/s** in requests/s
74 7. **Lifetime Avg. Bandwidth/s** in kilobytes/s
77 8. **Lifetime Avg. Response Size** in bytes/request
82 Needs only `url` to server's `server-status?auto`
84 Here is an example for 2 servers:
91 url : 'http://localhost/server-status?auto'
95 url : 'http://www.apache.org/server-status?auto'
100 Without configuration, module attempts to connect to `http://localhost/server-status?auto`
106 Module monitors apache mod_cache log and produces only one chart:
108 **cached responses** in percent cached
121 log_path : '/var/log/apache2/cache.log'
124 If no configuration is given, module will attempt to read log file at `/var/log/apache2/cache.log`
130 Module shows current cpu frequency by looking at appropriate files in /sys/devices
133 Processor which presents data scaling frequency data
135 It produces one chart with multiple lines (one line per core).
142 sys_dir: "/sys/devices"
145 If no configuration is given, module will search for `scaling_cur_freq` files in `/sys/devices` directory.
146 Directory is also prefixed with `NETDATA_HOST_PREFIX` if specified.
152 This module provides statistics information from dovecot server.
153 Statistics are taken from dovecot socket by executing `EXPORT global` command.
154 More information about dovecot stats can be found on [project wiki page.](http://wiki2.dovecot.org/Statistics)
157 Dovecot unix socket with R/W permissions for user netdata or dovecot with configured TCP/IP socket.
159 Module gives information with following charts:
167 3. **commands** - number of IMAP commands
174 5. **Context Switches**
178 6. **disk** in bytes/s
182 7. **bytes** in bytes/s
186 8. **number of syscalls** in syscalls/s
190 9. **lookups** - number of lookups per second
194 10. **hits** - number of cache hits
197 11. **attempts** - authorization attemts
201 12. **cache** - cached authorization hits
217 socket : '/var/run/dovecot/stats'
220 If no configuration is given, module will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`
226 Simple module executing `exim -bpc` to grab exim queue.
227 This command can take a lot of time to finish its execution thus it is not recommended to run it every second.
229 It produces only one chart:
231 1. **Exim Queue Emails**
234 Configuration is not needed.
240 Uses the `radclient` command to provide freeradius statistics. It is not recommended to run it every second.
244 1. **Authentication counters:**
247 * auth-dropped-requests
248 * auth-duplicate-requests
249 * auth-invalid-requests
250 * auth-malformed-requests
253 2. **Accounting counters:** [optional]
254 * accounting-requests
255 * accounting-responses
256 * acct-dropped-requests
257 * acct-duplicate-requests
258 * acct-invalid-requests
259 * acct-malformed-requests
262 3. **Proxy authentication counters:** [optional]
263 * proxy-access-accepts
264 * proxy-access-rejects
265 * proxy-auth-dropped-requests
266 * proxy-auth-duplicate-requests
267 * proxy-auth-invalid-requests
268 * proxy-auth-malformed-requests
269 * proxy-auth-unknown-types
271 4. **Proxy accounting counters:** [optional]
272 * proxy-accounting-requests
273 * proxy-accounting-responses
274 * proxy-acct-dropped-requests
275 * proxy-acct-duplicate-requests
276 * proxy-acct-invalid-requests
277 * proxy-acct-malformed-requests
278 * proxy-acct-unknown-typesa
284 secret : 'adminsecret'
285 acct : False # Freeradius accounting statistics.
286 proxy_auth : False # Freeradius proxy authentication statistics.
287 proxy_acct : False # Freeradius proxy accounting statistics.
292 **Freeradius server configuration:**
293 The configuration for the status server is automatically created in the sites-available directory.
294 By default, server is enabled and can be queried from every client.
295 FreeRADIUS will only respond to status-server messages, if the status-server virtual server has been enabled.
296 To do this, create a link from the sites-enabled directory to the status file in the sites-available directory:
298 #*ln -s ../sites-available/status status*
299 and restart/reload your FREERADIUS server.
305 Module monitors disk temperatures from one or more hddtemp daemons.
308 Running `hddtemp` in daemonized mode with access on tcp port
310 It produces one chart **Temperature** with dynamic number of dimensions (one per disk)
322 If no configuration is given, module will attempt to connect to hddtemp daemon on `127.0.0.1:7634` address
328 Module monitors [IPFS](https://ipfs.io) basic information.
330 1. **Bandwidth** in kbits/s
339 Only url to IPFS server is needed.
346 url : 'http://localhost:5001'
353 Memcached monitoring module. Data grabbed from [stats interface](https://github.com/memcached/memcached/wiki/Commands#stats).
355 1. **Network** in kilobytes/s
359 2. **Connections** per second
364 3. **Items** in cluster
368 4. **Evicted and Reclaimed** items
372 5. **GET** requests/s
376 6. **GET rate** rate in requests/s
379 7. **SET rate** rate in requests/s
382 8. **DELETE** requests/s
386 9. **CAS** requests/s
391 10. **Increment** requests/s
395 11. **Decrement** requests/s
399 12. **Touch** requests/s
403 13. **Touch rate** rate in requests/s
417 If no configuration is given, module will attempt to connect to memcached instance on `127.0.0.1:11211` address.
423 Module monitors one or more mysql servers
426 * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
428 It will produce following charts (if data is available):
430 1. **Bandwidth** in kbps
434 2. **Queries** in queries/sec
439 3. **Operations** in operations/sec
456 4. **Table Locks** in locks/sec
460 5. **Select Issues** in issues/sec
467 6. **Sort Issues** in issues/sec
474 You can provide, per server, the following:
476 1. username which have access to database (deafults to 'root')
477 2. password (defaults to none)
478 3. mysql my.cnf configuration file
479 4. mysql socket (optional)
480 5. mysql host (ip or hostname)
481 6. mysql port (defaults to 3306)
483 Here is an example for 3 servers:
491 'my.cnf' : '/etc/mysql/my.cnf'
496 pass : 'blablablabla'
497 socket : '/var/run/mysqld/mysqld.sock'
508 If no configuration is given, module will attempt to connect to mysql server via unix socket at `/var/run/mysqld/mysqld.sock` without password and with username `root`
514 This module will monitor one or more nginx servers depending on configuration. Servers can be either local or remote.
517 * nginx with configured 'ngx_http_stub_status_module'
518 * 'location /stub_status'
520 Example nginx configuration can be found in 'python.d/nginx.conf'
522 It produces following charts:
524 1. **Active Connections**
527 2. **Requests** in requests/s
530 3. **Active Connections by Status**
535 4. **Connections Rate** in connections/s
541 Needs only `url` to server's `stub_status`
543 Here is an example for local server:
550 url : 'http://localhost/stub_status'
554 Without configuration, module attempts to connect to `http://localhost/stub_status`
560 Module monitors nginx access log and produces only one chart:
562 1. **nginx status codes** in requests/s
570 Sample for two vhosts:
574 path: '/var/log/nginx/access-A.log'
578 path: '/var/log/nginx/access-B.log'
581 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
587 This module will monitor one or more php-fpm instances depending on configuration.
590 * php-fpm with enabled `status` page
591 * access to `status` page via web server
593 It produces following charts:
595 1. **Active Connections**
600 2. **Requests** in requests/s
609 Needs only `url` to server's `status`
611 Here is an example for local instance:
618 url : 'http://localhost/status'
622 Without configuration, module attempts to connect to `http://localhost/status`
628 Simple module executing `postfix -p` to grab postfix queue.
630 It produces only two charts:
632 1. **Postfix Queue Emails**
635 2. **Postfix Queue Emails Size** in KB
638 Configuration is not needed.
644 Get INFO data from redis instance.
646 Following charts are drawn:
648 1. **Operations** per second
651 2. **Hit rate** in percent
654 3. **Memory utilization** in kilobytes
659 * lines are creates dynamically based on how many databases are there
673 socket : '/var/lib/redis/redis.sock'
681 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
687 System sensors information.
689 Charts are created dynamically.
693 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
699 This module will monitor one or more squid instances depending on configuration.
701 It produces following charts:
703 1. **Client Bandwidth** in kilobits/s
708 2. **Client Requests** in requests/s
713 3. **Server Bandwidth** in kilobits/s
717 4. **Server Requests** in requests/s
727 request : 'cache_object://localhost:3128/counters'
732 Without any configuration module will try to autodetect where squid presents its `counters` data
738 Present tomcat containers memory utilization.
742 1. **Requests** per second
745 2. **Volume** in KB/s
752 4. **JVM Free Memory** in MB
760 url : 'http://127.0.0.1:8080/manager/status?XML=true'
761 user : 'tomcat_username'
762 pass : 'secret_tomcat_password'
765 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
766 So it will probably fail.