Continuando o post anterior vamos criar os scripts para administrar o servidor Gearman e seus workers e instalar e configurar o Monit para monitorará-los. Os fontes podem ser emcontrados no repositório público do projeto em https://github.com/fcm/codeigniter-academic/tree/gearman
Iniciar e parar os workers
Criar o arquivo /etc/init.d/gearman-workers com o conteúdo abaixo. Mais tarde o correto é refatorar o script para obter um path relativo ao worker, mas por hora isso é o suficiente.
Criar o arquivo /etc/init.d/pskiller.sh com o conteúdo abaixo que foi adaptado do script disponível em http://www.vivaolinux.com.br/script/pskiller
Agora é possível iniciar ou parar determinados workers pelo console. Depois de iniciar os workers é possível vizualizar no monitor (http://localhost/gearman-monitor/) os 5 workers registrados para atender as solcitações.
$ sudo /etc/init.d/gearman-job-server start
$ sudo /etc/init.d/gearman-workers start resize_worker.php # para iniciar 5 workers
$ sudo /etc/init.d/gearman-workers stop resize_worker.php # para parar todos
Instalar e configurar o Monit
O Monit serve para monitorar os serviços de um ou mais servidores, ele pode ser configurado para enviar notificações e/ou tomar alguma decisão assim que um serviço ficar fora do ar ou seu consumo chegar a um determinado nível crítico.
Para instalar no Ubuntu digite na linha de comando:
$ sudo apt-get install monit
Criar um arquivo de configuração de monitoramento$ sudo vi /etc/monit/conf.d/gearman.conf
Incluir o conteúdo no arquivo /etc/monit/conf.d/gearman.confcheck process gearmand with pidfile /var/run/gearman/gearmand.pid
start program = "/etc/init.d/gearman-job-server start; /etc/init.d/gearman-workers stop"
stop program = "/etc/init.d/gearman-job-server stop"
group gearman
Alterar as configurações gerias em /etc/monit/conf.d/general.conf
set alert fabrizio.machado@gmail.com
set alert fabrizio@gmail.com
set mailserver smtp.gmail.com port 587
username "fabrizio@gmail.com" password "xxxxxx"
using tlsv1
with timeout 30 seconds
set daemon 60
set logfile /var/log/monit.log
Interface web de monitoramento
O Monit possui uma interface web de monitoramento disponível por padrão em http://localhost:6874/ com o usuário e senha de acesso admin e monit
É possível alterar as configurações de portas e login descomentando o bloco referente as configurações de acesso no arquivo /etc/monit/monitrc.
## Monit has an embedded web server which can be used to view status of
## services monitored and manage services from a web interface. See the
## Monit Wiki if you want to enable SSL for the web server.
#
# set httpd port 2812 and
# use address localhost # only accept connection from localhost
# allow localhost # allow localhost to connect to the server and
# allow admin:monit # require user 'admin' with password 'monit'
# allow @monit # allow users of group 'monit' to connect (rw)
# allow @users readonly # allow users of group 'users' to connect
Referências:
http://gearman.org/
http://mmonit.com/
http://www.phpclasses.org/blog/post/108-Distributing-PHP-processing-with-Gearman.html
http://imasters.com.br/artigo/21385/php/processamento-distribuido-em-php-utilizando-gearman-parte-1
http://pecl.php.net/package/gearman
Nenhum comentário:
Postar um comentário