понедельник, 3 сентября 2012 г.

Просмотр логов в браузере (Log.io)

Давно хотел по по другому смотреть логи, приходилось открывать несколько Putty чтобы понять в чем же дело. И тут нахожу статью, вроде все красиво и вкусно, что-то о у меня не получилось, и глядя в комментарии вижу ссылку на еще один просмотрщик логов в браузере.
Впечатлило, решил установить - понравилось. Чуть ниже опишу процесс установки на Ubuntu 12.04 Server/Debian 6

установка node.js зависимостей
sudo apt-get install g++ make git libssl-dev pkg-config curl

затем скачиваем node.js
wget "http://nodejs.org/dist/v0.9.0/node-v0.9.0.tar.gz"

При скачивании, посмотрите, может есть уже более новая версия

Если через прокси скачивать, тогда редактировать /etc/wgetrc
параметры http_proxy и https_proxy


затем
tar -xzvf node-v0.9.0.tar.gz
cd node-v0.9.0/
./configure
make
sudo make install

затем ставим npm
curl -k https://npmjs.org/install.sh | sudo sh
срабатывало через раз, приходилось поступить следующим образом
curl -k https://npmjs.org/install.sh >install.sh
запускаем install.sh

если через прокси
 curl -x http://ip:port -k https://npmjs.org/install.sh | sudo sh


ставим log.io 
sudo npm config set unsafe-perm true
sudo npm install -g --prefix=/usr/local log.io
если через прокси
сначала

export HTTPS_PROXY=http://ip:port
export HTTP_PROXY=http://ip:port
npm config set proxy http://ip:port
npm config set strict-ssl false

и только потом
 

sudo npm config set unsafe-perm true
sudo npm install -g --prefix=/usr/local log.io


действия после установки
mkdir /usr/local/lib/node_modules/log.io/home
mkdir /usr/local/lib/node_modules/log.io/home/.forever
chmod 777 /usr/local/lib/node_modules/log.io/home/.forever

запускаем скрипт /usr/local/lib/node_modules/log.io/bin/install.sh

/etc/log.io/server.conf
редактируем, включаем авторизацию


запускаем сервер
sudo log.io server start


редактируем конфиг harvester.conf 

Ниже привожу свой конфиг, то который при установке - не работает


/* Log.io log harvester configuration */

exports.config = {

  // Log server host & port
  server: {
    host: '127.0.0.1',
    port: 8998,
  },

  // Watch the following log files, defined by label:path mappings
log_file_paths: {
                Auth_logs : "/var/log/syslog-ng/auth.log",
                Sys_logs : '/var/log/syslog-ng/syslog',
                Kern_logs : '/var/log/syslog-ng/kern.log',
                Cron_logs : '/var/log/syslog-ng/cron.log',
                Daemon_logs : '/var/log/syslog-ng/daemon.log',
                Debug_logs : '/var/log/syslog-ng/debug',
                Error_logs : '/var/log/syslog-ng/error',
                Messages_logs : '/var/log/syslog-ng/messages',
                Apache_acc : '/var/log/apache2/access.log',
                Apache_err : '/var/log/apache2/error.log',
                Zabbix_Agent : '/tmp/zabbix_agentd.log',
 
                  },


  instance_name : 'log_node_1'

}


запускаем
sudo log.io harvester start


При изменении harvester.conf  необходимо передергивать демона harvester. И тогда все все изменения тут-же отображаются в браузере.

для входа используем параметры host и port из конфига harvester.conf 

Я нашел только удобство, надеюсь кому-то это поможет
Ссылка на Log.io

пятница, 17 августа 2012 г.

Передача файлов между nix машинами

Возникла необходимость перекинуть большой объем на другой сервер, но была проблема, на сервере не было места для резервирования, поэтому вопрос быстро отпал. Нужно было передать файлы напрямую. Лучше использовать команду scp

для отправки на удаленный сервер
scp path/myfile user@8.8.8.8:/full/path/to/new/location/

Обратно тоже можно:
scp user@8.8.8.8:/full/path/to/file /path/to/put/here 
можно использовать маски * или ?, но для того чтобы передавать со вложенными папками, нужно использовать scp -r. Работает в обоих направлениях.
Самое главное, чтобы права доступа были.

Cacti (rrdtool) переход с 32bit на 64bit OS

Иногда необходимо перехать на новый сервер и захватить с собой , вроде бы перенос выполнен, но графики пустые . Часто дело оказывается в том что rrdtool использовалась на 32-bit машине или  на другой OS, а переносили на 64-bit машину и на другую OS. Для восстановаления работоспособности нужно выполнить 2 простые операции:

На 32-bit машине, выполняем экспорт БД в XML:


#!/bin/sh
for i in `ls *. rrd`
do rrdtool dump $i > $i.xml
done

На другой  машине восстанавливаем БД из XML файлов:




#!/bin/sh
for i in `ls *.xml`
do
/usr/bin/rrdtool restore $i `echo $i |sed s/.xml//g`;
done
 

четверг, 16 августа 2012 г.

SmokePing

