2017-01-14 5 views
-1

Ich habe einen Server mit Ruby, Sinatra, Unicorn und Nginx. Ich erlebte vor kurzem einen Absturz, die neu produziert das Problem, während im Terminal läuft, kann ich sehen, es produziert diese Crash-Protokoll:Nginx-Server mit Unicorn und Sinatra nicht protokolliert Abstürze

/Users/Andrew/.rvm/gems/ruby-2.3.0/gems/tweetstream-2.6.1/lib/tweetstream/client.rb:449:in `block in connect': Failed to reconnect after 6 tries. (TweetStream::ReconnectError) 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:297:in `invoke_callback' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:269:in `rescue in schedule_reconnect' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:264:in `schedule_reconnect' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:92:in `unbind' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1483:in `event_callback' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:194:in `run_machine' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:194:in `run' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/thin-1.7.0/lib/thin/backends/base.rb:73:in `start' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/thin-1.7.0/lib/thin/server.rb:162:in `start' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:in `run' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1506:in `start_server' 
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1444:in `run!' 
    from server.rb:234:in `<main>' 

Aber als ich für ein Fehlerprotokoll früher suchen, ich konnte nichts finden wie oben.

Meine /etc/nginx/nginx.conf Datei zeigt diese als Speicherort der Protokolle:

access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

Aber ich gehe zu diesen beiden Verzeichnissen und das Zugriffsprotokoll zeigt nur alle Anforderungen, wie Ich würde erwarten, und das Fehlerprotokoll ist leer.

Wenn meine Protokolle anderswo gespeichert werden, wie kann ich feststellen, wo das ist? Oder, wenn es aus irgendeinem Grund keine Abstürze protokolliert, wie kann ich sicherstellen, dass es ist?

Antwort

1

Ich würde vorschlagen, dass Sie eine stderr und stdout Protokolle für Einhorn in der Datei unicorn.rb setzen.

# set path to app that will be used to configure unicorn, 
# note the trailing slash in this example 
@dir = File.dirname(__FILE__) + '/' 

worker_processes 2 
working_directory @dir 

timeout 30 

# Specify path to socket unicorn listens to, 
# we will use this in our nginx.conf later 
listen "/home/vagrant/sockets/unicorn.sock", :backlog => 64 

# Set process id path 
pid "#{@dir}tmp/pids/unicorn.pid" 

# Set log file paths 
stderr_path "/var/log/unicorn/stderr.log" 
stdout_path "/var/log/unicorn/stdout.log"