Re: Accessing to nginx access_log

  • From: Ruben Rubio Rey <tk421.1@xxxxxxxxx>
  • To: pooka@xxxxxx
  • Date: Fri, 22 Apr 2016 10:06:37 +1000


  1 - This example sets the access_log to /dev/null, and the error_log is
redirected to stderr which is displayed in the qemu terminal. How can I
have access to the access_log ? (you can also view this question in
stackoverflow
<http://stackoverflow.com/questions/36706926/rump-unikernel-nginx-logs>)


I guess it depends on your use case.  For example, you can configure a
block device with a file system, and log to that.  Or, you can configure
access_log to appear on the console and read it from there.

The usability interface for logging is really more of a question for the
Orchestrating System (OS) built on top of the Rumprun unikernel.


  2 - Many applications generates information that requires persistence.
How
could I enable persistence in a rump unikernel ?


I assume that by persistence you mean persistence of data across
instances.  Again, it depends on your use case.  For example, you can use
cloud storage, or a "local" file system (where "local" might mean on the
cloud -- the cloud is recursively confusing).


I am trying to do some things with rump kernels to put my head around how
this technology works. As you said, my current questions might not be with
rump kernels it-self but with the Orchestrating System. I am aware that it
is also possible to send the logs to the console or to a remote syslog, but
I would like to try to store data locally.

I looked at *rumprun-nethack* and I tried to extend "nginx static server"
to log information into /var/log/nginx/access_log. I have not been
completely successful, and I am not sure what I am doing wrong.

1) I created a ext3 filesystem (btw I noticed that nethack is using ext2)

2) modified nginx.conf

    #access_log    /dev/null;
    access_log    /var/log/nginx/access_log;

3) rebuilt data.iso

4) Run rumprun qemu adding a new block

rumprun qemu -i -M 128   -I if,vioif,'-net tap,script=no,ifname=tap0'  \
    -W if,inet,static,10.0.120.101/24   \
    -b images/data.iso,/data \
    -b log.ext3,/var/log/nginx \
     -- ./nginx.bin -c /data/conf/nginx.conf

nginx works, the "access_log" file is created but no information is stored
there.



The remaining issue is how to get the application to sync its data to a
clean state.  Some applications support an "in-band" method for signalling
a sync, e.g. rumprun-nethack will save the game when the user presses "S".
For applications which don't support that, normally a signal is used.  With
rump kernels and therefore Rumprun taking heed of the "signals are evil"
tautology, the signal approach won't work out-of-the-box.  Some code
remains to be conjured up to address the general case.


I am afraid that I might be facing this problem, but I am not sure about
it. Any help is appreciated!

Regards,
Ruben

Other related posts: