2015-01-28 17 views
6

Tôi có một ngăn xếp Opsworks với Lớp Node.js và Ứng dụng Node.js. Tôi đang tự hỏi nếu có ai biết nơi trên một ubuntu 14.04LTS dụ giao diện điều khiển các bản ghi từ ứng dụng của tôi đang được in. Tôi biết opsworks sử dụng monit để chạy ứng dụng của tôi nhưng tôi không chắc chắn nơi nó xuất ra các bản ghi.Node.js Nhật ký bảng điều khiển của OpsWorks Layer

Cảm ơn!

Trả lời

7

vì vậy, khó chịu đủ, cấu hình Monit trả lại cho Node.js ứng dụng trên Opsworks không gửi ra bất cứ nơi nào! Source for this claim. (Điều này làm tôi ngạc nhiên khi tôi biết về nó!)

Những gì tôi khuyên bạn nên làm là ghi đè mẫu đó - xem the OpsWorks documentation on overriding templates: về cơ bản tất cả những gì bạn cần làm là sao chép dán cấu hình Monit từ Amazon, nhưng thay đổi dòng 2 để chuyển hướng đầu ra vào một tập tin, như tôi làm dưới đây vậy:

start program = "/bin/bash -c 'cd <%= @deploy[:deploy_to] %>/current ; source <%= @deploy[:deploy_to] %>/shared/app.env ; /usr/bin/env PATH=$PATH:/usr/local/bin PORT=<%= @deploy[:nodejs][:port] %> NODE_PATH=<%= @deploy[:deploy_to] %>/current/node_modules:<%= @deploy[:deploy_to] %>/current /usr/local/bin/node <%= @monitored_script %> &> <%= @deploy[:deploy_to] %>/current/log/production.log'"

+0

cảm ơn! yeah, thats lạ rằng họ không gửi đầu ra bất cứ nơi nào. – mu888

+0

Cảm ơn RyanWilcox! Tôi đã thêm ghi đè tương tự vào [aws-cookbook-boilerplate] (https://github.com/dmarcelino/aws-cookbook-boilerplate/blob/master/opsworks_nodejs/templates/default/node_web_app.monitrc.erb#L2) . –

+0

Cảm ơn vì điều này - nhưng làm thế nào để bạn truy cập vào nhật ký và nơi để tìm kiếm nó khi bạn SSH cho cá thể? Cảm ơn! – Leo

-2

Trừ khi hành vi của console.log bị thay đổi, node sẽ xuất console.log nhật ký cho đầu ra tiêu chuẩn của ứng dụng (stdout). Nếu bạn đang chạy ứng dụng nút của mình trong bảng điều khiển hoặc sử dụng ssh, bạn sẽ thấy nhật ký ở đó. Nếu không, hãy thử chuyển hướng stdout của ứng dụng của bạn vào một tập tin để bạn có thể nhìn thấy nó ngay cả khi bạn chạy nó mà không có một giao diện điều khiển, theo cách này: node myapp.js > logfile

Một cách ưa thích sẽ được sử dụng Forever để chắc chắn rằng bạn ứng dụng là liên tục trên và ở đó bạn có thể chuyển hướng đầu ra của bạn (cả stdout và stderr) như sau:

/>forever -o forever.out -e forever.err myapp.js 
1

tôi thấy các bản ghi bằng cách làm như sau (tương tự như bình luận @ RyanWilcox của):

  1. tôi tìm thấy tôi "hiện tại" triển khai trong/srv/www/{APP NAME}/curren t/
  2. file niêm yết, tôi có thể thấy liên kết tượng trưng thư mục log (log nên symlinked một cái gì đó giống như/srv/www/{APP NAME}/chia sẻ/log
  3. Tôi chạy vào một vấn đề cấp phép trong khi cd để thư mục này, vì vậy tôi chuyển sang sử dụng siêu không có mật khẩu bằng cách sử dụng lệnh "sudo su" và sau đó tôi có thể truy cập vào thư mục
  4. cuối cùng trong thư mục nhật ký, tôi có thể thấy nodejs console log cho stderr và stdout

... và cha của Bob là cha của cha bạn.

1

Bạn có thể tìm thấy nó trong thư mục ứng dụng sau đó bạn sẽ tìm thấy con đường này chia sẻ/log

ví dụ: /srv/www/my_app/shared/log

Các vấn đề liên quan