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
289 secret : 'adminsecret'
290 acct : False # Freeradius accounting statistics.
291 proxy_auth : False # Freeradius proxy authentication statistics.
292 proxy_acct : False # Freeradius proxy accounting statistics.
295 **Freeradius server configuration:**
297 The configuration for the status server is automatically created in the sites-available directory.
298 By default, server is enabled and can be queried from every client.
299 FreeRADIUS will only respond to status-server messages, if the status-server virtual server has been enabled.
301 To do this, create a link from the sites-enabled directory to the status file in the sites-available directory:
303 * ln -s ../sites-available/status status
305 and restart/reload your FREERADIUS server.
311 Module monitors disk temperatures from one or more hddtemp daemons.
314 Running `hddtemp` in daemonized mode with access on tcp port
316 It produces one chart **Temperature** with dynamic number of dimensions (one per disk)
328 If no configuration is given, module will attempt to connect to hddtemp daemon on `127.0.0.1:7634` address
334 Module monitors [IPFS](https://ipfs.io) basic information.
336 1. **Bandwidth** in kbits/s
345 Only url to IPFS server is needed.
352 url : 'http://localhost:5001'
359 Memcached monitoring module. Data grabbed from [stats interface](https://github.com/memcached/memcached/wiki/Commands#stats).
361 1. **Network** in kilobytes/s
365 2. **Connections** per second
370 3. **Items** in cluster
374 4. **Evicted and Reclaimed** items
378 5. **GET** requests/s
382 6. **GET rate** rate in requests/s
385 7. **SET rate** rate in requests/s
388 8. **DELETE** requests/s
392 9. **CAS** requests/s
397 10. **Increment** requests/s
401 11. **Decrement** requests/s
405 12. **Touch** requests/s
409 13. **Touch rate** rate in requests/s
423 If no configuration is given, module will attempt to connect to memcached instance on `127.0.0.1:11211` address.
429 Module monitors one or more mysql servers
432 * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
434 It will produce following charts (if data is available):
436 1. **Bandwidth** in kbps
440 2. **Queries** in queries/sec
445 3. **Operations** in operations/sec
462 4. **Table Locks** in locks/sec
466 5. **Select Issues** in issues/sec
473 6. **Sort Issues** in issues/sec
480 You can provide, per server, the following:
482 1. username which have access to database (deafults to 'root')
483 2. password (defaults to none)
484 3. mysql my.cnf configuration file
485 4. mysql socket (optional)
486 5. mysql host (ip or hostname)
487 6. mysql port (defaults to 3306)
489 Here is an example for 3 servers:
497 'my.cnf' : '/etc/mysql/my.cnf'
502 pass : 'blablablabla'
503 socket : '/var/run/mysqld/mysqld.sock'
514 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`
520 This module will monitor one or more nginx servers depending on configuration. Servers can be either local or remote.
523 * nginx with configured 'ngx_http_stub_status_module'
524 * 'location /stub_status'
526 Example nginx configuration can be found in 'python.d/nginx.conf'
528 It produces following charts:
530 1. **Active Connections**
533 2. **Requests** in requests/s
536 3. **Active Connections by Status**
541 4. **Connections Rate** in connections/s
547 Needs only `url` to server's `stub_status`
549 Here is an example for local server:
556 url : 'http://localhost/stub_status'
560 Without configuration, module attempts to connect to `http://localhost/stub_status`
566 Module monitors nginx access log and produces only one chart:
568 1. **nginx status codes** in requests/s
576 Sample for two vhosts:
580 path: '/var/log/nginx/access-A.log'
584 path: '/var/log/nginx/access-B.log'
587 When no configuration file is found, module tries to parse `/var/log/nginx/access.log` file.
593 This module will monitor one or more php-fpm instances depending on configuration.
596 * php-fpm with enabled `status` page
597 * access to `status` page via web server
599 It produces following charts:
601 1. **Active Connections**
606 2. **Requests** in requests/s
615 Needs only `url` to server's `status`
617 Here is an example for local instance:
624 url : 'http://localhost/status'
628 Without configuration, module attempts to connect to `http://localhost/status`
634 Simple module executing `postfix -p` to grab postfix queue.
636 It produces only two charts:
638 1. **Postfix Queue Emails**
641 2. **Postfix Queue Emails Size** in KB
644 Configuration is not needed.
650 Get INFO data from redis instance.
652 Following charts are drawn:
654 1. **Operations** per second
657 2. **Hit rate** in percent
660 3. **Memory utilization** in kilobytes
665 * lines are creates dynamically based on how many databases are there
679 socket : '/var/lib/redis/redis.sock'
687 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:6379`.
693 System sensors information.
695 Charts are created dynamically.
699 For detailed configuration information please read [`sensors.conf`](https://github.com/firehol/netdata/blob/master/conf.d/python.d/sensors.conf) file.
705 This module will monitor one or more squid instances depending on configuration.
707 It produces following charts:
709 1. **Client Bandwidth** in kilobits/s
714 2. **Client Requests** in requests/s
719 3. **Server Bandwidth** in kilobits/s
723 4. **Server Requests** in requests/s
733 request : 'cache_object://localhost:3128/counters'
738 Without any configuration module will try to autodetect where squid presents its `counters` data
744 Present tomcat containers memory utilization.
748 1. **Requests** per second
751 2. **Volume** in KB/s
758 4. **JVM Free Memory** in MB
766 url : 'http://127.0.0.1:8080/manager/status?XML=true'
767 user : 'tomcat_username'
768 pass : 'secret_tomcat_password'
771 Without configuration, module attempts to connect to `http://localhost:8080/manager/status?XML=true`, without any credentials.
772 So it will probably fail.