cookbook 'prometheus_exporters', '= 0.9.0'
prometheus_exporters
(25) Versions
0.9.0
-
Follow3
Installs / configures Prometheus exporters
cookbook 'prometheus_exporters', '= 0.9.0', :supermarket
knife supermarket install prometheus_exporters
knife supermarket download prometheus_exporters
prometheus_exporters
Cookbook to install and configure various Prometheus exporters on systems to be monitored by Prometheus.
Currently supported exporters are node, postgres, redis, snmp, and wmi. More may be added in the future. Please contact the author if you have specific requests.
All of the exporters are available as chef custom resources that can be instantiated from other cookbooks.
Supports
- Ubuntu 14.04
- Ubuntu 16.04
- Ubuntu 18.04
- Debian 8
- Debian 9
- CentOS 6
- CentOS 7
And probably other RHEL or Debian based distributions.
- Windows Server 2012 & 2016 (wmi_exporter recipe only)
Tests are made using last available Chef 14 along with latest Chef 13.
Resources
blackbox_exporter
This exporter requires a config file. Read more here. For basic usage the default blackbox.yml should be sufficient.
-
web_listen_addressAddress to listen on for web interface and telemetry. (default: ":9115") -
log_levelOnly log messages with the given severity or above. Valid levels: [debug, info, warn, error] -
config_filedefault:/opt/blackbox_exporter-#{node['prometheus_exporters']['blackbox']['version']}.linux-amd64/blackbox.yml -
timeout_offsetdefault: 0.5 Offset to subtract from timeout in seconds.
blackbox_exporter 'main'
node_exporter
-
web_listen_addressAddress to listen on for web interface and telemetry. (default: ":9100") -
web_telemetry_pathPath under which to expose metrics. (default: "/metrics") -
log_levelOnly log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] -
log_formatWhere to send log files. (default: "logger:stdout") -
collectors_enabledAn array of explicitly enabled collectors. -
collectors_disabledAn array of explicitly disabled collectors. -
collector_megacli_commandCommand to run megacli. (default: "megacli") -
collector_ntp_serverNTP server to use for ntp collector. (default: "127.0.0.1") -
collector_ntp_protocol_versionNTP protocol version. (default: "4") -
collector_ntp_server_is_localCertify that collector.ntp.server address is the same local host as this collector. -
collector_ntp_ip_ttlIP TTL to use while sending NTP query. (default: "1") -
collector_ntp_max_distanceMax accumulated distance to the root. (default: "3.46608s") -
collector_ntp_local_offset_toleranceOffset between local clock and local ntpd time to tolerate. (default: "1ms") -
path_procfsprocfs mountpoint. (default: "/proc") -
path_sysfssysfs mountpoint. (default: "/sys") -
collector_textfile_directoryDirectory to read text files with metrics from. (default: "") -
collector_netdev_ignored_devicesRegexp of net devices to ignore for netdev collector. (default: "") -
collector_diskstats_ignored_devicesRegexp of devices to ignore for diskstats. (default: "ram|loop|fd|(h|s|v|xvd[a-z]|nvme\d+n\d+p)\d+$") -
collector_filesystem_ignored_fs_typesRegexp of filesystem types to ignore for filesystem collector. (default: "sys|proc|autofs$") -
collector_filesystem_ignored_mount_pointsRegexp of mount points to ignore for filesystem collector. (default: "/(sys|proc|dev)($|/)") -
custom_optionsUse for your configuration if defined proterties are not satisfying your needs.
listen_ip = '127.0.0.1' node_exporter 'main' do web_listen_address "#{listen_ip}:9100" action [:enable, :start] end
or just set
node['prometheus_exporters']['listen_interface']node['prometheus_exporters']['node']['collectors']node['prometheus_exporters']['node']['textfile_directory']node['prometheus_exporters']['node']['ignored_net_devs']
and add recipe['prometheus_exporters::node] to your run_list.
mysqld_exporter
The mysqld_exporter resource supports running multiple copies of the MySQL exporter on the same system.
-
instance_namename of MySQL exporter instance. (name attribute) -
data_source_nameMySQL connection string -
config_my_cnfPath to .my.cnf file to read MySQL credentials from. (default: ~/.my.cnf) -
log_formatIf set use a syslog logger or JSON logging. Example: logger:syslog?appname=bob&local=7 or logger:stdout?json=true. Defaults to stderr. -
log_levelOnly log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]. -
web_listen_addressAddress to listen on for web interface and telemetry. (default "127.0.0.1:9104") -
web_telemetry_pathPath under which to expose metrics. (default "/metrics") -
userSystem user to run exporter as. (default "mysql") -
collector_flagsSpecify which collector flags you wish to use.
(default)
'\
-collect.global_status \
-collect.engine_innodb_status \
-collect.global_variables \
-collect.info_schema.clientstats \
-collect.info_schema.innodb_metrics \
-collect.info_schema.processlist \
-collect.info_schema.tables.databases \
-collect.info_schema.tablestats \
-collect.slave_status \
-collect.binlog_size \
-collect.perf_schema.tableiowaits \
-collect.perf_schema.indexiowaits \
-collect.perf_schema.tablelocks'
mysqld_exporter 'main' do data_source_name '/' config_my_cnf '~/.my/cnf' user 'mysql' end
postgres_exporter
The postgres_exporter resource supports running multiple copies of PostgreSQL exporter the same system. This is useful if you have multiple copies of PostgreSQL running on the same system
(eg. different versions) or you are connecting to multiple remote PostgreSQL servers across the network.
-
instance_namename of PostgreSQL exporter instance. (name attribute) -
data_source_namePostgreSQL connection string. E.g.postgresql://login:password@hostname:port/dbname -
extend_query_pathPath to custom queries to run -
log_formatIf set use a syslog logger or JSON logging. Example: logger:syslog?appname=bob&local=7 or logger:stdout?json=true. Defaults to stderr. -
log_levelOnly log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]. -
web_listen_addressAddress to listen on for web interface and telemetry. (default "127.0.0.1:9187") -
web_telemetry_pathPath under which to expose metrics. (default "/metrics") -
userSystem user to run exporter as. (default "postgres")
postgres_exporter '9.5_main' do data_source_name 'postgresql://localhost:5432/example' user 'postgres' end
process_exporter
Monitor resource usage of processes or process groups. Read more here.
-
web_listen_addressAddress to listen on for web interface and telemetry. Default: ":9256" -
web_telemetry_pathPath for the metrics endpoint. Default: '/metrics' -
config_fileOptional config file for configuring which processes to monitor. The example below monitors all processes on the system. Alternately specific process names and groups may be specified using theproc_namesandname_mappingproperties -
proc_namesComma separated list of process names to monitor -
name_mappingComma-separated list of alternatingname,regexpvalues. It allows assigning a name to a process based on a combination of the process name and command line -
path_procfsprocfs mountpoint. Default: "/proc" -
childrenIf set, any process that otherwise isn't part of its own group becomes part of the first group found (if any) when walking the process tree upwards. In other words, resource usage of subprocesses is added to their parent's usage unless the subprocess identifies as a different group name. Default: true -
recheckOn each scrape the process names are re-evaluated. This is disabled by default as an optimization, but since processes can choose to change their names, this may result in a process falling into the wrong group if we happen to see it for the first time before it's assumed its proper name. Default: false -
debugPrint debug information to the log. default: false -
custom_optionsUse for your configuration if defined proterties are not satisfying your needs.
process_exporter 'main' do config_file "/opt/process-exporter-#{node['prometheus_exporters']['process']['version']}.linux-amd64/all.yml" action %i[install enable] end file "/opt/process-exporter-#{node['prometheus_exporters']['process']['version']}.linux-amd64/all.yml" do content <<HERE process_names: - name: "{{.Comm}}" cmdline: - '.+' HERE notifies :start, 'process_exporter[main]' end
redis_exporter
-
web_listen_addressAddress to listen on for web interface and telemetry. (default: "0.0.0.0:9121") -
web_telemetry_pathPath under which to expose metrics. (default: "/metrics") -
log_formatIn what format should logs be shown. (default: "txt") -
debugEnable or disable debug output. (default: false) -
check_keysComma separated list of keys to export value and length/size, eg:db3=user_countwill export keyuser_countfrom db3. db defaults to0if omitted. (default: "") -
redis_addrAddress of one or more redis nodes, comma separated. (default: "redis://localhost:6379") -
redis_passwordPassword to use when authenticating to Redis. (default: "") -
redis_aliasAlias for redis node addr, comma separated. (default: "") -
redis_filePath to file containing one or more redis nodes, separated by newline. This option is mutually exclusive with redis.addr. Each line can optionally be comma-separated with the fields. -
namespaceNamespace for the metrics. (defaults "redis") -
userUser under whom to start redis exporter. (default: "root")
redis_exporter 'main' do redis_addr 'redis://db01.example.com:6379,redis://10.0.0.1:6379' redis_password 'password_one,password_two' redis_alias 'example_production,example_staging' end
snmp_exporter
This exporter needs a custom generated config file. Read more here and here. For test purposes and the most basic usage you can grab a default snmp.yml which is located here: /opt/snmp_exporter-PASTE_CURRENT_VERSION.linux-amd64/snmp.yml
-
web_listen_addressAddress to listen on for web interface and telemetry. (default: ":9116") -
log_levelOnly log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] -
log_formatWhere to send log files. (default: "logger:stdout") -
config_filedefault: '/etc/snmp_exporter/snmp.yaml' -
custom_optionsAny other raw options for your configuration if defined proterties are not satisfying your needs.
snmp_exporter 'main' do config_file "/opt/snmp_exporter-#{node['prometheus_exporters']['snmp']['version']}.linux-amd64/snmp.yml" end
wmi_exporter
Expects the Chocolatey package manager to already be installed. This is up to individuals to provide by including the Chocolatey cookbook in their own wrapper cookbooks.
-
version, String, default: '0.2.7' -
enabled_collectors, String, default: 'cpu,cs,logical_disk,net,os,service,system' -
listen_address, String, default: '0.0.0.0' -
listen_port, String, default: '9182' -
metrics_path, Strin, default: '/metrics'
Use the given defaults or set the attributes...
node['prometheus_exporters']['wmi']['version']['listen_interface']node['prometheus_exporters']['wmi']['listen_address']node['prometheus_exporters']['wmi']['listen_port']node['prometheus_exporters']['wmi']['metrics_path']
and add recipe['prometheus_exporters::wmi] to your run_list.
Discovery
Each exporter will set an attribute when it's enabled, in the form of node['prometheus_exporters'][exporter_name]['enabled']. This makes it possible to search for
exporters within your environment using knife search or from within other cookbooks using a query such as:
knife search node 'prometheus_exporters_node_enabled:true'
This query will return all nodes with configured node exporters which can be used for automatically configuring Prometheus servers.
Known Issues
- The snmp_exporter requires a configuration file that is usually created by a config generator. Currently this functionality must be provided by a wrapper cookbook.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
prometheus_exporters
0.9.0
- [Viktor Radnai] - Add process_exporter
0.8.3
- [Edwin Mourant] - Smaill fix to initscript template
0.8.2
- [Viktor Radnai] - blackbox_exporter readme.
0.8.1
- [Kirill Kuznetsov] CHANGELOG update
- [Kirill Kuznetsov] RuboCop offences fix
- [Kirill Kuznetsov] Add 'enabled' attribute for wmi_exporter
0.8.0
- [Yousef Alam] - Add blackbox_exporter
- [Viktor Radnai] - Small fix to postgres_exporter binary's symlink
0.7.0
- [Kieren Scott] - Add mysqld_exporter
- [Matt Mencel] - Add wmi_exporter
- [Viktor Radnai] - Add 'enabled' attribute for using with Chef search
- [Viktor Radnai] - Fix: Remove unnecessary install step from redis exporter start action
- [Viktor Radnai] - Fix: quote environment variable values in init script
0.6.1
- [Kirill Kuznetsov] - fixed #7
- [Kirill Kuznetsov] - fixed exporter services naming; it's possible to install more than one copy of an exporter with a different service name
- [Denis C.] - node_exporter port attribute for
recipe[prometheus_exporters::node]
0.6.0
- [Kirill Kuznetsov] - Chef 14 support was tested
- [Kirill Kuznetsov] - Ubuntu 18.04 support was tested
- [Kirill Kuznetsov] - Some Ubuntu 14 test were dropped because Chef 14 breakes the support of service creation on Ubuntu 14
- [Kirill Kuznetsov] - node_exporter version upgrade: 0.16.0
- [Kirill Kuznetsov] - postgres_exporter version upgrade: 0.4.6
- [Kirill Kuznetsov] - redis_exporter version upgrade: 0.18.0
- [Kirill Kuznetsov] - snmp_exporter version upgrade: 0.10.0
- [Kirill Kuznetsov] - New docker-based Kitchen & Travis CI configurations
- [Kirill Kuznetsov] - Conventional test configuration for Test Kitchen was updated
0.4.8
- [Kirill Kuznetsov] - postgres_exporter update: 0.4.2
- [Kirill Kuznetsov] - redis_exporter update: 0.15.0
0.4.7
- [Kirill Kuznetsov] - Travis CI integration for automated tests.
0.4.6
- [Kirill Kuznetsov] - node_exporter version upgrade: 0.15.2
- [Kirill Kuznetsov] - Forcing more RuboCop style fixes
0.4.5
- [Kirill Kuznetsov] - Bugfix redis_exporter systemd unit creation: untar should be done before systemd unit creation
- [Kirill Kuznetsov] - postgres_exporter version upgrade: 0.3.0
- [Kirill Kuznetsov] - redis_exporter version upgrade: 0.13
- [Kirill Kuznetsov] - snmp_exporter version upgrade: 0.8.0
- [Kirill Kuznetsov] - snmp_exporter's options now have two dashes instead of one
- [Kirill Kuznetsov] - Test cookbooks should be placed into
test/cookbooksinstead oftest/integration/cookbooks - [Kirill Kuznetsov] - Default InSpec test file was renamed to
deafult_spec.rb - [Kirill Kuznetsov] - Test Kitchen configuration: centos-6/7, ubuntu-14/16, chef-12/13
- [Kirill Kuznetsov] - README: node_exporter, redis_exporter, snmp_exporter sections were updated
0.4.2
- [Viktor Radnai] - Bugfix for starting redis process as the specified user
0.4.1
- [Viktor Radnai] - Split log directories to fix logfile permission issue when exporters aren't running as root
- [Viktor Radnai] - Bugfixes for postgres_exporter
- [Viktor Radnai] - Improvements for tests
- [Viktor Radnai] - Added checksum for SNMP exporter
0.4.0
- [Viktor Radnai] - Added tests
- [Viktor Radnai] - Improved service configuration for all exporters
- [Viktor Radnai] - Fixed errors reported by
cookstyle - [Viktor Radnai] - Merged changes from Matt Mencel's repo (https://github.com/WIU/chef-prometheus-exporters.git)
- [Matt Mencel] - CentOS Support: updated only_if and not_if in node_exporter service
- [Matt Mencel] - Chef Warnings: Fixed Chef warnings in upstart template
0.3.0
- [Kirill Kuznetsov] - node_exporter version bump:
0.15.0 - [Kirill Kuznetsov] - BREAKING: the new cmd syntax brings the need for a new resource properties.
0.2.1
- [Kirill Kuznetsov] - enable weave network interface monitoring by default to alert on its stauts.
- [Kirill Kuznetsov] - it now depends on
systemdcookbook in general
0.2.0
- [Kirill Kuznetsov] - new systemd cookbook with new lwrp syntax
- [Kirill Kuznetsov] - new
redis_exporterresource to install redis_exporter. - [Kirill Kuznetsov] - set correct mode for postgres_exporter executable
- [Kirill Kuznetsov] - surround attributes for postgresql exporter in quotes.
0.1.3
- [Matt Mencel] - CentOS Support: updated only_if and not_if in node_exporter service
- [Matt Mencel] - Chef Warnings: Fixed Chef warnings in upstart template
0.1.2
- [Kirill Kuznetsov] - PostgreSQL Exporter resource.
- [Kirill Kuznetsov] - more options for upstart service template: env & setuid.
- [Kirill Kuznetsov] - default ignored mount points for Node Exporter.
0.1.0
- [Kirill Kuznetsov] - Initial release with
node_exportersupport.
Collaborator Number Metric
0.9.0 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.9.0 passed this metric
Foodcritic Metric
0.9.0 passed this metric
No Binaries Metric
0.9.0 passed this metric
Testing File Metric
0.9.0 passed this metric
Version Tag Metric
0.9.0 passed this metric
0.9.0 failed this metric
0.9.0 passed this metric
Foodcritic Metric
0.9.0 passed this metric
No Binaries Metric
0.9.0 passed this metric
Testing File Metric
0.9.0 passed this metric
Version Tag Metric
0.9.0 passed this metric
0.9.0 passed this metric
0.9.0 passed this metric
Testing File Metric
0.9.0 passed this metric
Version Tag Metric
0.9.0 passed this metric
0.9.0 passed this metric
0.9.0 passed this metric