Use Saltstack to deploy a full monitoring and supervision stack
#cfgmgmtcamp18 Arthur Lutz ‐ Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
Use Saltstack to deploy a full monitoring and supervision stack - - PowerPoint PPT Presentation
Use Saltstack to deploy a full monitoring and supervision stack #cfgmgmtcamp18 Arthur Lutz Logilab #cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab (part of) who am I Arthur Lutz Logilab Python dev / Sysadmin / Debian /
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
base: '*':
'saltmaster.local':
base: 'I@role:sensu-client':
'I@role:sensu-server':
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
{{ salt['mine.get']('role:netdata-master', 'network.interface_ip' expr_form='pillar').values()[0] }}
Sensu . pillars :
{% set rabbitmq = salt.saltutil.runner("mine.get", tgt='role:rabbitmq', fun="network.interface_ip", tgt_type='pillar').values() %}
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
Carbon returner to push metrics from application
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
_modules folder
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
def stats(): ''' Provide stats from celery tasks via app.inspect.stats() [snip] ''' ret = __salt__['redis.sentinel_get_master_ip']('name') r_url = 'redis://{}:{}/0' app = Celery(broker=r_url.format(ret['master_host'], ret['master_port'])) stats = app.control.inspect().stats() _clean(stats) return stats
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
salt.execute runner is used to get infrastructure
cloud.profile runner is used to provision new VMs cloud.destroy runner is used to scale down unused
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
Netdata sends system metrics
Salt sends custom metrics to Graphite Sensu executes checks (subscriber based model) Sensu collects metrics and sends them to Graphite Grafana uses the metrics stored in Graphite to
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
MASTER
sensuserver sensuapi
web
minion
storage
minion
client
compute node
minion
client
compute node
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab
#cfgmgmtcamp18 | January 2018 | Arthur Lutz @arthurlutz | Logilab