SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
FreeSWITCH Monitoring
Report
Moises Silva
Follow
Staff Software Engineer, LogMeIn at LogMeIn Inc
Oct. 4, 2016
•
0 likes
•
6,113 views
1
of
48
FreeSWITCH Monitoring
Oct. 4, 2016
•
0 likes
•
6,113 views
Download Now
Download to read offline
Report
Software
Dive into infrastructure monitoring best practices applied to FreeSWITCH
Moises Silva
Follow
Staff Software Engineer, LogMeIn at LogMeIn Inc
Recommended
SIP Testing with FreeSWITCH
Moises Silva
11.2K views
•
46 slides
Scaling FreeSWITCH Performance
Moises Silva
14.5K views
•
39 slides
Media Handling in FreeSWITCH
Moises Silva
9.3K views
•
35 slides
FreeSWITCH as a Microservice
Evan McGee
3.3K views
•
24 slides
Homer - Workshop at Kamailio World 2017
Giacomo Vacca
1.7K views
•
45 slides
FreeSWITCH as a Kickass SBC
Moises Silva
12.8K views
•
42 slides
More Related Content
What's hot
Continuous Integration and Kamailio
Giacomo Vacca
2.4K views
•
45 slides
Applying IPv6 to LTE Networks
APNIC
1.9K views
•
42 slides
C# as a System Language
ScyllaDB
303 views
•
25 slides
An SFU/MCU integration for heterogeneous environments
Giacomo Vacca
5K views
•
33 slides
Sipwise rtpengine
Andreas Granig
3.2K views
•
21 slides
FreeSWITCH on Docker
建澄 吳
6.2K views
•
23 slides
What's hot
(20)
Continuous Integration and Kamailio
Giacomo Vacca
•
2.4K views
Applying IPv6 to LTE Networks
APNIC
•
1.9K views
C# as a System Language
ScyllaDB
•
303 views
An SFU/MCU integration for heterogeneous environments
Giacomo Vacca
•
5K views
Sipwise rtpengine
Andreas Granig
•
3.2K views
FreeSWITCH on Docker
建澄 吳
•
6.2K views
Kamailio, FreeSWITCH, and You
Fred Posner
•
377 views
rtpengine and kamailio - or how to simulate calls at scale
Andreas Granig
•
913 views
VPP for Stateless SRv6/GTP-U Translation
Satoru Matsushima
•
672 views
HPCユーザが知っておきたいTCP/IPの話 ~クラスタ・グリッド環境の落とし穴~
Ryousei Takano
•
4.6K views
Prometheus design and philosophy
Docker, Inc.
•
2.7K views
Introduction to GitHub Actions
Knoldus Inc.
•
2.7K views
FastNetMon - ENOG9 speech about DDoS mitigation
Pavel Odintsov
•
8.4K views
Graylog for open stack 3 steps to know why
Vietnam Open Infrastructure User Group
•
1.3K views
Kamailio with Docker and Kubernetes
Paolo Visintin
•
1.6K views
AVX512 assembly language in FFmpeg
Kieran Kunhya
•
263 views
SIP & TLS - Security in a peer to peer world
Olle E Johansson
•
25.6K views
Nmap Basics
amiable_indian
•
5.9K views
How to Configure NetFlow v5 & v9 on Cisco Routers
SolarWinds
•
19.5K views
Linux Networking Explained
Thomas Graf
•
25.4K views
Viewers also liked
FreeSWITCH para usuarios Asterisk
PaloSanto Solutions
2.1K views
•
17 slides
FreeSWITCH: Asterisk con Esteroides
Moises Silva
7.1K views
•
42 slides
OpenR2 in Asterisk
Moises Silva
1.5K views
•
54 slides
Raptor 2
William Amed Tamayo Guevara
375 views
•
26 slides
Raptor web application firewall
Antonio Costa aka Cooler_
1.3K views
•
18 slides
Vulnerabilidades en Aplicaciones Web PHP
Moises Silva
3.6K views
•
20 slides
Viewers also liked
(20)
FreeSWITCH para usuarios Asterisk
PaloSanto Solutions
•
2.1K views
FreeSWITCH: Asterisk con Esteroides
Moises Silva
•
7.1K views
OpenR2 in Asterisk
Moises Silva
•
1.5K views
Raptor 2
William Amed Tamayo Guevara
•
375 views
Raptor web application firewall
Antonio Costa aka Cooler_
•
1.3K views
Vulnerabilidades en Aplicaciones Web PHP
Moises Silva
•
3.6K views
Five Lines I Could Not Draw
Librato, Inc.
•
474 views
Monitoring, graphs and visualisations
morekid
•
6K views
Using NoSQL databases to store RADIUS and Syslog data
Karri Huhtanen
•
10.5K views
The Next Generation Datacenter
Red Hat Events
•
1K views
FreeSWITCH Modules for Asterisk Developers
Moises Silva
•
3.9K views
Next generation alerting and fault detection, SRECon Europe 2016
Dieter Plaetinck
•
1K views
Prometheus (Prometheus London, 2016)
Brian Brazil
•
1.2K views
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
PaloSanto Solutions
•
2.4K views
Configuration manager presentation
jeyg
•
3.9K views
Consul: Service-oriented at Scale
C4Media
•
10.2K views
PMO y SMO, diferencias, similitudes y colaboracion
Victor M. Fernández
•
13.9K views
Monitoring and observability
Theo Schlossnagle
•
7.9K views
Superb Supervision of Short-lived Servers with Sensu
Paul O'Connor
•
485 views
VoIP – vulnerabilities and attacks
n|u - The Open Security Community
•
16.8K views
Similar to FreeSWITCH Monitoring
Webinar - Patch Management: Keep up with security updates by using SysKit
SysKit Ltd
407 views
•
15 slides
Using DevOps to Drive the Agile ALM
TechWell
237 views
•
20 slides
Key implications of PCI DSS v3.1 update
Ajay Unni
992 views
•
15 slides
Two Years of IT Asset Management at Loyola Marymount, Knowledge 2013
Adam Mason
469 views
•
16 slides
TRI and OPRA Overview
TRI, the risk-based monitoring company
577 views
•
30 slides
Tools and practices to use in a Continuous Delivery pipeline
Matteo Emili
150 views
•
25 slides
Similar to FreeSWITCH Monitoring
(20)
Webinar - Patch Management: Keep up with security updates by using SysKit
SysKit Ltd
•
407 views
Using DevOps to Drive the Agile ALM
TechWell
•
237 views
Key implications of PCI DSS v3.1 update
Ajay Unni
•
992 views
Two Years of IT Asset Management at Loyola Marymount, Knowledge 2013
Adam Mason
•
469 views
TRI and OPRA Overview
TRI, the risk-based monitoring company
•
577 views
Tools and practices to use in a Continuous Delivery pipeline
Matteo Emili
•
150 views
Federal Webinar: Security Compliance with SolarWinds Network Management Tools
SolarWinds
•
1K views
Unified Operations Vision
Steve Mushero
•
144 views
Icinga camp ams 2016 icinga2
Assaf Flatto
•
277 views
Icinga Camp Amsterdam - Monitoring – When to start
Icinga
•
3.4K views
Webinar - System Performance Monitoring with SysKit: Servers, Services and Apps
SysKit Ltd
•
370 views
Maximize the Power of Your ERP Data
Global Creative Group, Inc
•
1.2K views
Put an End to Workforce Time Theft
EPAY Systems
•
221 views
Software Release Orchestration and the Enterprise
XebiaLabs
•
1.2K views
Con3187 Creating Industrial Middleware with Java ME and Single-Board Computers
Julio Palma Vázquez
•
727 views
Sumologic <3 Open Source
NGINX, Inc.
•
19 views
HIS 2017 Paul Sherwood- towards trustable software
jamieayre
•
341 views
Using JMeter Scripts in CloudTest for Continuous Testing
Jennifer Finney
•
285 views
Efficient IT operations using monitoring systems and standardized tools - Ici...
Icinga
•
1.5K views
Federal Webinar: RMF, DISA STIGs, and NIST FISMA Compliance using SolarWinds
SolarWinds
•
1.5K views
More from Moises Silva
Interfaces de Scripting para librerias en C
Moises Silva
1.3K views
•
41 slides
Manejo de Medios en FreeSWITCH
Moises Silva
1.3K views
•
42 slides
Implementation Lessons using WebRTC in Asterisk
Moises Silva
28.8K views
•
39 slides
Negociacion de Codecs en Asterisk
Moises Silva
765 views
•
30 slides
Sangoma en el Ecosistema Open Source
Moises Silva
1.1K views
•
44 slides
FreeTDM PRI Passive Recording
Moises Silva
2.3K views
•
25 slides
More from Moises Silva
(7)
Interfaces de Scripting para librerias en C
Moises Silva
•
1.3K views
Manejo de Medios en FreeSWITCH
Moises Silva
•
1.3K views
Implementation Lessons using WebRTC in Asterisk
Moises Silva
•
28.8K views
Negociacion de Codecs en Asterisk
Moises Silva
•
765 views
Sangoma en el Ecosistema Open Source
Moises Silva
•
1.1K views
FreeTDM PRI Passive Recording
Moises Silva
•
2.3K views
Asterisk PRI Passive Call Recording
Moises Silva
•
3.3K views
Recently uploaded
TorfsBot or Not? Evaluating User Perception on Imitative Text Generation (CLI...
Thomas Winters
11 views
•
26 slides
Empowering Advanced Users: Extending OutSystems UI Framework with Openness an...
Bernardo Cardoso
39 views
•
41 slides
The Never Landing Stream with HTAP and Streaming
Timothy Spann
167 views
•
39 slides
Tracking user activity logs using Loggastic #ApiPlatformCon
Paula Čučuk
24 views
•
64 slides
Deckible POV - Point of View
Nick Kellet
6 views
•
4 slides
Document WhatsApp Messaging
Geminate Consultancy Services
8 views
•
45 slides
Recently uploaded
(20)
TorfsBot or Not? Evaluating User Perception on Imitative Text Generation (CLI...
Thomas Winters
•
11 views
Empowering Advanced Users: Extending OutSystems UI Framework with Openness an...
Bernardo Cardoso
•
39 views
The Never Landing Stream with HTAP and Streaming
Timothy Spann
•
167 views
Tracking user activity logs using Loggastic #ApiPlatformCon
Paula Čučuk
•
24 views
Deckible POV - Point of View
Nick Kellet
•
6 views
Document WhatsApp Messaging
Geminate Consultancy Services
•
8 views
LangChain + Docugami Webinar
Taqi Jaffri
•
62 views
Our Story, Orange Nile
ManolodelaFuente1
•
7 views
baklink.docx
AbdAsisHusainSalam
•
5 views
Salesforce @AXA.pdf
PatrickYANG48
•
8 views
Semantic Search_ NLP_ ML.pdf
PlamenaDzharadat
•
13 views
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
Applitools
•
8 views
A Guide to Java Dynamic Proxies and It in Coding
MikeConner22
•
5 views
KaseSync: Revolutionizing Support Experiences With Community-CRM Integration
Grazitti Interactive
•
6 views
OutSystems Security Specialization - Study Help Deck
Fábio Godinho
•
47 views
Climate Impact of Software Testing
Kari Kakkonen
•
54 views
Improving User Experience with Our Website Feedback Tool
Not8 App
•
10 views
Freight Management System
Freightoscope
•
7 views
A sighting of sequence function in Practical FP in Scala
Philip Schwarz
•
9 views
MicroK8s 1.28 - MicroCeph on MicroK8s.pdf
Konstantinos Tsakalozos
•
9 views
FreeSWITCH Monitoring
1.
FreeSWITCH Monitoring ClueCon, August 2016 Moisés Silva <moy@sangoma.com> Manager, So?ware Engineering
2.
We’re Hiring • Linux developers C/C++ or Python • Anywhere in the world, paid relocaJon to Toronto or full Jme remote opportuniJes •
Fun and relaxed work environment 2 Sangoma Technologies - © 2016
3.
Agenda • Monitoring Basics • Metrics and Logs •
AlerJng • TradiJonal SoluJons • Emerging SoluJons • A?erword (FreeSWITCH Oxidized) 3 Sangoma Technologies - © 2016
4.
Monitoring Basics • Monitoring is about knowing what is happening on your systems. The good and the bad • Monitoring helps you with predicJon/ forecasJng. Plan your future growth and anJcipate problems •
Monitoring provides you with the data you need to troubleshoot problems faster 4 Sangoma Technologies - © 2016
5.
Types of Monitoring • ApplicaJon Metric Monitoring • Numbers about applicaJon usage & performance •
You can then use those numbers to define alerts • Service Status Monitoring • Simple binary checks. It’s the service up or not 5 Sangoma Technologies - © 2016
6.
Monitoring Models • Push vs Pull systems • Push: Graphite, StatsD, CollectD, SNMP •
Pull: Prometheus, SNMP • Determines who iniJates the metric transfer • Push systems are more dynamic and tend to require less maintenance • Pull systems require a source of truth and node discovery • Pulling however allows you to more effecJvely detect if a node or applicaJon is down 6 Sangoma Technologies - © 2016
7.
Push Monitoring 7 Sangoma Technologies - © 2016 Monitoring Server Node 1 Node 2 Node 3 Metrics and Check Results
8.
Pull Monitoring 8 Sangoma Technologies - © 2016 Monitoring Server Node 1 Node 2 Node 3 Metric and Check Requests
9.
Metrics • Time series data. Sequence of numerical data points listed in Jme order, usually sampled at regular intervals. • Different granulariJes of data stored and aggregated over Jme on fixed-size storage •
Time series analysis over the data results in fancy graphs • Example databases: RRDTool, Graphite (Whisper), InfluxDB, Prometheus 9 Sangoma Technologies - © 2016
10.
FreeSWITCH Metrics • AcJve Calls • Total Calls •
Failed Calls • RegistraJons • Failed RegistraJons 10 Sangoma Technologies - © 2016
11.
FreeSWITCH Metrics • ASR (Answer / Seizure RaJo) • NER (Network EffecJveness RaJo) •
ACD (Average Call DuraJon) • PDD (Post Dial Delay) 11 Sangoma Technologies - © 2016
12.
Logs • Logs can be a source of metrics when metrics and service checks are not enough • You may want to send alerts based on log pagerns and repeated log errors •
ELK Stack • ElasJc Search • Logstash • Kabana 12 Sangoma Technologies - © 2016
13.
AlerMng • Email, Chat (Slack/HipChat), SMS, etc • Alert based on expected metrics and check failures •
Procure to use percenJles instead of averages • Several alternaJves: Prometheus, Alerta, Flapjack 13 Sangoma Technologies - © 2016
14.
Alert FaMgue 14 Sangoma Technologies - © 2016 • This happens when alerts are triggered too o?en and causes the receiver to be desensiJzed
15.
Alert FaMgue • You know you have it when you start ignoring alerts • Ignoring alerts leads to missing real problems or taking too long to respond to them 15 Sangoma Technologies - © 2016
16.
Alert FaMgue • Warnings might be well intended and in isolaJon work well, however, when they add up, they may cause more harm than good • Adjust your thresholds. Be cauJous with warning vs criJcal severity and adjust your noJficaJons accordingly •
Kill or fix alerts that are firing too o?en. You need a way to easily mute them in the meanJme 16 Sangoma Technologies - © 2016
17.
• They’re all about gejng the job done. And they do: • But at some point you goga ask yourself if there’s a beger way ... TradiMonal SoluMons 17 Sangoma Technologies - © 2016
18.
SNMP 18 Sangoma Technologies - © 2016
19.
SNMP • MIBs/OIDs are cumbersome to use (to say the least) • OIDs available in FreeSWITCH give you number of sessions, acJve calls, sessions per second etc. •
Not easy to collect custom metrics • Very limited informaJon exposed by mod_snmp and overall seems kind of abandoned • The monitoring/management interface in FreeSWITCH needs some work 19 Sangoma Technologies - © 2016
20.
CACTI & RRDtool • Web front end for the RRDtool Jme-series database • Collect metrics from mulJple sources (e.g snmp) •
No one can ever remember how to add a server (convoluted process) 20 Sangoma Technologies - © 2016
21.
CACTI & RRDtool 21 Sangoma Technologies - © 2016 • You end up with ugly graphs like this: It’s beger than nothing though ….
22.
Monitoring Sucks 22 Sangoma Technologies - © 2016 • So much that around 2011 a “Monitoring Sucks” community was set to fix it: • hgps://github.com/monitoringsucks •
hgps://github.com/monitoringsucks/blog-posts • hgps://vimeo.com/monitorama
23.
New SoluMons 23 Sangoma Technologies - © 2016 • Because new is always beger …
24.
Sensu • Monitoring that doesn’t suck (their mogo) • You can reuse nagios/zabbix checks. Sensu was designed as a replacement for aging Nagios installaJons •
No Jme-series database included, you have several opJons available (e.g Graphite, InfluxDB) 24 Sangoma Technologies - © 2016
25.
Sensu • Pull/Push system with an agent • Pub/Sub model with pluggable transports (RabbitMQ, Redis, Amazon SQS) •
Nodes subscribe to groups of checks. The checks are scheduled by the server or the node. • Both service and metric checks supported • Check results can be sent asynchronously by external jobs via raw TCP + JSON (support in a github PR for HTTP) 25 Sangoma Technologies - © 2016
26.
Sensu • HTTP API to read access nodes, checks, silence alarms, etc • Nice and simple dashboard UI •
Dynamic infrastructure. Servers add themselves to the monitoring system. • Composable json configuraJon for easy automaJon (e.g Ansible, SaltStack, Chef etc) 26 Sangoma Technologies - © 2016
27.
Sensu 27 Sangoma Technologies - © 2016 Source: sensuapp.org
28.
Graphite • Time-series storage system • Whisper database format designed as an improvement over RRDtool to manage out of Jme data points •
Carbon-cache is a daemon listening for metrics on a TCP socket (typically used in tandem with StatsD) • Metrics are stored in fixed-size files • Comes with a (quite outdated) UI for metric graphs. This is most o?en used as an hgp endpoint by other graphing tools like Grafana 28 Sangoma Technologies - © 2016
29.
Graphite • Every Jme series is idenJfied by a hierarchy of dot-separated idenJfiers (e.g stats.freeswitch.total_calls) • The text format to send stats to graphite is dead simple: <metric name> <value> <Jmestamp> •
stats.freeswitch.total_calls 50 1470843323 • No further dimensions can be encoded. The typical work-around is to encode them in the metric name: • stats.freeswitch.profile.internal.total_calls 20 1470843323 29 Sangoma Technologies - © 2016
30.
Graphite 30 Sangoma Technologies - © 2016 Source: hgp://www.aosabook.org/en/graphite.html
31.
Prometheus • New Jme-series monitoring system with built-in alerJng • Includes its own Jme-series database format •
MulJ-dimensional data model (fancy term for key/ value pairs labels agached to the Jme-series metrics) • HTTP-based pull model (Prometheus scraps nodes for metrics via HTTP) • Push gateways supported for applicaJons without a naJve HTTP endpoint 31 Sangoma Technologies - © 2016
32.
Prometheus • Client libraries available for many languages so you can instrument your applicaJons • Flexible query language (think SQL for for Jme-series) •
Command line querying tool • Built-in alerJng • Can be federated for aggregaJon of data in mulJple data centers 32 Sangoma Technologies - © 2016
33.
Prometheus • Go standalone applicaJon (no dependencies) • All metrics stored, no loss of granularity •
Similar format to graphite, with the added dimensions: • freeswitch_total_calls{profile=internal} 20 1470843323 33 Sangoma Technologies - © 2016
34.
Prometheus 34 Sangoma Technologies - © 2016
35.
Graphing with Grafana • Powerful dashboard builder applicaJon • Support for many backend databases (Prometheus, Graphite) •
Automate creaJon of dashboards with their HTTP API and JSON dashboard definiJon format • Rich graphing customizaJons, styling, access control, etc 35 Sangoma Technologies - © 2016
36.
Graphing with Grafana 36 Sangoma Technologies - © 2016
37.
Graphing with Grafana 37 Sangoma Technologies - © 2016
38.
mod_prometheus • NaJve Prometheus FreeSWITCH integraJon module wrigen in Rust • Early development (started just a few days ago) but already provides useful metrics out of the box, ready to be scrapped by Prometheus •
Metrics like Calls, Failed calls, RegistraJons, CPS, ASR, etc • You can then use Prometheus Alert manager to create alert trigger rules based on those metrics • hgps://github.com/moises-silva/mod_prometheus 38 Sangoma Technologies - © 2016
39.
mod_prometheus • Installing requires Rust and Cargo (the Rust package/build tool and FreeSWITCH master) # git clone hgps://github.com/moises-silva/mod_prometheus # cd mod_prometheus # cargo build # cp target/debug/libmod_prometheus.so /usr/local/freeswitch/mod (Do not agempt to rename the module to mod_prometheus, it won’t work) 39 Sangoma Technologies - © 2016
40.
mod_prometheus • Then just load it 40 Sangoma Technologies - © 2016
41.
mod_prometheus • Test with curl 41 Sangoma Technologies - © 2016
42.
mod_prometheus • Use custom counters and gauges from the dialplan 42 Sangoma Technologies - © 2016
43.
mod_prometheus • Next Prometheus scrap will get those metrics 43 Sangoma Technologies - © 2016
44.
Final Thoughts • ApplicaJon instrumentaJon must be part of applicaJon development • Monitoring tools of all kinds are available. No excuses for lack of monitoring •
Monitor all the things! 44 Sangoma Technologies - © 2016
45.
AUerword • Bringing Rust to FreeSWITCH. The mod_prometheus module is the first Rust module coming into FreeSWITCH • Rust is a new systems programming language within the same speed range as C/C++ but with memory safety guarantees using an ownership system and move semanJcs by default •
Rust bindings are available by the freeswitchrs project created by Michael Giagnocavo: hgps://gitlab.com/wiresight/freeswitchrs/ • Rust memory safety could make for an interesJng addiJon to the stability of FreeSWITCH. If you’re wriJng modules please consider using Rust 45 Sangoma Technologies - © 2016
46.
QUESTIONS
47.
Contact Us • Sangoma Technologies 100 Renfrew Drive, Suite 100 Markham, Ontario L3R 9R6 Canada • Website hgp://www.sangoma.com/ •
Telephone +1 905 474 1990 x2 (for Sales) • Email sales@sangoma.com Sangoma Technologies - © 2016 47
48.
THANK YOU