2013-03-15 2 views
2

Кто-нибудь знает, где haproxy записывает журналы на mac osx? Я хочу зарегистрировать безопасные куки, идущие на мой бэкэнд, используя capture cookie _secure len 32.haproxy logging on mac osx

Я проверил Console.app, но журналы там не отображаются.

ответ

2

HAProxy регистрируется в syslog, поэтому вы были прав, чтобы проверить Console.app, чтобы просмотреть результат.

Проблема в том, что на OSX вам сначала нужно настроить syslog, чтобы включить его сетевой прослушиватель.

Вот инструкции, которые работали для меня [source]:

HA Proxy Logging on Lion 
------------------------- 

# To enable haproxy logging we need to change syslogd 
# startup procedure to include its network listener. 

# Backup syslogd start up file 
sudo cp /System/Library/LaunchDaemons/com.apple.syslogd.plist /System/Library/LaunchDaemons/com.apple.syslogd.plist.bakup 


# Convert binary file to xml to be human readable/editable 
sudo plutil -convert xml1 /System/Library/LaunchDaemons/com.apple.syslogd.plist 

# Edit /System/Library/LaunchDaemons/com.apple.syslogd.plist 
# and add the following snippet under the sockets node 

<key>NetworkListener</key> 
<dict> 
    <key>SockServiceName</key> 
    <string>syslog</string> 
    <key>SockType</key> 
    <string>dgram</string> 
</dict> 

# Should read like this now 
<key>Sockets</key> 
<dict> 
    <key>AppleSystemLogger</key> 
    <dict> 
     <key>SockPathMode</key> 
     <integer>438</integer> 
     <key>SockPathName</key> 
     <string>/var/run/asl_input</string> 
    </dict> 
    <key>BSDSystemLogger</key> 
    <dict> 
     <key>SockPathMode</key> 
     <integer>438</integer> 
     <key>SockPathName</key> 
     <string>/var/run/syslog</string> 
     <key>SockType</key> 
     <string>dgram</string> 
    </dict> 
    <key>NetworkListener</key> 
    <dict> 
     <key>SockServiceName</key> 
     <string>syslog</string> 
     <key>SockType</key> 
     <string>dgram</string> 
    </dict> 
</dict> 

# Save the file 

# Convert back to binary file 
sudo plutil -convert binary1 /System/Library/LaunchDaemons/com.apple.syslogd.plist 

# Restart syslogd 
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist 
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist 

# I added the following entry to /etc/syslog.conf 
local2.*      /var/log/haproxy.log 

# Include logging options in haproxy.cfg 
global 
    log 127.0.0.1 local2 debug 

defaults 
    mode http 
    option httplog 
    log global 


# Restart HAproxy 
0

Используйте dtruss на haproxy, чтобы увидеть, где они написаны. Вы должны видеть, что системные вызовы ввода-вывода ввода поступают во время просмотра.

Еще лучше, это с открытым исходным кодом. Просто посмотрите на код.

1

Видя, как я не могу комментировать (бух, репутация) Я хотел бы добавить следующее alanning:

В случае вы используете OS X 10.11+ (El Capitan или новее) и не можете скопировать файл plist (даже с помощью sudo), вы можете столкнуться с новой Системной Integrity Protection от Apple.

Чтобы отключить SIP:

  1. перезагрузки в режиме восстановления (перезагрузка и удерживая Cmd-R)
  2. Открыть терминал
  3. использовать следующую команду: csrutil disable
  4. Перезагрузка и выполнить команду, работал до El Capitan

Настоятельно рекомендуется повторно включить SIP, выполнив те же шаги, но используя csrutil enable на шаге 3.

Ссылка:

How to disable rootless mode on Stack Overflow

System Integrity Protection on Apple.com