See www.zabbix.com for the official Zabbix site.

Ideas for Google Summer of Code 2016

From Zabbix.org
Jump to: navigation, search


Information

Google Summer Code logo.png

Unfortunately project was not selected for Google Summer of Code 2016. Please be in touch (IRC), if you want to implement any idea. We will appreciate your help.

Owner: Jan Garaj

What Is Zabbix

Zabbix is an enterprise-class open source distributed monitoring solution.

Zabbix is software that monitors numerous parameters of a network and the health and integrity of servers. Zabbix uses a flexible notification mechanism that allows users to configure e-mail based alerts for virtually any event. This allows a fast reaction to server problems. Zabbix offers excellent reporting and data visualisation features based on the stored data. This makes Zabbix ideal for capacity planning.

Zabbix supports both polling and trapping. All Zabbix reports and statistics, as well as configuration parameters, are accessed through a web-based frontend. A web-based frontend ensures that the status of your network and the health of your servers can be assessed from any location. Properly configured, Zabbix can play an important role in monitoring IT infrastructure. This is equally true for small organisations with a few servers and for large companies with a multitude of servers.

Zabbix is free of cost. Zabbix is written and distributed under the GPL General Public License version 2. It means that its source code is freely distributed and available for the general public.

Skill set

  • C (+some C IDE)
  • git (svn)
  • Linux
  • Docker
  • cgroups

Some tasks will explicitly call out necessary experience or skills but if in doubt please join our IRC channel or send an email to the mailing list.

Advice for students

Recommended documentation:

Contacting Us

If you want to contact the folks involved in mentoring GSoC 2016, you can get a hold of us mainly on IRC:

  • IRC #zabbix
    • Potential Mentors: TBD

Ideas

1.) Implement (CPU) collector in Zabbix C Docker module

  • Technical details: (CPU) collector is already implemented in the Zabbix agent, so probably existing code can be reused. Problem is that C module is not real process and also some persistent storage will be required (maybe shared memory can be used). Collector should be available for any metrics. Typical metrics collected from this collector will be CPU (system/user) usages - they must be normalized, so max value is 100.
  • Difficulty: High
  • Technical requirements: Docker, cgroups, C

2.) Implement cgroup CPU throttling monitoring in Zabbix C Docker module

  • Technical details: Users would like to know about state, when cgroup container has limited CPU usage. It can be event for cluster scaling or symptom of inefficient CPU allocation. It's only about reading of cgroup pseudofile cpu.stat (documentation) and reading of values nr_throttled/throttled_time/...
  • Difficulty: Medium
  • Technical requirements: Docker, cgroups, C

3.) Systemd service monitoring support in Zabbix C Docker module

  • Technical details: Systemd create cgroup for each service, when starting it. It means, that systemd services can be monitored almost as Docker containers in Zabbix C Docker module. Minor changes will be required, mainly about dockerid - systemd service name format <service_name>.service should be used instead of dockerid. Zabbix template App Systemd Services with basic LLD rules, should be also created.
  • Difficulty: Medium
  • Technical requirements: Zabbix, cgroups, C

4.) Improve network monitoring in Zabbix C Docker module

  • Technical details: Network monitoring is only experimental feature. It should to provide all standard Zabbix network metrics.
  • Difficulty: High
  • Technical requirements: Zabbix, cgroups, C

5.) App Docker monitoring support in Zabbix C Docker module

  • Technical details: Implement docker.run item (similar to system.run[command,<mode>]). Docker exec API can be used probably in this implementation.
  • Difficulty: High
  • Technical requirements: Zabbix, cgroups, C

6.) Community yum/apt repo

  • Technical details: Make it easy for the users and setup (free) Zabbix community yum/apt repo + create build scripts for some useful community Zabbix projects - C docker module, C psql module, ...
  • Difficulty: Medium
  • Technical requirements: scripting

7.) Feature requests / bugs / templates

  1. Kubernetes
  2. Google Computer Engine (GCE)
  3. Amazon EC2 Container Service (ECS)
  4. ...