По логам: вариантов много, кроме уже озвученных могу добавить:
1. Использовать AMQP (rabbitmq + федерация) и федерируйте логи куда угодно на любой сервер, там на принимающем сервере можете уже писать куда угодно можно даже "на лету" что-то агрегировать и т.п.
2. Использовать Scribe и им гнать сообщения в лог на любой удобный сервер сборщик-агрегатор
Оба решения позволяют доставлять сообщения в лог и в случае недоступности одного сервера-приемника пере-доставить на резервный. Писать можно куда угодно, можете в mongodb, можете в mysql+tokudb (у нее скорость работы на запись отличная и место можно за счет сжатия сэкономить)
По поводу HA: перенаправление запросов в случае отказа одного сервера, тоже много вариантов:
1. Дополнительный балансировщик перед серверами обрабатывающими запросы, nginx, haproxy и т.д. (но тут момент - этот балансировщик станет SPOF)
2. Использовать решения, например heartbeat и при выпадение сервера - переподнимать на резервном интерфейс и тушить на первом (спустя небольшое время все запросы пойдут на новый сервер)