| ======================= |
| Salt Prometheus formula |
| ======================= |
| |
| Power your metrics and alerting with a leading open-source monitoring |
| solution. |
| |
| Sample pillars |
| ============== |
| |
| Configure prometheus server |
| --------------------------- |
| |
| .. code-block:: yaml |
| |
| prometheus: |
| server: |
| version: 2.0 |
| enabled: true |
| dir: |
| config: /srv/volumes/prometheus |
| config_in_container: /opt/prometheus/config |
| bind: |
| port: 9090 |
| address: 0.0.0.0 |
| external_port: 15010 |
| target: |
| dns: |
| enabled: true |
| endpoint: |
| - name: 'pushgateway' |
| domain: |
| - 'tasks.prometheus_pushgateway' |
| type: A |
| port: 9091 |
| - name: 'prometheus' |
| domain: |
| - 'tasks.prometheus_server' |
| type: A |
| port: 9090 |
| kubernetes: |
| enabled: true |
| api_ip: 127.0.0.1 |
| ssl_dir: /opt/prometheus/config |
| cert_name: prometheus-server.crt |
| key_name: prometheus-server.key |
| etcd: |
| endpoint: |
| scheme: https |
| ssl_dir: /opt/prometheus/config |
| cert_name: prometheus-server.crt |
| key_name: prometheus-server.key |
| member: |
| - host: ${_param:cluster_node01_address} |
| port: ${_param:cluster_node01_port} |
| - host: ${_param:cluster_node02_address} |
| port: ${_param:cluster_node02_port} |
| - host: ${_param:cluster_node03_address} |
| port: ${_param:cluster_node03_port} |
| recording: |
| instance:fd_utilization: |
| query: >- |
| process_open_fds / process_max_fds |
| storage: |
| local: |
| retention: "360h" |
| alertmanager: |
| notification_queue_capacity: 10000 |
| config: |
| global: |
| scrape_interval: "15s" |
| scrape_timeout: "15s" |
| evaluation_interval: "1m" |
| external_labels: |
| region: 'region1' |
| |
| Configure alertmanager |
| ---------------------- |
| |
| .. code-block:: yaml |
| |
| prometheus: |
| alertmanager: |
| enabled: true |
| dir: |
| config: /srv/volumes/prometheus |
| bind: |
| address: 0.0.0.0 |
| port: 9093 |
| external_port: 15011 |
| config: |
| global: |
| resolve_timeout: 5m |
| route: |
| group_by: ['region', 'service'] |
| group_wait: 60s |
| group_interval: 5m |
| repeat_interval: 3h |
| receiver: default |
| inhibit_rule: |
| InhibitCriticalWhenDown: |
| enabled: true |
| source_match: |
| severity: 'down' |
| target_match: |
| severity: 'critical' |
| equal: ['region', 'service'] |
| InhibitWarningWhenDown: |
| enabled: true |
| source_match: |
| severity: 'down' |
| target_match: |
| severity: 'warning' |
| equal: ['region', 'service'] |
| InhibitWarningWhenCritical: |
| enabled: true |
| source_match: |
| severity: 'critical' |
| target_match: |
| severity: 'warning' |
| equal: ['region', 'service'] |
| receiver: |
| HTTP-notification: |
| webhook_configs: |
| localhost: |
| url: http://127.0.0.1 |
| send_resolved: true |
| HTTP-slack: |
| slack_configs: |
| slack: |
| api_url: http://127.0.0.1/slack |
| send_resolved: true |
| smtp: |
| email_configs: |
| email: |
| to: test@example.com |
| from: test@example.com |
| smarthost: example.com |
| auth_username: username |
| auth_password: password |
| send_resolved: true |
| #Two endpoints in one receiver |
| Multi-receiver: |
| slack_configs: |
| slack: |
| api_url: http://127.0.0.1/slack |
| send_resolved: true |
| webhook_configs: |
| webhook: |
| url: http://127.0.0.1 |
| send_resolved: true |
| |
| Configure pushgateway |
| --------------------- |
| |
| .. code-block:: yaml |
| |
| prometheus: |
| pushgateway: |
| enabled: true |
| external_port: 15012 |
| |
| Install prometheus as service |
| ------------------------------------- |
| |
| .. code-block:: yaml |
| |
| parameters: |
| prometheus: |
| server: |
| is_container: false |