397 liens privés
Toutes les vidéos de monitorama 2015.. miam.
EDIT: erf, le son est dégueulasse!
(ノಠ益ಠ)ノ彡┻━┻
I waz here.
Blablacar sur zabbix:
- 7 jours d'history
- 365 jours de trends
- +25K items
- 200 hosts monitorés
Ce que la prez ne dit pas: 30GB de dataset zabbix sur un cluster galera de 3 nodes (multimaster)
Toolkit open-source pour faire du monitoring en mode "micro-services", par soundcloud.
Video de présentation: https://www.usenix.org/conference/srecon15europe/program/presentation/rabenstein
Billet de présentation: https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud
"""
share zabbix templates, modules and more.
"""
ah, enfin une forge!
Pour la partie serveur, j'utilise jolokia dont le jar est chargé en tant qu'agent de la jvm, de cette façon:
-javaagent:/var/lib/tomcat8/lib/jolokia-jvm-agent.jar=port=7777,host=localhost,agentContext=/jolokia
Pour la partie cliente, j'utilise la lib python 'pyjolokia': https://github.com/cwood/pyjolokia . Ce client me permet de faire un monitoring de la JVM en python. Ce qui est appréciable.
Voici ma méthode pour lister les mbeans, en mode intéractif via une console python:
initialisation
from pyjolokia import Jolokia
j4p = Jolokia('http://localhost:7777/jolokia/')
lister les mbeans dans java.lang:*
j4p.request(type = 'search', mbean='java.lang:')
{u'status': 200, u'timestamp': 1429886584, u'request': {u'type': u'search', u'mbean': u'java.lang:'}, u'value': [u'java.lang:name=Metaspace,type=MemoryPool', u'java.lang:type=Runtime', u'java.lang:type=Threading', u'java.lang:type=OperatingSystem', u'java.lang:name=Code Cache,type=MemoryPool', u'java.lang:type=Compilation', u'java.lang:name=G1 Young Generation,type=GarbageCollector', u'java.lang:name=CodeCacheManager,type=MemoryManager', u'java.lang:name=Compressed Class Space,type=MemoryPool', u'java.lang:type=Memory', u'java.lang:name=G1 Eden Space,type=MemoryPool', u'java.lang:name=G1 Old Gen,type=MemoryPool', u'java.lang:name=G1 Old Generation,type=GarbageCollector', u'java.lang:type=ClassLoading', u'java.lang:name=Metaspace Manager,type=MemoryManager', u'java.lang:name=G1 Survivor Space,type=MemoryPool']}
lister les attributs d'un mbean en particulier, par exemple java.lang:name=G1 Old Generation,type=GarbageCollector
j4p.request(type = 'list', path='java.lang/type=GarbageCollector,name=G1 Old Generation')
{u'status': 200, u'timestamp': 1429886821, u'request': {u'path': u'java.lang/type=GarbageCollector,name=G1 Old Generation', u'type': u'list'}, u'value': {u'attr': {u'CollectionTime': {u'rw': False, u'type': u'long', u'desc': u'CollectionTime'}, u'LastGcInfo': {u'rw': False, u'type': u'javax.management.openmbean.CompositeData', u'desc': u'LastGcInfo'}, u'Name': {u'rw': False, u'type': u'java.lang.String', u'desc': u'Name'}, u'ObjectName': {u'rw': False, u'type': u'javax.management.ObjectName', u'desc': u'ObjectName'}, u'Valid': {u'rw': False, u'type': u'boolean', u'desc': u'Valid'}, u'MemoryPoolNames': {u'rw': False, u'type': u'[Ljava.lang.String;', u'desc': u'MemoryPoolNames'}, u'CollectionCount': {u'rw': False, u'type': u'long', u'desc': u'CollectionCount'}}, u'desc': u'Information on the management interface of the MBean'}}
Voila voila, c'est un peu austère comme méthode mais ça marche.
"""
Abstract: ""#monitoringsucks.""; I can appreciate the sentiment. I used to use Nagios too! However, I can't agree that monitoring sucks. Monitoring is awesome! We observe our systems to understand their behaviour. We do this in various ways like reading logs or taking measurements and, more recently, storing them in a timeseries database such as collectd or graphite. However, the standard practice for alerting is still to check the measurement at the time that it is taken and it is this ""check script"" model of monitoring that is long due for an overhaul. In this talk, I'll start over from first principles: what do we want monitoring to do for us? I'll deconstruct the ""check script"" and rebase its essentials on the humble timeseries. I'll demonstrate simple aggregation and apply some maths and stats to show how monitoring can scale to cluster size without increasing maintenance costs. With worked examples based on real-world situations, you'll learn techniques that you can use to make your monitoring systems more useful.
"""
ce qu'il dit à 10:13 (https://youtu.be/eq4CnIzw-pE?t=613) par rapport aux alertes filesystem est particulièrement intéressant.
Sans aller jusqu'à faire des maths/stats comme le fait le mec avec 'R' en faisant des dérivés, on peut utiliser des outils de monitoring comme Riemann: http://riemann.io/api/riemann.streams.html
"""
%Cpu(s): 24.8 us, 0.5 sy, 0.0 ni, 73.6 id, 0.4 wa, 0.0 hi, 0.2 si, 0.0 st
"""
je conseille 'vmstat 1' pour voir ces valeurs (en plus d'autres métriques liées à la mémoire et aux io notamment) évoluer dans le temps
1 = toutes les secondes
une lib pour faire des graphiques en javascript
constuit sur d3js.
http://metricsgraphicsjs.org/examples.htm
par mozilla
"""
Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.
"""
via http://fr.slideshare.net/brendangregg/performance-tuning-ec2-instances
Open PostgreSQL Monitoring par dalibo (des frenchies qui sont vraiment très compétents dans ce qu'ils font).
on leur doit aussi POWA: http://dalibo.github.io/powa/
un outil complémentaire aux outils de monitoring traditionnels.
c'est pas mal pour analyser les requêtes lentes dans le temps, car on peut zoomer sur le graph et voir les requêtes associées à cet instant t.
Interface alternative à graphite pour éditer les graphs et dashboards.
Le templating de tableau de bord est juste excellent.
voir video: http://www.youtube.com/watch?v=OUvJamHeMpw
sources: https://github.com/torkelo/grafana/
TL;DR;
plein d'outils pour monitorer
"Using SaltStack to monitor servers and applications using SaltStack's modules, returners, and scheduler. See how to link these pieces together to funnel data into apps like Graphite, Librato, and others. The presentation will also take you through the process of building your own custom modules and returners to store application-specific data to any location."
miam.
parfait pour le monitoring des paquets à mettre à jour:
apt-get install update-notifier-common
/usr/lib/update-notifier/apt-check
0;0
/usr/lib/update-notifier/apt-check --human-readable
0 packages can be updated.
0 updates are security updates.