Giter Club home page Giter Club logo

rlog's Introduction

Romana - network and security automation solution for cloud native applications

Romana is a network and security automation solution for cloud native applications.

  • Romana automates the creation of isolated cloud native networks and secures applications with a distributed firewall that applies access control policies consistently across all endpoints (pods or VMs) and services, wherever they run.
  • Through Romana's topology aware IPAM, endpoints receive natively routable addresses: No overlays or tunnels are required, increasing performance and providing operational simplicity.
  • Because IP addresses are assigned with network topology in mind, routes within the network are highly aggregated, reducing the impact on networking hardware, and allowing more secure configurations.
  • Supports Kubernetes and OpenStack clusters, on premise or on AWS.

Installation

To get started with Romana on Kubernetes, go here.

For OpenStack installations, please contact us by email or on Slack.

We are working on more detailed documentation to cover all the features and installation methods. Reach out to the team via email, Slack or GitHub if you need some help in the meantime.

Additional documentation

Visit http://romana.readthedocs.io/ for the complete documentation.

Code

This repository contains the documentation and installation tools for the Romana project. You can find the application code in the core repository.

Latest stable release: 2.0

Contact Us

rlog's People

Contributors

debedb avatar flashvoid avatar jbrendel avatar pritesh avatar rafaelcn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rlog's Issues

enhancement: rlog joined config file

I'm working on a project utilising a similar config file syntax as rlog does.
The logic consequence was to join them both.
It's working, but rlog complains about unkown or malformed settings:

rlog - Malformed line in config file file:line. Ignored.
rlog - Unknown or illegal setting name in config file file:line. Ignored.

Having multiple config file for a single application is a nightmare for me.
So I decided to comment out corresponding lines in my version of rlog.

What about officially supporting multi function config files instead?

Regards,
Trickx

Provide function to change logging parameters programmatically

Currently, all configuration is done via environment variables. Sometimes, however, it may be useful to change the logging parameters at run time.

We already have a function to change the output stream (for example to a new log file), but it would be nice to also be able to change the other logging parameters.

As an extension of this: It might be good to be able to programmatically query the current parameters in an easy manner. The program could just read the environment variables, but rlog itself could provide a convenient facility for that.

Shouldn't this project distributed as a module?

Since 1.14 (some time ago) we got go modules. If one, in the present day, executes a go get on your repo, expecting it to execute the example.go file in the $GOPATH/pkg/mod/... it won't work as it complains about no go.mod file. How do you feel about adding that?

Allow for reconfiguration at runtime via modifying a config file

This will also add the general ability to configure rlog via config file.

Config files by default should be at $RLOG_CONFIG_ROOT/filename.conf

By default, RLOG_CONFIG_ROOT is assumed to be "/etc/rlog/"

filename is just the filename of the executable. The default of looking for filename.conf can be overwritten with the RLOG_CONFIG_FILE variable, which can be used to set an absolute path to a full filename. That way, multiple executables can utilize the same config file.

rlog will check the config file every N seconds for changes.

The config file simply contains whatever you would have as environment variable assignments:

RLOG_LOG_LEVEL=INFO
RLOG_TRACE_LEVEL=3
...

Environment variables provided at the start of a process take precedence over whatever is in the config file, unless the line in the config file starts with a "!", like so:

RLOG_LOG_LEVEL=INFO
!RLOG_TRACE_LEVEL=3
...

When rlog encounters a log message, it should check how long ago it last checked the config file. If it's more than RLOG_CONF_CHECK_INTERVAL seconds ago, then it should re-read the config file again.

enhancement: allow setting "logger name" a-la-Python

In Python I can do something like

logger = logging.getLogger("foobar")

and foobar gets printed in every line logged by that object.

One use case where this is useful is in Lambdas: by initializing the logger with the lambda name, one can easily filter / see which lambda function emitted the line when using a log aggregation tool, such as CloudWatch or ElasticSearch.

I haven't found a way of obtaining the same with rlog.

Happy to contribute with a PR if needs be.

disable console logging

I see logs are printing in console and log file as well, is it possible to disable console logging and write logs only to log file with rlog?

I tried below in main.go file and it redirectsall the logs from main.go to log file only as expected.
newLogFile, err := os.OpenFile("logs/rlog-output.log", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777)
if err == nil {
rlog.Info("About to change log output. Check /logs/rlog-output.log...")
rlog.SetOutput(newLogFile)
rlog.Info("This should go to the new logfile")
}

But, it won't write logs to log file only, If I use rlog functions in another go file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.