Zabbix 4.2 Data Processing and More Sponsors Gold Sponsors Co-Organizer
Total Page:16
File Type:pdf, Size:1020Kb
Zabbix 4.2 data processing and more Sponsors Gold sponsors Co-organizer 2 What is Zabbix? Zabbix is a universal Open Source enterprise level monitoring solution 3 4 We have found a good balance between giving away free software and having a sustainable growth 5 Free Software Services Services that save your time and money Free Software Services Services that save your time and money Customers in 75+ countries 8 Some of our users 9 Zabbix Real-time Alerting & Data collection problem Visualization Remediation detection 10 Where we are currently? 3.0 LTS 3.2 3.4 4.0 LTS 11 Zabbix 4.0 LTS 12 Data preprocessing { “host": { "name": "Linux #2356", "vms": [{ “name”: “vm034”, “network": { "read": “0xfa673”, "write": “0x45b30” } }, { “name”: “vm076”, “network": { "read": “0x76ab”, “write": “0xff3a” } }] } } 13 Data preprocessing "write": “0x45b30” } }, { “name”: “vm076”, “network": { "read": “0x76ab”, 0x76ab “write": “0xff3a” } }] JSON Path: .host.vms[1].network.read } } 14 Data preprocessing 0x76ab JSON Path: .host.vms[1].network.read 15 Data preprocessing 0x76ab 76ab Regexp: 0x(.*) 16 Data preprocessing 0x76ab 76ab 330379 Hex to Decimal 17 Data preprocessing 0x76ab 76ab 330379 338308096 KB -> bytes 18 Data preprocessing 19 Efficiency Zabbix server mysql[status] 20 Efficiency Master item 21 Efficiency Dependent items 22 Efficiency mysql[questions] mysql[status] Zabbix server mysql[reads] 23 Efficiency mysql[questions] mysql[status] Zabbix server mysql[reads] Performance, less user parameters, all logic in templates 24 Limitations 4.0 LTS 4.2 Not flexible enough for all use cases Relies on user parameters Not anymore! No support of preprocessing for LLD 25 Zabbix 4.2 ETA: March, 2019 26 What is the ultimate goal? 4.2 4.4 5.0 LTS No limits for data processing Versioning for templates Self-contained templates Host and template tags Official guidelines Official templates 27 Validation, discarding 1 values and setting errors 28 Validation In range Matches regular expression Does not match regular expression Check for error in JSON Check for error in XML Check for error using regular expression 29 On fail Preprocessing Discard value Set value to Set error to 30 Discard incorrect values N/A N/A (dropped!) 34 C 34 C 33 C 33 C 32 C 32 C 30 C 30 C 123 F Zabbix 123 F(dropped!) 31 Discard out of range values N/A N/A (dropped!) 34 34 33 33 999 999 (dropped!) 32 32 30 Zabbix 30 32 Use default if does not match OK OK ERR2 NOT OK(default!) OK OK OK OK ERR4 NOT OK(default!) NOT OK Zabbix NOT OK 33 Set error message if not in range 34 34 33 33 32 32 30 30 999 NOT SUPPORTED Zabbix Error:sensor hardware failure, out of range temperature. 34 Extract error message { “status”: “on”} on { “status”: “off”} off { “status”: “off”} off { “err”: “Node no NOT SUPPORTED longer exists”} Zabbix Error: Node no longer exists 35 2 Throttling 36 Process on value change 0 0 0 (dropped) 1 1 1 (dropped) 1 (dropped) 0 Zabbix 0 0 (dropped) 37 Subsampling 0s 0 0s 0 1s 1 1s 1 2s 0 2s 0 (dropped) 3s 0 (dropped) 4s 0 (dropped) 5s 0 6s 0 Zabbix (dropped) 7s 0 7s 0 (dropped) 8s 0 (dropped) 9s 0 38 Who is doing throttling 0 0 0 0 0 0 0 (dropped) 1 1 1 1 1 1 1 (dropped) 1 1 1 (dropped) 0 Agent 0 Proxy 0 0 0 0 0 Server (dropped) 39 Prometheus: 3 JS is not enough 40 Prometheus # HELP cpu_usage_system Telegraf collected metric # TYPE cpu_usage_system gauge cpu_usage_system{cpu="cpu-total",host="host1"} 1.1940298507220641 cpu_usage_system{cpu="cpu0",host="host1"} 1.1940298507220641 cpu_usage_system{cpu="cpu1",host="host1"} 1.1340298507220641 41 Prometheus Prometheus PromQL cpu_usage_system{cpu=“cpu-total"} # HELP cpu_usage_system Telegraf collected metric # TYPE cpu_usage_system gauge cpu_usage_system{cpu="cpu-total",host="host1"} 1.1940298507220641 1.1940298507220641 cpu_usage_system{cpu="cpu0",host="host1"} 1.1940298507220641 cpu_usage_system{cpu="cpu1",host="host1"} 1.1340298507220641 42 Discovery Prometheus PromQL wmi_logical_disk_free_bytes{volume =~”[A-C]:”} [ # HELP wmi_logical_disk_free_bytes Free space in bytes { (LogicalDisk.PercentFreeSpace) "name": "wmi_logical_disk_free_bytes", # TYPE wmi_logical_disk_free_bytes gauge "help": "Free space in bytes wmi_logical_disk_free_bytes{volume="C:"} 3.5180249088e+11 (LogicalDisk.PercentFreeSpace)", wmi_logical_disk_free_bytes{volume="D:"} 2.627731456e+09 "type": "gauge", wmi_logical_disk_free_bytes{volume="HarddiskVolume4"} 4.598e+08 "labels": { "volume": "C:" }, "value": "3.5180249088e+11", "line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11" } ] 43 HTTP endpoint monitoring TEXT HTML JSON HTTP check XML Pre-processing History Prometheus Multiple metrics HTTP data processing 44 4 Ultimate flexibility 45 Challenges Converting C to F return (input - 32 ) * 5 / 9; 46 Challenges return (input.match(new RegExp( Word count param, 'g')) || []).length; 47 Challenges var data = JSON.parse(input); var count = 0; function iterate(obj) { for (var key in obj) { if (typeof(obj[key]) == 'object') { iterate(obj[key]); continue; JSON filtering } if (key == 'id' && obj[key] == param) count++; } } iterate(data); return count; 48 Ultimate test 49 50 No user parameters, no shell scripts, thus easy maintenance Super efficient, less impact on monitored devices due to bulk requests All complex logic is part of the template Templates becomes self-contained Services 5 TimescaleDB 52 Storage options MySQL PostgreSQL Oracle History DB2 ElasticSearch Zabbix 53 Getting performance TimescaleDB MySQL PostgreSQL Oracle DB2 Partitioning 54 And much more! 55 Zabbix 4.2 roadmap Zabbix 4.2 56 Zabbix capabilities 57 58 More than 300 integrations 59 60 61 62 It is a moderated list of all known solutions from community, vendors and partners! 63 https://share.zabbix.com https://www.zabbix.com/integrations 64 Thank you! Some of the used icons made by Freepik from www.flaticon.com.