Smokeping – утилита мониторинга состояния каналов. Удобна она тем, что отображает все состояния в виде графиков. А графики – это как все отлично понимают, самая наглядная вещь.
Помимо мониторинга задержек, с помощью Smokeping можно контролировать скорость реакции сервисов на запросы. Это тоже довольно интересная тема. По возрастанию времени ответа, допустим, вебсервера, можно судить о скорости генерации страниц и о том, насколько он эффективно работает и коственным путем отмечать повышение нагрузки на него. То же самое можно делать и с почтовым сервером и с ДНС, в общем практически с любым сервисом.


 ./configure --prefix=/opt/smokeping

так может получить, что не все модули perl установлены и получится ошибка
checking checking for perl module 'RRDs'... Failed
checking checking for perl module 'FCGI'... Failed
checking checking for perl module 'CGI'... Ok
checking checking for perl module 'CGI::Fast'... Failed
checking checking for perl module 'Config::Grammar'... Failed
checking checking for perl module 'Digest::HMAC_MD5'... Failed
checking checking for perl module 'LWP'... Ok
тогда ставим модули следующим образом

perl -MCPAN -e 'install <module-name>'

если не стоит RRD тогда его нужно ставить следующим образом

apt-get install rrdtool librrds-perl

затем делаем установку, предварительно скомпилировав

make install


делаем конфигурационный файл из поставки в дистрибутиве
cp /opt/smokeping/etc/config.dist /opt/smokeping/etc/config




создаем конфигурационный файл для Apache

touch /etc/apache2/conf.d/smokeping.conf

пишем в конфиг

<Directory "/opt/smokeping/htdocs/cache" >
    Order deny,allow
            Options None
                </Directory>
alias /smokeping /opt/smokeping/htdocs
 <Directory "/opt/smokeping/htdocs">
         AddHandler fcgid-script .fcgi
                        AllowOverride All
                        Options +ExecCGI
                         DirectoryIndex smokeping.fcgi
                                           </Directory>


копируем скрипт из поставки в дистрибутиве
cp /opt/smokeping/htdocs/smokeping.fcgi.dist /opt/smokeping/htdocs/smokeping
при запуске /opt/smokeping/ping/smokeping , может появиться ошибка

file '/opt/smokeping/etc/smokeping_secrets.dist' is world-readable or writable, refusing it

надо просто дать права записи для группы на файл smokeping_secrets.dist

вот примерный конфиг моего pathnames
imgcache и imgurl должны указывать на одну и туже папку

#sendmail = /usr/sbin/sendmail
imgcache = /opt/smokeping/htdocs/images
imgurl   = ../smokeping/images
datadir  = /opt/smokeping/lib
dyndir   = /opt/smokeping/__cgi
piddir   = /var/run/smokeping
smokemail = /opt/smokeping/etc/smokemail
tmail    = /opt/smokeping/etc/tmail
precreateperms = 2775


Probes файл в котором прописаны, что вы будете использовать для контроля.

*** Probes ***

+ FPing
binary = /usr/bin/fping

+ Curl
binary = /usr/bin/curl
step = 60

# SMTP - echoping smtp
+ EchoPingSmtp
# HTTP - echoping http
#+ HTTP
#+ EchoPingHttp
# DNS - echoping dns
+ EchoPingDNS
+EchoPingHttp

binary = /usr/bin/echoping
forks = 5
offset = 50%
step = 300

Targets файл в котором описываются цели, которые вы будете контролировать. Меню допускает вложенность. Сколько допускается вложений - не знаю, я использую 2.
Payments верхний уровень
Server второй уровень

urlformat формат применяется, если нужен доступ к web сайту отличному от 80 порта. Например HTTPS или по порту 8080

+ Payments

menu = Payments
title = Payments


++ Server
menu = FastMail
title = FastMail_https://myserver.ru
probe = Curl
host = myserver.ru
urlformat = https://%host%/

Вот и все.
Стоит отметить, что возможно использовать схему Master/Slave (главный/подчиненный), когда необходимо получать данные с удаленных серверов.

И еще, не забываем, что есть режим debug - для отладки, reload перезагрузка файлов конфигурации

вторник, 14 августа 2012 г.

Смена пароля root в mysql

Я готовил около 10 серверов, настроив один, я просто клонировал, конечно надо было менять и пароли root в mysql. Бегло порывшись в интернете, нашел только способ, для забывших пароль. Но, кто ищет тот найдет
mysqladmin -u root --password=oldpass password newpass

Почему не запускается ssh

Так получилось, что настраивал на одном из серверов доступ по ключам, и была ошибка в логах
Aug 14 10:54:33 r1204 kernel: [  152.435427] init: ssh main process ended, respawning
Aug 14 10:54:33 r1204 kernel: [  152.440190] init: ssh main process ended, respawning
Aug 14 10:54:33 r1204 kernel: [  152.444963] init: ssh respawning too fast, stopped

Включение детализации DEBUG3  решило проблему, на одном из сайтов нашел
/usr/sbin/sshd -ddd
И вот тут я увидел, что NumberOfPasswordPrompts была не закоментирована, я ведь настроил авторизацию по ключам.
Как только я закоментировал, ssh снова стал работать