Назад | Перейти на главную страницу

Графитовое кластерное веб-приложение - без обмена данными

У меня есть установка Graphite на трех экземплярах на EC2:

Реле отлично работает с постоянным хешированием. Проблема в том, что два веб-сервера не взаимодействуют друг с другом, поэтому я вижу показатели только с одного сервера.

Я потратил много времени, глядя на https://answers.launchpad.net/graphite/+question/114206 и я не могу понять, что я неправильно настроил. Я могу запустить wget из cache3 против cache4, получить данные обратно и увидеть их в журналах Apache. Так что я не думаю, что проблема в брандмауэре. Я пробовал включить suppressError = False в remote_storage.py и включил DEBUG в local_settings.py, но я не вижу ошибок в Firebug.

cache3 - local_settings.py

CLUSTER_SERVERS = [ 'cache4.graphite.prod.example.ec2', 'localhost' ]

cache4 - local_settings.py

CLUSTER_SERVERS = [ 'cache3.graphite.prod.example.ec2', 'localhost' ]

Я также пробовал использовать IP-адреса, но это не повлияло.

Я немного отладил и изменил storage.py для прямого жесткого кодирования моих удаленных хостов:

STORE = Store(settings.DATA_DIRS, remote_hosts=["cache4.graphite.prod.example.ec2", "127.0.0.1"])

Это сработало. Итак, как-то мой CLUSTER_SERVERS значение не извлекается из local_settings.py правильно.

Какие-либо предложения?

Оказывается разрешения на local_settings.py были слишком строгими, и Apache не смог их прочитать:

-rw------- 1 root root  4006 May  4 13:40 local_settings.py

Установка разрешений на 644 (вместо 600) решила проблему.