GSOC2013

From Pandora FMS Wiki
Jump to: navigation, search

Gsoc2013.png



1 Google Summer of Code 2013

This is a list of proposals for participate in GSOC 2013. All projects will be managed by Artica ST [1] and related projects are Pandora FMS and Integria IMS.

1.1 Pandora FMS Event Viewer integration with Google Cloud Messaging for Android

In GSOC 2012 we develop a Pandora FMS event viewer for Android. This app takes the event information from the REST API provided by Pandora FMS 4.x. This first version takes the information by doing polling, that makes system consume too much battery and hit the server with many requests. This project require skills in Java programming and other scripting language (PHP, Perl or Python).

The goal for this project is to get event information from a Pandora FMS server by using the Google Cloud Messaging for android. This will be done in two main tasks:

  1. Development of the Android part. That means: receive the raw message from GCM and showing in the current interface). Will be developed in Java.
  2. Development of the Pandora FMS Server gateway to GCM. This will be done as an external application which will read directly from the database, and will export event information to GCM. This could be developed in Perl, PHP or Python.

The project is not only a pure development project, it also need good documentation skill to define how to do the GCM registration, and configuration of all components included.

In addition to main goals, there are several improvements to be done:

  1. . Show aditional event information in a popup window.
  2. . Integrate the event viewer with the new mobile console (via web redirection).
  3. . Interface improvements.

(*) See more about GCM here: http://developer.android.com/google/gcm/index.html (*) See more about Pandora Event Viewer: https://play.google.com/store/apps/details?id=pandroid_event_viewer.pandorafms


1.2 Integria IMS integration with Google Services

Integria IMS [2] is an internal management tool to manage projects, tasks and teams of people. This project require PHP coding skills.

This project will sub-divided in three different subprojects:

1.2.1 Calendar integration

The purpose of this project is to integrate Integria with Google calendar. At this time Integria has a calendar to:

-> Define project milestones. -> Define task/project deadlines. -> Show private appointments.

By integrating Google Calendar with Integria IMS's calendar, we will help organization to keep people coordinated and use all project information managed by integria in the people's calendar, sharing that information.

This integration should be done in both directions: Google to integria and vice-versa.

1) Exporting information from integria to google calendar, by using a cron executed code (php). The information needed to sync calendar will be stored in the user record, and managed by the own user. Users without this information will not be synchronized.

2) Exporting information from Google calendar to Integria agenda: Integria has several planification systems, the regular one (project administration) which will use the calendar integration, but for the individual task management (commonly known as "todo"). This will be exported and imported from google task system.

1.3 Netflow graphical data analisys for Pandora FMS

Netflow is an standard for analyze network traffic. Pandora FMS supports it from 5.0 version, by using another OpenSource project called Nfdump. Pandora FMS already implements a few operations to get human-readable information from the registered information in nfdump (flows "or chains" of network traffic, which contains source ip address, destination ip address, src port, dst port, payload (size) and timestamp).

Netflow information is useful to look on patterns, specific info (by pcap expression filtering) and timed listings. Our idea is to create some new visual analisys tools by using the latest HTML5/Javascript technology. The source for the traffic will be nfdump, and we will use Pandora FMS as "front-end" to show the information gathered by nfdump (the netflow collector). Main operation will be like this:

User request -> Pandora FMS / PHP Code
PHP Code -> System call to ndfump() -> Output processed by the PHP code. 
PHP Code processing -> Javascript graph display.

Nfdump report the information in CSV format. So student code should process this information in memory and produce arrays and dynamic structures (hashes) to feed javascript graph library.

We will use D3 Library to render information [3]

These are our main ideas, but we expect students to add more ideas and valuable suggestions to current ones:

1.3.1 Connection pairs / traffic volume

Display in a visual graph [4] the relations between pair of IP's addresses.



Netpairs.png



This information will show the X most relevant connections in a given period. Thick of line will represent volume in traffic volume. Information will be requested to ndfump via command line. Parsing of the information will be need to be done in PHP.

1.3.2 Connection pairs

Same idea as before, but traffic is not important here, so we can show much more pair information here, limiting the maximum IP's showed on a arbitrary / configuration (something between 300 and 500 ips).



Netpairs2.png



Reference: [5]

1.3.3 Browseable Network information tree

Show the total traffic for each IP, and each TCP/SRC port on a tree view, using this graph as support:



Netinfotree.png



Reference: [6]

1.3.4 IP/Port grouping

Use this graph to show IP/port traffic for each IP and each port. This will help to identify high traffic IPs and most heavy traffic ports.



Bolitas.png



Reference: [7]

1.4 External links