Быстрый старт работы с amazon S3

02.09.2012 от admin 0

Быстрый старт работы с amazon S3

Я думаю многие слышали об облачном хранилище S3.В этой статье я хочу привести краткую инструкцию как его примонтировать и привести пример мониторинга его доступности.
S3 в большинстве своем на серверах используется для бэкапа, но примонтировать хранилище и написать скрипт для автоматического бэкапа бывает недостатоно, иногда нам требуется еще и быть увереным, что хранилище доступно и все идет как надо.
Начнем с монтирования хранилища.Нам нужно установить пакеты для ubuntu:
apt-get install build-essential libcurl4-openssl-dev libxml2-dev libfuse-dev comerr-dev libfuse2 libidn11-dev libkrb5-dev libldap2-dev libselinux1-dev libsepol1-dev pkg-config fuse-utils sshfs mime-support
Скачиваем и устанавливаем s3fs:
wget “http://s3fs.googlecode.com/files/s3fs-1.61.tar.gz“
tar xvzf s3fs-1.61.tar.gz
cd s3fs-1.61/
./configure –prefix=/usr
make
make install 

Создаем файл $HOME/.passwd-s3fs с правами 600 и туда прописать строчку в формате:
accessKeyId:secretAccessKey.

монтируем командой:

s3fs bucketname -o use_cache=/tmp -o allow_other -o passwd_file=.passwd-s3fs /s3
В данном примере cache в /tmp, т.е все, что вы будете копировать в s3 будет также копироваться в /tmp-это нужно учитывать.

Можно прописать в fstab для автоматической загрузки:

s3fs mybucket /s3 fuse allow_other,url=https://s3.amazonaws.com 0 0
Теперь для CentOS
yum install gcc
yum install libstdc++-devel
yum install gcc-c++
yum install fuse
yum install fuse-devel
yum install curl-devel
yum install libxml2-devel
yum install openssl-devel
yum install mailcap

Все остальные действия такие же.
Хранилище примонтировано.Но нам нужно быть уверенными, что все идет правильно и в случае ошибок оперативно реагировать.Одно из решений-это написать плагин для nagios, который будет уведомлять об ошибках и сам сможет размонтировать и снова примонотировать хранилище.Я использовала nrpe, установка несложная, поэтому подробно останавливаться на этом не буду, единственный совет-собирайте сразу с поддержкой ssl, так как потом могут возникнуть проблемы.Привожу пример самого плагина:
#!/bin/bash
directory=/s3
cd $directory
if [ «$PWD» != «$directory» ] then
echo «error $directory does not exist.»
fusermount -u /s3 #размонтируем хранилище(точка монтирования /s3)
s3fs bucketname -o use_cache=/tmp -o allow_other -o passwd_file=/home/.passwd-s3fs /s3
#снова монтируем хранилище
exit 2#состояние critical отправляется на сервер мониторинга
else
echo «ok»
exit 0#состояние ok
fi 

Вариаций на тему проверки доступности директории много, я просто привела один из вариантов.Плагин будет выполняться от пользователя nagios, поэтому ему должно хватать прав, можно просто происать его в /etc/sudoers.
Вот и собственно и все, надеюсь этот пост кому-то поможет