Skip to content

GSoC 2016 Proposal: WebSocket for syslog ng (rohansharma777)

Rohan Sharma edited this page Mar 17, 2016 · 1 revision

WebSocket for syslog-ng :

What is Syslog-ng :

Syslog-ng is an application for logging. It is secure and reliable. It collects logs from clients and stores the logs locally or sends it to a logging server. The logs can be easily filtered and processed according to the requirement.

WebSocket for Syslog-ng (What will be delivered):

  1. A sample Web server that is able to receive and handle messages coming from syslog-ng.

  2. A simple WebSocket destination to communicate with the sample Web server and to deliver messages.

WebSocket for Syslog-ng ("What" approach can be followed and "How" it will be useful):

Sample Web server and WebSocket :

Using a sample web server the Client or Admin can first upload the logs to a sample server before uploading it to the main logging server and/or database. The client will send the log data using a secure web socket which will be compliant with "WebSocket Protocol (RFC 6455)" which ensures secure and reliable delivery of log data.

Approach that can be followed:

  • The websocket is supposed to be created in C.

  • The "libwebsocket" library available for C can be used for the WebSocket.

  • "libwebsocket" library provides client and server APIswhich follows RFC 6455 websocket protocol along with http:// and https://.

  • Flex and Bison parsers can be used with C as all the three go well together.

  • The sample web server can be made in such a way that it can receive logs from multiple clients and can process the logs according to the filters by using various parsing techniques.

  • The compiler I will be using is "gcc" on Ubuntu

Timeline:

Communicating with the community and mentors.

  • Planning on how the project should go.

  • Understanding Codebase and the Documentation.

  • Learning more about "libwebsocket" library and using it.

Phase 1 :

  • Analyzing the requirements.

  • Designing and modelling the structure of the project.

  • Start coding.

Phase 2 :

  • Coding for the sample web server.

  • Integration of the websocket with the web server.

  • Analyzing bugs and running tests.

Phase 3 :

  • Refactoring code and optimizing it.

  • Running tests between client and server.

  • Checking for security consistency.

Phase 4 :

  • Documentation.

  • Buffer-Period.

My Availability :

I have to take an exam in April (first 2 weeks). I will try my best to be available for the project in those 2 weeks too. Before and after those two weeks I am totally available for working on the project and will devote maximum possible time for it.

About Me:

  • Name : Rohan Sharma

  • College : Government Engineering College.

  • University : Gujarat Technological University.

  • Branch: Computer Engineering (3rd year Under Graduate)

<more-about-me>

  • Hey there,

  • I am Rohan Sharma a 3rd year undergraduate Computer Engineering student at Government Engineering College - Gujarat(India).

  • I can code in languages like C,C++,Java,Python.

  • I have certifications in Python, Cloud Computing and in Ethical Hacking from various reputed universities in India.

What motivated me ?

  • I love open source.

  • I have done projects using Django and Java technologies.

  • I want to contribute in a C language based project and want to learn more about open source organisations and their workflow.

  • I would love to contibute in a opensource project and learn new technologies and get some experience in it.

</more-about-me>

Ping Me:

Clone this wiki locally