SlideShare a Scribd company logo
1 of 41
Monitoring Your Data Center  Using Apache and Ganglia ,[object Object],[object Object],[object Object],[object Object]
Agenda Ganglia Monitoring ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introduction and Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ganglia Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ganglia Architecture
Ganglia Web Frontend ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ganglia Customized Web Front-end
Deploying Ganglia Monitoring ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond Gathering & Gmetad Aggregation Agents
Gmond – Metric Gathering Agent ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond – Metric Gathering Agent ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond – Global Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond – Cluster Configuration ,[object Object],[object Object],[object Object],[object Object]
Gmond – Network Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond – Configuration Example globals  {  daemonize = yes  setuid = yes  user = nobody  debug_level = 0  max_udp_msg_len = 1472  mute = no  deaf = no  host_dmax = 0 /*secs */  cleanup_threshold = 300 /*secs */  gexec = no  }  cluster  {  name = “My Cluster"  owner = “Administrator"  latlong = “N37.37 W122.23"   url = “http://www.moreinfo.org"  }  udp_send_channel  {  mcast_join = 239.2.11.71  port = 8649  ttl = 1  }  udp_recv_channel  {  mcast_join = 239.2.11.71  port = 8649  bind = 239.2.11.71  }  tcp_accept_channel  {  port = 8649  }
Gmond – Access Control  ,[object Object],[object Object],[object Object],[object Object],acl { default = "deny" access { ip = 192.168.0.4 mask = 32 action = "allow" } } acl { default = "allow" access { ip = 192.168.0.0 mask = 24 action = "deny" } access { ip = ::ff:1.2.3.0 mask = 120 action = "deny" } }
Gmond – Metric Collection Groups ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond – Configuration Example collection_group  {  collect_once = yes  time_threshold = 20  metric {  name = "heartbeat"  }  }  collection_group  {  collect_once = yes  time_threshold = 1200  metric {  name = "cpu_num"  }  metric  {  name = "cpu_speed"  }  metric  {  name = "mem_total"  }  metric  {  name = "swap_total"  }  … }  collection_group  {  collect_every = 20  time_threshold = 90  metric  {  name = "load_one"  value_threshold = "1.0"  }  metric  {  name = "load_five"  value_threshold = "1.0"  }  … }  collection_group  {  collect_every = 80  time_threshold = 950  metric  {  name = "proc_run"  value_threshold = "1.0"  }  metric  {  name = "proc_total"  value_threshold = "1.0"  }  }
Gmetad – Metric Aggregation Agent ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmetad – Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmetad – Configuration Example data_source  "my cluster" 10 localhost  my.machine.edu:8649 1.2.3.5:8655 data_source  "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651 data_source  "another source" 1.3.4.7:8655  1.3.4.8 trusted_hosts  127.0.0.1 169.229.50.165 my.gmetad.org xml_port  8651 interactive_port  8652 rrd_rootdir  "/var/lib/ganglia/rrds"
Round-Robin Database Storage
Round-Robin Database (RRD) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ganglia Default RRD Definition ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Retrieving Data, Generating Graphs and Interacting with an RRD File ,[object Object],[object Object],[object Object],[object Object],[object Object]
Extending the Ganglia Monitoring System
Gmetric Service Level Metrics Utility ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmetric Command Line ,[object Object],Usage: gmetric [OPTIONS]...  -h, --help Print help and exit -V, --version  Print version and exit -c, --conf=STRING  The configuration file to use for finding send channels (default=`/etc/gmond.conf') -n, --name=STRING  Name of the metric -v, --value=STRING  Value of the metric -t, --type=STRING  Either string|int8|uint8|int16|uint16|int32|uint32|float|double -u, --units=STRING  Unit of measure for the value e.g. Kilobytes, Celcius (default=`') -s, --slope=STRING  Either zero|positive|negative|both  (default=`both') -x, --tmax=INT  The maximum time in seconds between gmetric calls (default=`60') -d, --dmax=INT  The lifetime in seconds of this metric  (default=`0')
Gmond Pluggable Metric Modules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond Module Development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond Example Module mmodule example_module; static int  ex_metric_init (apr_pool_t *p) { apr_array_header_t *list_params =  example_module.module_params_list srand(time(NULL)%99); return 0; } static void  ex_metric_cleanup  ( void ) { } static g_val_t  ex_metric_handler  ( int  metric_index ) { g_val_t val; switch (metric_index) { case 0: val.int32 = rand()%99; return val; case 1: val.int32 = 50; return val; } /* default case */ val.int32 = 0; return val; } static const Ganglia_25metric  ex_metric_info [] =  { {0, "Random_Numbers", 90,   GANGLIA_VALUE_UNSIGNED_INT, "s", both",    "%u", UDP_HEADER_SIZE+8,    "Example module metric (random numbers)"}, {0, "Constant_Number", 90,   GANGLIA_VALUE_UNSIGNED_INT, "Num", "zero",   "%hu", UDP_HEADER_SIZE+8,    "Example module metric(constant number)"}, {0, NULL} }; mmodule  example_module  = { STD_MMODULE_STUFF, ex_metric_init, ex_metric_cleanup, ex_metric_info, ex_metric_handler, };
Gmond Example Module Configuration modules { module { name = "example_module" path =  "/usr/lib/ganglia/modexample.so"  Param RandomMax { Value = 75 } Param ConstantValue { Value = 25 } } } /* Define Collection Groups */  collection_group {  collect_every = 10  time_threshold = 50  metric {  name = "Random_Numbers" value_threshold = 30.0  }  } collection_group {  collect_once = yes  time_threshold = 20  metric {  name = "Constant_Number" }  }
Gmond Python Module Development ,[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond Python Module Development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond Python Module Development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gmond Python Module Development Curve_Max = 15  v = int(1) inc = int(1) count = 0 def metric_init(params): global Curve_Max if ‘CurveMax’ in params: Curve_Max = int(params[‘CurveMax’]) d = {‘name’: ‘Curve_Metric’,  ‘ call_back’: curve_handler,  ‘ time_max': int(60), ‘ value_type’: ‘uint’,  ‘ units’: ‘Seconds’, ‘ slope’: ‘both’,  ‘ format’: ‘%u’, ‘ description’:    ‘ Shows a uniform curve’} return d def curve_handler(name): global v,count,inc,Curve_Max v += inc count += 1 if count > Curve_Max: count = 0 inc = -inc return int(v) def metric_cleanup(): pass
Gmond Python Module Deployment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuring Gmond for Python ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions
 
[object Object],[object Object]

More Related Content

What's hot

What's hot (20)

Transparent Hugepages in RHEL 6
Transparent Hugepages in RHEL 6 Transparent Hugepages in RHEL 6
Transparent Hugepages in RHEL 6
 
RPM (LINUX)
RPM (LINUX)RPM (LINUX)
RPM (LINUX)
 
Users and groups
Users and groupsUsers and groups
Users and groups
 
Linux Troubleshooting
Linux TroubleshootingLinux Troubleshooting
Linux Troubleshooting
 
Linux directory structure by jitu mistry
Linux directory structure by jitu mistryLinux directory structure by jitu mistry
Linux directory structure by jitu mistry
 
Ipc in linux
Ipc in linuxIpc in linux
Ipc in linux
 
package mangement
package mangementpackage mangement
package mangement
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic Commands
 
An introduction to SSH
An introduction to SSHAn introduction to SSH
An introduction to SSH
 
Linux file system
Linux file systemLinux file system
Linux file system
 
Linux boot process – explained
Linux boot process – explainedLinux boot process – explained
Linux boot process – explained
 
Basic commands of linux
Basic commands of linuxBasic commands of linux
Basic commands of linux
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Trace kernel code tips
Trace kernel code tipsTrace kernel code tips
Trace kernel code tips
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
Launch the First Process in Linux System
Launch the First Process in Linux SystemLaunch the First Process in Linux System
Launch the First Process in Linux System
 
Iptables the Linux Firewall
Iptables the Linux Firewall Iptables the Linux Firewall
Iptables the Linux Firewall
 
XMPP
XMPPXMPP
XMPP
 

Viewers also liked

Viewers also liked (17)

Monitoring with Ganglia
Monitoring with GangliaMonitoring with Ganglia
Monitoring with Ganglia
 
Metrics with Ganglia
Metrics with GangliaMetrics with Ganglia
Metrics with Ganglia
 
Monitoring with Nagios and Ganglia
Monitoring with Nagios and GangliaMonitoring with Nagios and Ganglia
Monitoring with Nagios and Ganglia
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
Nagios Conference 2012 - John Sellens - Non-Obvious Nagios
Nagios Conference 2012 - John Sellens - Non-Obvious NagiosNagios Conference 2012 - John Sellens - Non-Obvious Nagios
Nagios Conference 2012 - John Sellens - Non-Obvious Nagios
 
Nagios Log Server - Features
Nagios Log Server - FeaturesNagios Log Server - Features
Nagios Log Server - Features
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
 
Nagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios Network Analyzer - Features
Nagios Network Analyzer - Features
 
Nagios Conference 2013 - John Sellens - Monitoring Remote Locations with Nagios
Nagios Conference 2013 - John Sellens - Monitoring Remote Locations with NagiosNagios Conference 2013 - John Sellens - Monitoring Remote Locations with Nagios
Nagios Conference 2013 - John Sellens - Monitoring Remote Locations with Nagios
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
 
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationMike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
 
Sean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsSean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient Notifications
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical Experience
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
Jesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewJesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture Overview
 
Nagios Conference 2012 - John Sellens - Nagios Indirection
Nagios Conference 2012 - John Sellens - Nagios IndirectionNagios Conference 2012 - John Sellens - Nagios Indirection
Nagios Conference 2012 - John Sellens - Nagios Indirection
 
Time to say goodbye to your Nagios based setup
Time to say goodbye to your Nagios based setupTime to say goodbye to your Nagios based setup
Time to say goodbye to your Nagios based setup
 

Similar to Ganglia Monitoring Tool

Trouble shooting apachecloudstack
Trouble shooting apachecloudstackTrouble shooting apachecloudstack
Trouble shooting apachecloudstack
Sailaja Sunil
 
Presentation iv implementasi 802x eap tls peap mscha pv2
Presentation iv implementasi  802x eap tls peap mscha pv2Presentation iv implementasi  802x eap tls peap mscha pv2
Presentation iv implementasi 802x eap tls peap mscha pv2
Hell19
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
Sidney Chen
 

Similar to Ganglia Monitoring Tool (20)

Ganglia Overview-v2
Ganglia Overview-v2Ganglia Overview-v2
Ganglia Overview-v2
 
Troubleshooting Apache Cloudstack
Troubleshooting Apache CloudstackTroubleshooting Apache Cloudstack
Troubleshooting Apache Cloudstack
 
Trouble shooting apachecloudstack
Trouble shooting apachecloudstackTrouble shooting apachecloudstack
Trouble shooting apachecloudstack
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
Montreal On Rails 5 : Rails deployment using : Nginx, Mongrel, Mongrel_cluste...
Montreal On Rails 5 : Rails deployment using : Nginx, Mongrel, Mongrel_cluste...Montreal On Rails 5 : Rails deployment using : Nginx, Mongrel, Mongrel_cluste...
Montreal On Rails 5 : Rails deployment using : Nginx, Mongrel, Mongrel_cluste...
 
Presentation iv implementasi 802x eap tls peap mscha pv2
Presentation iv implementasi  802x eap tls peap mscha pv2Presentation iv implementasi  802x eap tls peap mscha pv2
Presentation iv implementasi 802x eap tls peap mscha pv2
 
Operating CloudStack: the easy way (automation!)
Operating CloudStack: the easy way (automation!)Operating CloudStack: the easy way (automation!)
Operating CloudStack: the easy way (automation!)
 
Monkey man
Monkey manMonkey man
Monkey man
 
Apache Cheat Sheet
Apache Cheat SheetApache Cheat Sheet
Apache Cheat Sheet
 
Logstash for SEO: come monitorare i Log del Web Server in realtime
Logstash for SEO: come monitorare i Log del Web Server in realtimeLogstash for SEO: come monitorare i Log del Web Server in realtime
Logstash for SEO: come monitorare i Log del Web Server in realtime
 
Network Automation: Ansible 102
Network Automation: Ansible 102Network Automation: Ansible 102
Network Automation: Ansible 102
 
Skydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integrationSkydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integration
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
 
Puppet Data Mining
Puppet Data MiningPuppet Data Mining
Puppet Data Mining
 
Multipath
MultipathMultipath
Multipath
 
Oracle cluster installation with grid and iscsi
Oracle cluster  installation with grid and iscsiOracle cluster  installation with grid and iscsi
Oracle cluster installation with grid and iscsi
 
Memcache as udp traffic reflector
Memcache as udp traffic reflectorMemcache as udp traffic reflector
Memcache as udp traffic reflector
 
Advanced RAC troubleshooting: Network
Advanced RAC troubleshooting: NetworkAdvanced RAC troubleshooting: Network
Advanced RAC troubleshooting: Network
 
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
 

More from sudhirpg (6)

Hardest Thing
Hardest ThingHardest Thing
Hardest Thing
 
Siva
SivaSiva
Siva
 
Paradox
ParadoxParadox
Paradox
 
illusion
illusionillusion
illusion
 
Strange
StrangeStrange
Strange
 
Cercuits Positions 23198
Cercuits Positions 23198Cercuits Positions 23198
Cercuits Positions 23198
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Ganglia Monitoring Tool

  • 1.
  • 2.
  • 3.
  • 4.
  • 6.
  • 8.
  • 9. Gmond Gathering & Gmetad Aggregation Agents
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Gmond – Configuration Example globals { daemonize = yes setuid = yes user = nobody debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no } cluster { name = “My Cluster" owner = “Administrator" latlong = “N37.37 W122.23" url = “http://www.moreinfo.org" } udp_send_channel { mcast_join = 239.2.11.71 port = 8649 ttl = 1 } udp_recv_channel { mcast_join = 239.2.11.71 port = 8649 bind = 239.2.11.71 } tcp_accept_channel { port = 8649 }
  • 16.
  • 17.
  • 18. Gmond – Configuration Example collection_group { collect_once = yes time_threshold = 20 metric { name = "heartbeat" } } collection_group { collect_once = yes time_threshold = 1200 metric { name = "cpu_num" } metric { name = "cpu_speed" } metric { name = "mem_total" } metric { name = "swap_total" } … } collection_group { collect_every = 20 time_threshold = 90 metric { name = "load_one" value_threshold = "1.0" } metric { name = "load_five" value_threshold = "1.0" } … } collection_group { collect_every = 80 time_threshold = 950 metric { name = "proc_run" value_threshold = "1.0" } metric { name = "proc_total" value_threshold = "1.0" } }
  • 19.
  • 20.
  • 21. Gmetad – Configuration Example data_source "my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655 data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651 data_source "another source" 1.3.4.7:8655 1.3.4.8 trusted_hosts 127.0.0.1 169.229.50.165 my.gmetad.org xml_port 8651 interactive_port 8652 rrd_rootdir "/var/lib/ganglia/rrds"
  • 23.
  • 24.
  • 25.
  • 26. Extending the Ganglia Monitoring System
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Gmond Example Module mmodule example_module; static int ex_metric_init (apr_pool_t *p) { apr_array_header_t *list_params = example_module.module_params_list srand(time(NULL)%99); return 0; } static void ex_metric_cleanup ( void ) { } static g_val_t ex_metric_handler ( int metric_index ) { g_val_t val; switch (metric_index) { case 0: val.int32 = rand()%99; return val; case 1: val.int32 = 50; return val; } /* default case */ val.int32 = 0; return val; } static const Ganglia_25metric ex_metric_info [] = { {0, "Random_Numbers", 90, GANGLIA_VALUE_UNSIGNED_INT, "s", both", "%u", UDP_HEADER_SIZE+8, "Example module metric (random numbers)"}, {0, "Constant_Number", 90, GANGLIA_VALUE_UNSIGNED_INT, "Num", "zero", "%hu", UDP_HEADER_SIZE+8, "Example module metric(constant number)"}, {0, NULL} }; mmodule example_module = { STD_MMODULE_STUFF, ex_metric_init, ex_metric_cleanup, ex_metric_info, ex_metric_handler, };
  • 32. Gmond Example Module Configuration modules { module { name = "example_module" path = "/usr/lib/ganglia/modexample.so" Param RandomMax { Value = 75 } Param ConstantValue { Value = 25 } } } /* Define Collection Groups */ collection_group { collect_every = 10 time_threshold = 50 metric { name = "Random_Numbers" value_threshold = 30.0 } } collection_group { collect_once = yes time_threshold = 20 metric { name = "Constant_Number" } }
  • 33.
  • 34.
  • 35.
  • 36. Gmond Python Module Development Curve_Max = 15 v = int(1) inc = int(1) count = 0 def metric_init(params): global Curve_Max if ‘CurveMax’ in params: Curve_Max = int(params[‘CurveMax’]) d = {‘name’: ‘Curve_Metric’, ‘ call_back’: curve_handler, ‘ time_max': int(60), ‘ value_type’: ‘uint’, ‘ units’: ‘Seconds’, ‘ slope’: ‘both’, ‘ format’: ‘%u’, ‘ description’: ‘ Shows a uniform curve’} return d def curve_handler(name): global v,count,inc,Curve_Max v += inc count += 1 if count > Curve_Max: count = 0 inc = -inc return int(v) def metric_cleanup(): pass
  • 37.
  • 38.
  • 40.  
  • 41.