cyberflow_gravatar

Cyberflow

I am linux system administrator.


Navigation
» Home
» Categories
» Code
» XML Feed

Cyberflow


    Установка slave mysql-percona сервера

    14 May 2014 | Comments

    Хочу сразу заметить, что способов развернуть slave сервер существует масса. Я хочу рассказать лишь об одном из них. Во-первых для себя, т.к. я часто применяю его в работе. Во-вторых для тех, у кого стоит задача по развертыванию независимого (поясню: это значит что перенос файлов базы с одного сервера на другой не подходит, как в моём случае. Т.е. репликация не полная) slave и при этом репликация производиться только над некоторыми БД, а не над всем, что есть.

    Подразумевается, что уже есть мастер сервер, на котором крутятся БД и настроен для репликации.

    Теперь надо сделать dump баз данных, при этом будем использовать атрибуты add-drop-database для добавление в dump строчки удаляющей базу перед её созданием и master-data для добавления информации о бин-логах и их позиции на момент создания dump’a. Так же, чтобы избежать переноса служебных баз, формируем список баз для переноса исключив из них все служебные базы mysql (в список можно добавить и другие базы по аналогии). После создания dump’a переносим его на slave сервер.

    # DATABASE_LIST=$(mysql -NBe 'show schemas' | grep -wv 'mysql\|performance_schema\|information_schema')
    # mysqldump  --databases $DATABASE_LIST --add-drop-database --master-data -u root -p > dbdump.db
    # scp dbdump.db mysql-slave-host:~/
    

    На slave сервере добавляем необходиму информацию для репликации. Это можно сделать и после развертывания dump’a. Так же я пропущу описание настройки репликации в конфигурации mysql.

    # mysql
    mysql> CHANGE MASTER TO MASTER_HOST='mysql-master-host', MASTER_USER='$replica_user', MASTER_PASSWORD='$slavepass';
    

    Теперь можно залить сделанный dump и после этого включить репликацию.

    # mysql -p < ~/dbdump.db
    # mysql
    mysql> slave start;
    

    Репликация таблиц базы chef-server

    09 Aug 2013 | Comments

    Intro

    В данной статье я расскажу как настроить два сервера chef-server версии 11 с репликацией части таблиц базы postgresql для обеспечения отказоустойчивости. Основная цель репликации это хранения данных о клиентах и нодах для прозрачного доступа нод к любому из chef серверов и возможности работы без перерегистрации. Предлагаемое opscode решение репликации данных через DRBD показалось мне не самым удобным и, главное, надёжным. По сему было принято решение искать альтернативные пути. Так как реплицировать все данные из всех таблиц нет необходимости, то было решено посмотреть в сторону skytools и londiste, которые позволяют реплицировать только определенные таблицы БД.

    Однако не обошлось без сюрпризов. Opscode распространяет shef-server 11 по средствам уже собранных omnibus пакетов, в котором свой postgres 9.2. Этот постгрес собран урезанным и не работает с skytools. В итоге в этой статье будет описано как поставить chef-server из omnibus пакета на дистрибутивный postgres 9.2 и прикрутить репликацию через londiste.

    logstash, ротация логов в elasticsearch

    31 May 2013 | Comments

    Небольшая заметка как организовать ротацию логов, собирающихся при помощи logstash в elasticsearch.

    В крон добавляем:

    cat <<'EOF' > /etc/cron.daily/logstash
    #!/bin/bash
    logdate=
    $(date -d'-15 days' +"%Y.%m.%d")
    curl -XDELETE "http://localhost:9200/logstash-
    ${logdate}"
    EOF

    Этот скрипт будет запускаться ежедневно и удалять все логи из elasticsearch 15-дневной давности.

    Hyperdb to Wordpress

    22 Mar 2013 | Comments

    Hyperdb - это замена стандартоного класса wpdb, позволяющая использовать несколько баз данных. В данной статье я опишу настройку hyperdb для распределенной инфраструктуры, состоящей из двух frontend серверов и двух серверов баз данных на базе дистрибутивов Debian 6, в качестве основной задачи ставилось не только распределение запросов на чтение между серверами БД, но и отслеживания отставаний слэйв сервера и, в случае отставания, чтение актуальных данных с мастера.

    Настройка самих фронтендов оставим за кадром, т.к. это выходит за рамки данной статьи. Что касается серверов БД, то мы будем использовать мастер-слэйв репликацию и mk-heartbeat для отслеживания lag-ов на слэйве. Сервера геораспределены и каждый сервер БД располагается в отдельном ДЦ в паре с фронтендом. На настройке баз я остановлючь подробнее:

    Настройка репликации DB:

    Здесь не описано ничего принципиально нового. Используется стандартная репликация Мастер-Слэйв средствами MySql.

    Добавление Facebook комментариев к Octopress

    20 Mar 2013 | Comments

    В этой небольшой статья я опишу как добавить комментарии facebook к блогу на octopress. В octopress есть поддержка комментариев с использованием disqus, но мне ближе facebook.

    Для начала необходимо зарегистрировать приложение на facebook для своего блога. Когда регистрация пройдена facebook должен выдать app id. Теперь можно приступить к настройке. Добавим facebook app id и параметры отображения комментариев в файл конфигурации _config.yml

    _config.yml

    # Facebook comments
    facebook:
    appid: 222612811167194
    num_post: 5
    width: 789
    colorscheme: light

    Следующим шагом добавим facebook javascript API на нашу страницу. Для этого можно воспользоваться уже имеющимся в octopress функционалом facebook like. И так, открываем siurce/_includes/facebook_like.html и меняем строчку содержащую js.src= заменив в ней цифры на app id полученный от facebook.