Category: Общая информация

Общая информация

Топ 5 – Open Network Источник и мониторинга производительности системы оповещения

Топ 5 – Open Network Источник и мониторинга производительности системы оповещения

Введение – Мониторинг сети и различных приложений является наиболее важной частью вашего Бизнес. Таким образом, выбор инструментов мониторинга является критическим и наиболее важная задача, потому что вы будете полностью отвечать на этот инструмент, чтобы уведомление всякий раз, когда что-то идет не так!

1) Nagios – это популярный открытый исходный компьютер системы мониторинга, мониторинг сети и инфраструктуры, мониторинга программного обеспечения. Nagios предлагает полный мониторинга и оповещения для серверов, коммутаторов, приложений и услуг, рассматривается как отрасль де-факто
стандарт. Nagios поддерживает два типа мониторинга, активные и пассивные. В случае активного мониторинга Nagios графики или активно проверяет указанные услуги, в то время как в случае пассивного чеки, внешние приложения может быть использована для передачи результатов служебной проверки.
– Для пассивных проверок NSCA (Nagios службе Проверить акцептор) демон должен быть запущен на сервере Nagios принять пассивных проверок по сети, которая будет представлять пассивный чек Nagios через UNIX-сокет.
– Для проверки Acitive NRPE (Nagios удаленного исполнителя плагинов) демон должен работать на удаленном компьютере для мониторинга услуг. Однако вы можете использовать SSH, а также.

Для наблюдения удаленных хостов и услуг Nagios сообщества предоставить вам несколько плагинов, как показано ниже …
* NRPE – NRPE демон будет запускаться на удаленных хостах и ​​Nagios будет проверка услуг на удаленных компьютерах через check_nrpe плагина (команда) от хостов Nagios.
* Check_MK – лучший Nagios плагин для мониторинга удаленного хоста. Красота этого плагина является то, что большая часть общих услуг проверяются в одно соединение с удаленными хостами и результаты представлены в виде пассивной результатов Nagios. Это повышает производительность, меньше сетевого трафика и, конечно, без нагрузки или нагрузки на удаленном хосте (который мы ведем мониторинг). Для Check_MK, мы должны установлен агент check_mk т.е. check_mk_agent простой скрипт и связать этот сценарий 6556 TCP-порт Использование xinetd демон. Check_MK также предоставляет следующие возможности.
– Check_MK поддержку динамических Nagios конфигурации поколения, перечень проверок.
– Livestatus – прекрасный плагин для общения с Nagios (Unix сокета)
– Nagios многоузлового GUI – монитор несколько Nagios из одной веб-интерфейс
– SNMP поддержка и автоматическое обнаружение службы многие коммутаторы Cisco, маршрутизаторы и NetApp, а также регистраторов.
Nagios многоузлового GUI – Другая красота Check_MK Nagios плагин montoring несколько Nagios используя только один веб-интерфейс. Это webbased интерфейс usese Check_MK Livestatus плагин, чтобы получить Nagios данных.
Check_MK – http://mathias-kettner.de/
URL – http://www.nagios.org/~~V
Автор – Этан Galstad

2) Ganglia – это масштабируемые распределенные системы мониторинга инструмент для высокопроизводительных вычислительных систем, таких как кластеры и сетки. Он позволяет пользователям удаленно просматривать или исторической статистики (например, загрузку процессора или средние использования сети) для всех машин, которые находятся под наблюдением. Ganglia очень полезно выяснить, приложения или команды мудрого использования ресурсов даже в кластерной среде. Мы должны установлен gmond (демон ганглиев монитор) на каждой машине (в группе или кластер), которая собирает всю статистику.
gmetad (демон ганглиев метаданных) должны установлен на одной обрабатываемой в группе или кластер, который будет собирать данные из указанных серверов gmond.
URL – http://ganglia.info/~~V

3) Кактусы – это с открытым исходным кодом, веб-графический инструмент (интерфейс для RRDtool). Кактусы позволяет пользователю опрос услуг на заданные промежутки времени и график полученных данных. Она обычно используется для графа данных временного ряда показателей, таких как загрузка процессора и использования пропускной способности сети. Кактусы лучше контролировать аппаратных устройств, таких как коммутаторы, маршрутизаторы с помощью SNMP.
URL – http://www.cacti.net/

4) Zabbix – Она предназначена для мониторинга и отслеживания состояния различных сетевых сервисов, серверов и другого сетевого оборудования. Он использует MySQL, PostgreSQL, SQLite, Oracle или IBM DB2 для хранения данных. Его бэкэнда написан на С и веб-интерфейс написан на PHP.
Zabbix предлагает несколько вариантов мониторинга. Zabbix агент может быть установлен на Windows, UNIX и узлов для мониторинга статистики, таких как загрузка процессора, использование сети, дисковое пространство и т.д.
В качестве альтернативы установке агента на машинах, Zabbix поддерживает мониторинг через SNMP, ICMP, TCP и чеки, а также более IPMI, SSH, Telnet и с помощью пользовательских параметров.
Zabbix поддерживает различные реального времени механизмы уведомления. Красота Zabbix является XMPP уведомления!
URL – http://www.zabbix.com/
Автор – Алексей Владышевым

5) Zenoss – Zenoss (Zenoss Core) является открытым исходным кодом приложений, серверов и сетевого управления на базе платформы на сервере приложений Zope.
URL – http://www.zenoss.com/

Примечание – Этот список основан на личном опыте и выбор многих членов сообщества IndianGNU.

Спасибо,
Арун Bagul

Как использовать RAM (физической), а диск

Как использовать RAM (физической), а диск

Введение –
Иногда, чтобы получить производительность, физической памяти может быть использован как дисковое пространство, которое очень быстро по сравнению с нормальным жестким диском.
Итак, как я могу использовать ОЗУ диска? пройти через это шаги.

Шаг 1) Создать каталог, как показано ниже, где вы хотите установить RAM диск в качестве

Root @ arunbagul: ~ # MkDir-р / TMP / RAM
Root @ arunbagul: ~ # Ls / TMP / баран
Root @ arunbagul: ~ #

Шаг 2) крепление RAM т.е. TMPFS на точку монтирования “/ TMP / баран” каталога

Root @ arunbagul: ~ # горе-т-о TMPFS размер = 10M TMPFS / TMP / RAM /

* Проверка установленных на нет?

Root @ arunbagul: ~ # DF-ч
Файловая система Размер использовано% Свободно использования Устанавливается на
TMPFS 10M 0 10M 0% / TMP / баран

** Для установки этого постоянно дополнений в / и т.д. / Fstab как показано ниже.

Root @ arunbagul: ~ # кот / и т.д. / Fstab

….

TMPFS / TMP / баран TMPFS по умолчанию, размер = 10 м 0 0

Root @ arunbagul: ~ #

– Для установки этого используйте команду монтирования (это будет смонтировать все точки монтирования, упомянутые в Fstab)

Root @ arunbagul: ~ # монтирования

Спасибо,
Арун Bagul

IndianGNU.org – Четвертая годовщина!

IndianGNU.org – Четвертая годовщина!

Уважаемые господа,

Сегодня мы отмечаем четвертую годовщину! Мы успешно завершили четыре года и продолжает расти на полной скорости! Это было просто невозможно без вашей поддержки, вклад и тяжелый труд.

openlsm проекта

Это год был тяжелым для openlsm и мы будем запуска Панель администратора разрабатываемой версии к концу декабря 2010 года. Мы ожидаем намного больше от второй этап …

Ура,
IndianGNU.org

Perl CGI – сессии и Cookie Howto

Perl CGI – сессии и Cookie Howto

Введение –

Почти 1 год назад, я боролся много для реализации сессии и куки в применении Perl CGI. Так думал поделиться моей работы со всеми вами.
Я хотел сделать это на моем пути …

Успенский, веб-сервер Apache т.е. включен для запуска CGI-сценарии

Step 1] Write Auth.pm Perl module –

Please simply copy following Auth.pm perl module for authentication using Session and Cookies…

[root@arun ~]# cat /var/application/module/Auth.pm

package Auth;

### Subroutine to authenticate user
sub  User
{
my ($ref_page) = (@_);
### Session information
my $sid = $ref_page->cookie(“APP_SID”) || undef;
my $session = CGI::Session->load(undef,$sid);
if ( $session->is_expired ) { print $ref_page->redirect(-location => ‘../arun.html’);}
elsif ( $session->is_empty) { print $ref_page->redirect(-location => ‘../arun.html’);}
else { print $ref_page->header();}
# don’t forget to create dir ‘/var/tmp’
# with proper ownership/permission
#$session = new CGI::Session(undef, $sid, {Directory=>’/var/tmp’});
#################################################
return($session->param(‘login_user’));
}

1;
[root@arun ~]#

Step 2] authe_me.pl –

authe_me.pl file is used to set cookies and verify username/password. You may use MySQL DB to store username and password.
In this case you have to this file…

[root@arun ~]# cat /var/application/www/cgi-bin/auth_me.pl
#!/usr/bin/perl

sub BEGIN
{
unshift (@INC, ‘/var/application/module/’);
}

use strict;
use warnings;
use CGI qw(:standard);
use CGI::Session;
use Auth; ## our module

### Header
########################
my $page = CGI->new();
##print $page->header();

##########
if ( $ENV{REQUEST_METHOD} eq “POST” )
{
my %form;
my $session_dir=”/var/tmp”;
my ($admin_user,$admin_password) = (“admin”,”arun123″);

foreach my $key (param()) { $form{$key} = param($key);}
##
if (($form{username}) && ($form{password}))
{

### Session Details ###
CGI::Session->name(“APP_SID”);
## Create new session
my $session = new CGI::Session(undef, undef, {Directory=>$session_dir});
## Set cookies
my $cookie = $page->cookie(-name=>$session->name(),-value=>$session->id(),-expires=>’+2h’,-path=>’/’);
## Store data in session variable and save it
$session->param(‘login_user’,$form{username}); # OR
##$session->param(-name=>’login_user’,-value=>$form{username});
$session->save_param($page, [“login_user”]);

## Session and Cookie expiration time is SAME.
$session->expire(“+2h”);
#### Session Details end ####

## if login successful redirect to main.pl else login page
if (($form{username} eq $admin_user) and ($form{password} eq $admin_password))
{ print $page->redirect(-location => ‘main.pl’,-cookie=>$cookie);}
else { print $page->redirect(-location => ‘../arun.html’); }
############################
} else { print $page->redirect(-location => ‘../arun.html’); }
}

[root@arun ~]#

Step 3] Create Login Page –

[root@arun ~]# cat /var/application/www/arun.html
<html>
<title>Arun Login Page</title>

<!– Form start –>
<table align=’center’ border=’1′>
<form method=”POST” action=”cgi-bin/auth_me.pl”>
<tr>
<td><label>Login</label></td>
<td><input name=”username” type=”text”></td>
</tr>
<tr>
<td><label>Password</label></td>
<td><input name=”password” type=”password”><br/></td>
</tr>
<tr>
<td><input value=”Submit” type=”submit”></td>
</tr>

</form>
</table>

</html>

[root@arun ~]#

Step 4] Create main page where Session and Cookie authentication verified – main.pl

[root@arun ~]# cat /var/application/www/cgi-bin/main.pl
#!/usr/bin/perl

sub BEGIN
{
unshift (@INC, ‘/var/application/module/’);
}

use strict;
use warnings;
use CGI qw(:standard);
use CGI::Session;
use Auth;

### Header
my $page = CGI->new();
## check authentication
my $login_name=Auth::User($page);
###
print $page->start_html( -title=>’Arun Main Page’);

print “<h3>This is Main Page</h3></br>”;
print “<br>Login Name – $login_name”;

#end
[root@arun ~]#

Step 5] Please access login page and try http://your_ipaddr/arun.html

Thank you,
Arun Bagul

Инструкции по тестированию производительности сети и пропускной способности

Инструкции по тестированию производительности сети и пропускной способности

Введение –

Задержка в сети и пропускной способности двух метрик, скорее всего, представляет интерес при тесте сети. Хотя большинство продуктов и услуг реклама фокусируется на пропускную способность, время от времени задержки может быть более важный показатель.

** Что такое Величина?

Полоса пропускания (BW) в области компьютерных сетей относится к скорости передачи данных поддерживается подключение к сети или интерфейс. BW измеряется в терминах битов в секунду (бит / с).

** Что такое Задержка в сети?

Задержка является мерой временной задержки опыт в системе. Задержка в сети просто определяется как время задержки наблюдались как данные передаются из одной точки в другую. Есть ряд факторов, которые способствуют задержки в сети. К ним относятся передачи (средний соединения), расстояние, маршрутизаторы и задержки компьютерного оборудования.

Список проектов, используемых для тестирования производительности сети и пропускной способности –

1) bmon – Bandwidth Monitor и скорость оценки, это консольный, жить BW
2) bwbar – трафик в текстовом и графическом формате
3) BWM-NG – Bandwidth Monitor NG (Next Generation, жить BW, консольный
4) dstat – Dstat является заменой для Vmstat, IOSTAT и ifstat.
5) iftop – Использование полосы пропускания на интерфейсе, консольный
6) Iperf – провести испытания пропускную способность сети ставку двух принимающих
7) ifstat – интерфейс отчетов STATistics
8) куб.м. – Цвет Bandwidth Meter, консольный
9) etherape – графический сетевой трафик браузера
10) IPTraf – интерактивный цветной монитор IP LAN, консоль и графический интерфейс
11) netmrg – Это демон основанный, MySQL поддержку, собирает данные из устройства.
12) nuttcp – сетевой инструмент измерения производительности
13) nepim

ПРИМЕЧАНИЕ ~ Для некоторых из них об / мин или Deb пакеты не существуют!

Шаг 1] Как установить на Redhat / RHCE, CentOS система и Dibian система?

root@me:~# yum install netperf iperf nuttcp nepim lmbench

** Ubuntu –

root@me:~# apt-get install  bmon bwbar bwm-ng dstat cbm etherape iftop iperf ifstat iptraf netmrg

Шаг 2] Как использовать – bmon, BWM-нг, dstat, ifstat –

root@me:~# bmon

interface: lo at me.arun.world

#   Interface                RX Rate         RX #     TX Rate         TX #
───────────────────────────────────────────────────────────────────────────────
me.arun.host (source: local)
0   lo                         0.00B            0       0.00B            0
1   eth0                       0.00B            0       0.00B            0
2   eth2                       0.00B            0       0.00B            0
3   vboxnet0                   0.00B            0       0.00B            0
4   pan0                       0.00B            0       0.00B            0
5   ppp0                      69.39KiB         61       7.49KiB         44

root@me:~# bwm-ng

bwm-ng v0.6 (probing every 0.500s), press ‘h’ for help
input: /proc/net/dev type: rate
\         iface                   Rx                   Tx                Total
==============================================================================
lo:           0.00 KB/s            0.00 KB/s            0.00 KB/s
eth0:           0.00 KB/s            0.00 KB/s            0.00 KB/s
eth2:           0.00 KB/s            0.00 KB/s            0.00 KB/s
ppp0:          64.39 KB/s            7.92 KB/s           72.31 KB/s
——————————————————————————
total:          64.39 KB/s            7.92 KB/s           72.31 KB/s

root@me:~# dstat
—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
7   4  85   4   0   0| 281k  110k|   0     0 |   0     0 | 865  3013
8   4  88   0   0   0|   0     0 |7027B 1261B|   0     0 | 956  4505
8   5  86   0   0   0|   0     0 |  14k 1867B|   0     0 |1144  3332
9   5  86   0   1   0|   0     0 |  79k 2496B|   0     0 |1360  3366
18   8  74   0   0   0|   0     0 |  52k 6511B|   0     0 |1299  3618
8   6  85   0   1   0|   0     0 |  35k 5339B|   0     0 |1094  4231
6   4  90   0   0   0|   0     0 |   0  3164B|   0     0 | 953  2750 ^C
root@me:~#

root@me:~# ifstat
eth0                eth2                ppp0
KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
0.00      0.00      0.00      0.00     95.73      4.31
0.00      0.00      0.00      0.00     67.93      8.17
0.00      0.00      0.00      0.00    106.77     13.70

** Начать “Iperf” сервера на одном сервере () и клиент на другом хосте (B) – для измерения пропускной способности сети между двумя хостами.

* Host -A

root@me:~# iperf -s
————————————————————
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
————————————————————
[  4] local 192.168.0.1 port 5001 connected with 192.168.0.2 port 56171
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  9.11 GBytes  7.82 Gbits/sec

* Host -B
test@hostB:~$ iperf -c 192.168.0.1
————————————————————
Client connecting to 192.168.0.1, TCP port 5001
TCP window size: 49.5 KByte (default)
————————————————————
[  3] local 192.168.0.2 port 56171 connected with 192.168.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  9.11 GBytes  7.82 Gbits/sec
test@hostB:~$

root@me:~# iftop
root@me:~# cbm

Thank you,
Arun Bagul

Топ 7 ERP и CRM с открытым исходным кодом

Топ 7 ERP и CRM с открытым исходным кодом

Введение –

Что такое планирования ресурсов предприятия (ERP)?

ERP является интегрированной системы программного обеспечения, используемого для управления ресурсами, активами, финансовыми ресурсами, материалами и персоналом.
Его целью является содействие обмену информацией между всеми бизнес-функции организации.

Что такое управление взаимоотношениями с клиентами (CRM)?

CRM является широко признанным как взаимодействие компании с клиентами, клиенты и коммерческие перспективы. Она включает в себя использование
технологии для организации, автоматизации и синхронизации бизнеса (продажи) деятельности, маркетинга, обслуживания клиентов и технической поддержки.

1) Openbravo

Openbravo ERP является веб-ERP бизнес-решение для малых и средних компаний, что выпускается под
Openbravo Public License, основанный на Mozilla Public License.
URL – http://www.openbravo.com/

2) OpenERP

OpenERP является открытым исходным кодом полный набор бизнес-приложений, включая продажи, CRM, управление проектами,
Управление складом, Производство, Бухгалтерия, отдел кадров.
URL – http://www.openerp.com/

3) Fedena

Fedena является открытым исходным кодом управления школой программное обеспечение, разработанное на Ruby на Rails рамки. fedena содержит модули, связанные с приемом, студент Подробная информация, Управление пользователями, Управление Новости, экспертизы, Расписание и посещаемость.
URL – http://www.projectfedena.org/

4) JFire

JFireis планирования ресурсов предприятия и управления взаимоотношениями с клиентами системы. JFire является клиент-сервер системы с рабочего клиента для Windows и Linux.
URL – http://www.jfire.net/

5) Apache OFBiz –

OFBiz является ERP-системы. Она обеспечивает корпоративных приложений, интеграции и автоматизации многих бизнес-процессов.
URL – http://ofbiz.apache.org/

6) SugarCRM

SugarCRM является ведущим CRP программного обеспечения с открытым исходным кодом. SugarCRM мой личный выбор!

URL – http://www.sugarcrm.com

7) VtigerCRM

VtigerCRM очень легко и лучшие ERP и CRM веб-программного обеспечения. У меня есть личный использовать это программное обеспечение. Она имеет много Addons. URL – http://www.vtiger.com/

Пожалуйста, обратитесь список ERP программного обеспечения на вики – http://en.wikipedia.org/wiki/List_of_ERP_software_packages

Спасибо,
Арун Bagul

How to use socat with haproxy stat

How to use socat with haproxy stat

*** Introduction –

All you know about the haproxy, that its the one of the good opensource load balancing software and to check the fun stats of haproxy here we using ‘socat’ – Multipurpose relay (SOcket CAT)


* What is socat?

Socat  is  a  command  line based utility that establishes two bidirectional byte streams and transfers data between them. Because the streams can be constructed from a large set of different types of data sinks and sources (see address  types),  and  because  lots  of address options may be applied to the streams, socat can be used for many different purposes.(see more info at ‘man socat’ 🙂 or at http://www.dest-unreach.org/socat/)

* How to use ‘socat’ with haproxy stat

Step 1) Download ‘socat’ from http://www.dest-unreach.org/socat/download/  latest version ~ “socat-2.0.0-b3.tar.gz”

ravi@arun:~$ wget http://www.dest-unreach.org/socat/download/socat-1.7.1.2.tar.gz

ravi@arun:~$ tar xvzf socat-1.7.1.2.tar.gz

ravi@arun:~$ cd socat-1.7.1.2

NOTE ~ No need to install the ‘fipsld’ package if you got the below msg after running the ‘make’ just following steps for

compiling socat….


FIPSLD_CC=gcc fipsld -O -D_GNU_SOURCE -Wall -Wno-parentheses  -DHAVE_CONFIG_H -I.  -I.   -c -o socat.o socat.c
/bin/sh: fipsld: command not found
make: *** [socat.o] Error 127

ravi@arun:~$ ./configure –disable-fips
ravi@arun:~$ make

To install it login as root
ravi@arun:~$ su –

ravi@arun:~# make install

Step 2) Now you need to add stats socket PATH in Haproxy configuration and restart haproxy as per shown in following example,

where I have added it under in ‘global’ setting –

ravi@arun:~# more /etc/haproxy/myhaproxy.cfg

#———–Start of haproxy Config file————–
global
log 127.0.0.1   local0
log 127.0.0.1   local1 notice
#log loghost    local0 info
maxconn 25000
#debug
#quiet
user ravi
group ravi
stats socket    /tmp/haproxy
defaults
option          contstats
timeout         connect 5s
timeout         client 25s
timeout         server 25s
maxconn         100

listen ravitestbed      0.0.0.0:80 ##ravi.com IP
mode            tcp
balance         roundrobin
server          web1 192.168.19.117
server          web2 192.168.19.122

listen stats
bind            0.0.0.0:8081
mode            http
#stats          uri /stat  #Comment this if you need to specify diff stat path for viewing stat page
stats enable
stats auth admin:admin ##Auth user pass

#———–End of haproxy Config file————–

Step 3) Used /tmp/haproxy. Now you can send the commands to get stats from HAProxy –

Now time to use socat

ravi@arun:~# echo “”  | socat unix-connect:/tmp/haproxy stdio
Unknown command. Please enter one of the following commands only :
show info   : report information about the running process
show stat   : report counters for each proxy and server
show errors : report last request and response errors for each proxy
show sess   : report the list of current sessions

This will dump (possibly huge) info about all know sessions.

ravi@arun:~$ echo “show sess” | socat unix-connect:/tmp/haproxy stdio
0x9ee3520: proto=tcpv4 src=192.168.19.117:4721 fe=ravitestbed be=ravitestbed srv=arun as=0 ts=08 age=4s calls=3
rq[f=009202h,l=0,an=00h,rx=20s,wx=,ax=] rp[f=009202h,l=0,an=00h,rx=20s,wx=,ax=] s0=[7,8h,fd=1,ex=] s1=[7,8h,fd=2,ex=] exp=20s
0x9eeb8e8: proto=tcpv4 src=192.168.19.117:4723 fe=ravitestbed be=ravitestbed srv=arun as=0 ts=08 age=4s calls=3
rq[f=009000h,l=0,an=00h,rx=20s,wx=,ax=] rp[f=009202h,l=0,an=00h,rx=20s,wx=,ax=] s0=[7,8h,fd=8,ex=] s1=[7,8h,fd=9,ex=] exp=20s
0x9ef3d08: proto=tcpv4 src=192.168.19.117:4725 fe=ravitestbed be=ravitestbed srv=arun as=0 ts=08 age=4s calls=3
rq[f=009000h,l=0,an=00h,rx=20s,wx=,ax=] rp[f=009202h,l=0,an=00h,rx=20s,wx=,ax=] s0=[7,8h,fd=12,ex=] s1=[7,8h,fd=13,ex=]
exp=20s
0x9f04548: proto=unix_stream as=2 ts=09 age=0s calls=2 rq[f=00e042h,l=10,an=20h,rx=10s,wx=,ax=]

rp[f=048060h,l=716,an=00h,rx=,wx=10s,ax=] s0=[7,0h,fd=3,ex=] s1=[0,0h,fd=-1,ex=] exp=9s

This will give you information about the running HAProxy process such as pid, uptime and etc.

ravi@arun:~$ echo “show info” | socat unix-connect:/tmp/haproxy stdio
Name: HAProxy
Version: 1.3.23
Release_date: 2010/01/28
Nbproc: 1
Process_num: 1
Pid: 11829
Uptime: 0d 0h42m53s
Uptime_sec: 2573
Memmax_MB: 0
Ulimit-n: 50013
Maxsock: 50013
Maxconn: 25000
Maxpipes: 0
CurrConns: 1
PipesUsed: 0
PipesFree: 0
Tasks: 1
Run_queue: 1
node: ravi.world
description:

This will give you stats on all of your backends and frontends, some of the same stuff you see on the stats page enabled by the stats uri configuration. As an added bonus it’s all in CSV.

ravi@arun:~$ echo “show stat” | socat unix-connect:/tmp/haproxy stdio
#
pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,ch
kdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,
ravitestbed,FRONTEND,,,0,5,100,30,32582,50616,0,0,0,,,,,OPEN,,,,,,,,,1,1,0,,,,0,0,0,5,
ravitestbed,trupti,0,0,0,2,,15,7020,22722,,0,,0,0,0,0,no check,1,1,0,,,,,,1,1,1,,15,,2,0,,2,
ravitestbed,arun,0,0,0,5,,15,25562,27894,,0,,0,0,0,0,no check,1,1,0,,,,,,1,1,2,,15,,2,0,,3,
ravitestbed,BACKEND,0,0,0,5,100,30,32582,50616,0,0,,0,0,0,0,UP,2,2,0,,0,2710,0,,1,1,0,,30,,1,0,,5,
stats,FRONTEND,,,0,1,100,21,9605,152357,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,9,
stats,BACKEND,0,0,0,1,100,5,9605,152357,0,0,,5,0,0,0,UP,0,0,0,,0,2710,0,,1,2,0,,0,,1,0,,4,

show errors will give you a capture of last error on each backend/frontend.

ravi@arun:~$ echo “show errors” | socat unix-connect:/tmp/haproxy stdio

Reffer:
http://www.dest-unreach.org/socat/
http://haproxy.1wt.eu/download/1.3/doc/configuration.txt

Thanks to Joe (http://www.joeandmotorboat.com)

Thank you,
Ravi

Как установить & настроить VNC Server на CentOS

Как установить & настроить VNC Server на CentOS

Как установить VNCSERVER На CentOS

Yum groupinstall “GNOME Desktop Environment”
Yum Xterm Установить VNC-сервера VNC

удалить существующий файл с править & ‘/ ETC / sysconfig / VNCSERVERS “и добавьте следующие строки в нем

VNCSERVERS = “2: Root”
VNCSERVERARGS [2] = “-геометрия 800 × 600-nolisten TCP-nohttpd-LocalHost”

установить VNC пароль для открытия VNC для пользователей корня (Вы должны Войти как корень)
vncpasswd

установить VNC пароль для открытия VNC для пользователей (Вы должны Войти как обычный пользователь, как это создаст файл Xstartup в $ HOME / .vnc)
vncpasswd

Теперь запустите vncserver качестве суперпользователя
/ и т.д. / init.d / vncserver начало

Теперь убейте vncserver proocesses используя ‘PS AUX | Grep VNC | xargs убить -9’
Введение ~
и начать VNC Server, выполнив команду
vncserver

проверить указанный путь, чтобы открыть VNC-дисплей в качестве примера приводятся в
Appserver.ravi.com Новая ‘: 3 (корень)’ рабочий стол appserver.ravi.com: 3

Перед открытой VNCViewer удалить файл ‘/ tmp/.X1-lock’

Теперь откройте VNC дисплее вы получите по умолчанию ‘Xterm “открытые на нем.

Спасибо,
Рави Bhure

Bash Scripting ~ обучение на примерах

Bash Scripting ~ обучение на примерах

Introduction ~

—————————————–
Program (1) ~ array.sh
—————————————–

#!/bin/bash
echo “==============”
declare -a myarr[0]=”Arun”
declare -a myarr1
myarr1=(arun bagul bangalore mumbai raju santhosh)
myarr[1]=”Bagul”

echo “my name is ${myarr[0]} ${myarr[1]}”
echo “————————–”
echo “${myarr1[*]}”
echo ${myarr1[2]}
echo ${myarr1[@]}
echo “————————–”
echo “Total no of elements in array – ${#myarr1[*]}”
echo “Total no of elements in array – ${#myarr1[@]}”
echo “Size of word ‘${myarr1[2]}’ is – ${#myarr1[2]}”
echo ${#myarr1[1]}
echo ${#myarr1[0]}

echo “————————–”

#how to delete element in array
unset myarr[1]
echo “myarr is – ${myarr[*]}”

#how to assign element in array
myarr[1]=”- System Engineer!”
echo “myarr is – ${myarr[*]}”

echo ${myarr}

————————————————————————
Program (2) ~ command_line_arguments.sh
————————————————————————

#!/bin/bash

echo “Script/command name => $0”
echo “arg1 => $1”
echo “arg2 => $2”
echo “arg3 => $3”
echo “Total No of argument = $#”

echo “Script PID is => $$”
echo “Status of previous command – $?”

name=$myname
echo “Name – $name”

read n

————————————————-
Program (3) ~ default_value.sh
————————————————-

#!/bin/bash

#start=’123′
#start=${1:-$start}

start=${1:-‘123’}

echo “Value of ‘start’ variable is ==> $start”

—————————————————
Program (4) ~ echo_example.sh
—————————————————

#!/bin/bash

name=”Arun”

echo -e “My Name is $name_arun and \n”
echo -e “My Name is ${name}_arun and \n”

echo -e ‘My Name is $name and \n’

—————————————–
Program (5) ~ elif.sh
—————————————–

#! /bin/bash

if [ $1 -eq $2 ];then
echo “good”
elif [ $2 -eq $3 ];then
echo “Fine”
elif [ $1 -eq $3 ];then
echo “OK”
else
echo “NO”
fi

————————————————————
Program (6) ~ for_loop_example-1.sh
————————————————————

#!/bin/bash

i=1
while [ $i -le 512 ]
do
temp=$i
echo “What is => $i | $temp”
i=$(expr $i + 32)
for (( j=$temp; $j<=$i; j++ ))
do
echo -n ” $j”
done
done

———————————————————–
Program (7) ~ for_loop_example-2.sh
———————————————————–

#!/bin/bash
#for val in $(ls -1 /tmp)
sum=0
#for val in {1..5}
#for val in {$1..$2}
for((val=$1;$val<=$2;val++))
do
#echo “$val”
sum=$(expr $sum + $val )
#sum=`expr $sum + $val`
done

echo “$0 # Sum of $1 to $2 => $sum”

————————————————————
Program (8) ~ for_loop_example-3.sh
————————————————————

#!/bin/bash

for i in {1..9}
do
echo $i
done

—————————————–
Program (9) ~ function.sh
—————————————–

#!/bin/bash

function my_function()
{
name=”Arun Bagul”
echo “‘my_function’ body ~ $name”
return 1;
}
##########

myfunc()
{
echo “Another way of defining the function”
}

##########################

echo “Starting function program”
echo “——————————”

#calling function here
my_function
##
myfunc

echo -e “\n end of program”

—————————————————————————————
Program (10) ~ how_to_pass_argument_to_function.sh
—————————————————————————————

#!/bin/bash

function my_function()
{
echo “Total number of argument ~ $#”
echo “Arg1 => $1”
echo “Arg2 => $2”
echo “Arg3 => $3”
return 0;
}
##########

echo “Starting function program”
echo “——————————”

#calling function here
my_function arun bagul 1234

————————————————————————-
Program (11) ~ how_to_take_hidden_input.sh
————————————————————————-

#!/bin/bash

echo -n “Enter User Name :”
read username
echo -n “Enter Password :”
read -s mypwd

echo -e “\nI am $username and my password is – $mypwd”

——————————————————————————
Program (12) ~ how_to_take_input_from_user.sh
—————————————————————————–

#!/bin/bash

echo -ne “Enter the Name:- ”
read name
echo -n -e “Enter the Number:- ”
read num

echo “——————————”

add=$(expr $num + 10)

echo “Name is ~ $name”
echo “Number is ~ $add”

—————————————–
Program (13) ~ ifthen.sh
—————————————–

#!/bin/bash

if [ “arun” == “arun” ];then
echo “true!”
else
echo “false”
fi

echo “———————————-”

if [ 2 == 2 ];then
echo “true!”
else
echo “false”
fi

echo “———————————-”

if [ “arun” = “arun” ];then
echo “true!”
else
echo “false”
fi

echo “———————————-”

if [ 2 -eq 2 ];then
echo “true!”
else
echo “false”
fi

——————————————————
Program (14) ~ non-interactive.sh
——————————————————

#!/usr/bin/expect -f
spawn ssh arun@192.168.0.1
expect “password:”
sleep 1
send “pwd\r”
interact

—————————————————————-
Program (15) ~ read_file_line_by_line.sh
—————————————————————-

#!/bin/bash

file_name=”/etc/hosts”

while read myvar
do
echo “Line => $myvar”
done < $file_name

echo “#################################################”

for myvar1 in $(cat $file_name)
do
echo “Line => $myvar1”
done

——————————————————
Program (16) ~ reverse-number.sh
——————————————————

#!/bin/bash

declare -a date_array
num=$1
i=$(expr $(echo $num | wc -c) – 1 )

while [ $num -gt 10 ]
do
temp=$( expr $num % 10 )
num=$( expr $num / 10);
echo “Digit($i) => $temp”
date_array[$i]=”${temp}”
i=$(expr $i – 1)
done
echo “Digit($i) => $num”
date_array[$i]=”${num}”

echo ${date_array[*]}

——————————————————–
Program (17) ~ string-operation.sh
——————————————————–

#! /bin/bash

echo “Arun Bagul:-”
string=”/root/arun/bagul/image.gif”
echo “string=> $string”
echo “String=> ${string##/*/}”
echo “String=> ${string#/*/}”

echo “String=> ${string%.*}”
echo “String=> ${string%%.*}”
#str=”/home/y/conf/arunbagul/daily_market_0.conf”
str=”${str##/*conf/}”
echo “String=> ${str%/*}”

#done

mystr=”keyword_summary_exact_arunsb”
echo $mystr
echo ${mystr%_*}

echo “$*”

—————————————–
Program (18) ~ switch.sh
—————————————–

#!/bin/bash

echo ” Switch program | arg1 => $1″
echo ” ——————————-”
case $1 in

123)
echo “Case is 123”
;;

arun)
echo “Case is ‘arun'”
;;

pri*)

echo “Case is ‘pri*'”
;;

*)
echo ” * Usage: $0 ”
echo ” Default case (nothing is matched)”
exit 0;
;;
esac

—————————————————————–
Program (19) ~ while_loop_example-1.sh
——————————————————————

#!/bin/bash

mywait=wait

while [ “${mywait}” = “wait” ]
do
echo “arun”
done

——————————————————————-
Program (20) ~ while_loop_example-2.sh
——————————————————————–

#! /bin/bash

## on command line -> i=0 && while [ $i -le 10 ] ; do echo $i; i=$(expr $i + 1); done

i=0
while [ $i -le 10 ]
do
echo $i
i=$(expr $i + 1)
done

——————————————————————–

* Please download PDF file http://www.slideshare.net/arunbagul/bash-learning-by-examples/

Regards,
Arun

Как настроить несколько мастер репликации MySQL

Как настроить несколько мастер репликации MySQL

Введение ~

Я собирался написать статью о Multi репликации MySQL так долго, наконец начали сейчас!. См. статью на тему “Как настроить репликации MySQL с одним ведущим” URL ~ http://www.indiangnu.org/2007/mysql-replication-one-master-multiple-slave/

* Позвольте мне сообщить вам все, что многолетние репликации в MySQL основывается исключительно на следующие две переменные. Она не имеет ничего общего с репликацией технологии, используемые в репликации MySQL ….

mysql> show variables like ‘%increment_%’;
+——————————-+——-+
| Variable_name                 | Value |
+——————————-+——-+
| auto_increment_increment      | 1     |
| auto_increment_offset         | 1     |
+——————————-+——-+
2 rows in set (0.00 sec)

mysql>

** Requirements ~

a) Master Hosts (2 master in my case) ~
master-1 => 10.66.66.194
master-2 => 10.66.90.135
b) Replication Slave (1 slave) ~
Slave => 10.66.75.137

c) MySQL server (with replication support)

** Let us understand how it works ?

* Master-1 Server =>

Set following variables…

mysql> set auto_increment_increment=5;
mysql> set auto_increment_offset=1;

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 2     |
| auto_increment_offset    | 1     |
+————————–+——-+
2 rows in set (0.00 sec)

mysql>

** Create Table ~

mysql> create table class ( rollno INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(30) );

** Add Record now ~

mysql> INSERT INTO class VALUES (”,’Arun Bagul’);
mysql> INSERT INTO class VALUES (”,’Ravi Bhure’);
mysql> INSERT INTO class VALUES (”,’Karthik Appigita’);
mysql> INSERT INTO class VALUES (”,’Ameya Pandit’);

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      1 | Arun Bagul       |
|      3 | Ravi Bhure       |
|      5 | Karthik Appigita |
|      7 | Ameya Pandit     |
+——–+——————+
4 rows in set (0.00 sec)

mysql>

* Master-2 Server =>

Set following variables…

mysql> set auto_increment_increment=2;
mysql> set auto_increment_offset=2;

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 2     |
| auto_increment_offset    | 2     |
+————————–+——-+
2 rows in set (0.00 sec)

mysql>

** Create Table ~

mysql> create table class ( rollno INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(30) );

** Add Record now ~

mysql> INSERT INTO class VALUES (”,’Nilkanth Parab’);
mysql> INSERT INTO class VALUES (”,’Nishit Shah’);
mysql> INSERT INTO class VALUES (”,’Ram Krishna’);
mysql> INSERT INTO class VALUES (”,’Suhail Thakur’);

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      2 | Nilkanth Parab   |
|      4 | Nishit Shah      |
|      6 | Ram Krishna      |
|      8 | Suhail Thakur    |
+——–+——————+
4 rows in set (0.00 sec)

mysql>

** What is the importance of “auto_increment_increment” and “auto_increment_offset” ~

mysql> desc class;
+——–+————-+——+—–+———+—————-+
| Field  | Type        | Null | Key | Default | Extra          |
+——–+————-+——+—–+———+—————-+
| rollno | int(5)      | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | YES  |     | NULL    |                |
+——–+————-+——+—–+———+—————-+

auto_increment_offset    => This is BASE value for column with “auto_increment” attribute (please refer the above example)
auto_increment_increment => This is the increment value for column with “auto_increment” attribute

** If you combine the both tables (master-1 and master-2) the final table will look like this ~

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      1 | Arun Bagul       |
|      2 | Nilkanth Parab   |
|      3 | Ravi Bhure       |
|      4 | Nishit Shah      |
|      5 | Karthik Appigita |
|      6 | Ram Krishna      |
|      7 | Ameya Pandit     |
|      8 | Suhail Thakur    |
+——–+——————+
8 rows in set (0.00 sec)

mysql>

** This is how Multi master replication works….

auto_increment_offset=Nth master server
auto_increment_increment=M

Где —
N => NTH ряд мастер-сервера (на мастер-1 Keep It 1 и 2 мастер-Keep It 2 и так далее ..)
M => целый ряд мастер-сервер (2 в нашем случае, но лучше держать это значение высокой, так что мы можем добавить новый мастер-сервера легко)

Log-славянский Обновления => Славянский сервер не войти в свой собственный бинарный журнал любые обновления, которые были получены от главного сервера. Эта опция говорит раб журнала обновлений исполнении своих SQL поток своих собственных бинарных журналов.

** Убедитесь, что MySQL работает и до мастера на все серверы и серверы-славянский

Как настроить Multi Master MySQL репликации? —

Step 1] Create Database/Tables on  Master  & Slave Servers –

You can create DB on all master & slave server or  create on one server and export that DB on  rest of all servers…

Master-1 => Create DB and Table

mysql> create database student;

mysql> use student;

mysql> create table class ( rollno INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT , name VARCHAR(30) );

mysql> show tables;
+——————-+
| Tables_in_student |
+——————-+
| class             |
+——————-+
1 row in set (0.00 sec)

mysql> desc class;
+——–+————-+——+—–+———+—————-+
| Field  | Type        | Null | Key | Default | Extra          |
+——–+————-+——+—–+———+—————-+
| rollno | int(5)      | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | YES  |     | NULL    |                |
+——–+————-+——+—–+———+—————-+
2 rows in set (0.00 sec)

mysql> SELECT * FROM class;
Empty set (0.00 sec)
mysql>

* Now take dump of “student” DB and export it on all master and Slave server…

[root@master-1~]# mysqldump -u root -p  -d student > /home/arunsb/student.sql

* SCP the dump file on master-2 and slave server ~
[root@master-1~]# scp /home/arunsb/student.sql arunsb@10.66.90.135:/tmp/student.sql
[root@master-1~]# scp /home/arunsb/student.sql arunsb@10.66.75.137:/tmp/student.sql

Login on master-2 and slave ~

mysql> create database student;

[root@master-2~]# mysql -u root -p student < /tmp/student.sql
Enter password:
[root@master-2~]#

[root@master-2~]# mysql -u root -p
Enter password:

mysql> use student

mysql> SELECT * FROM class;
Empty set (0.00 sec)
mysql>

** Please repeat the same steps on Slave server as well…

Step 2] Update “my.cnf” config file on master-1,master-2 and slave server –

[root@master-1~]# cat /etc/my.cnf

###########################
##MySQL replication setting

#Master setting(1)
server-id = 1
log-bin = /var/log/mysql/binary/mysql-bin.log
binlog-do-db = student
binlog-ignore-db = mysql
#log = /var/log/mysql/mysql.log
auto_increment_offset=1
auto_increment_increment=5
log-slave-updates

##slave setting
master-port=3306
master-host=10.66.90.135
master-user=replication
master-password=mypwd
master-connect-retry=60
replicate-do-db=student
###########################

[root@master-1~]#

[root@master-2~]# cat /etc/mysql/my.cnf

###########################
##MySQL replication setting

#Master setting(2)
server-id = 2
log-bin = /var/log/mysql/binary/mysql-bin.log
binlog-do-db=student
binlog-ignore-db = mysql
log = /var/log/mysql/mysql.log
auto_increment_offset=2
auto_increment_increment=5
log-slave-updates

##slave setting
master-port=3306
master-host=10.66.66.194
master-user=replication
master-password=mypwd
master-connect-retry=60
replicate-do-db=student
###########################

[root@master-2~]#

* please create directory for binary log and set permission…

[root@master-1~]# mkdir -p /var/log/mysql/binary/
[root@master-1~]# chown mysql:adm  /var/log/mysql/ /var/log/mysql/binary/

[root@master-2~]# mkdir -p /var/log/mysql/binary/
[root@master-2~]# chown mysql:adm  /var/log/mysql/ /var/log/mysql/binary/

** MySQL Replication Slave ~

[root@slave~]# cat  /etc/my.cnf

[mysqld]

########################################
##slave setting
server-id=4
master-port=3306
master-host=10.66.90.135
master-user=replication
master-password=mypwd
master-connect-retry=60
replicate-do-db=student
########################################

[root@slave~]#

Step 3] Give Replication permission on both masters ~

** Master (1 & 2) ~

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘replication’@’10.66.%.%’ IDENTIFIED BY ‘mypwd’;
Query OK, 0 rows affected (0.00 sec)

mysql>

Step 4] Restart MySQL on both master as well as replication slave server ~

** Please verify setting on master-1 and master-2 server…

* Master-1

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 5     |
| auto_increment_offset    | 1     |
+————————–+——-+
2 rows in set (0.00 sec)

* Master-2

mysql> show variables like ‘%increment_%’;
+————————–+——-+
| Variable_name            | Value |
+————————–+——-+
| auto_increment_increment | 5     |
| auto_increment_offset    | 2     |
+————————–+——-+
2 rows in set (0.00 sec)

** Please verify ‘master’ & ‘slave’ status on both masters(1 & 2) and slave –

mysql> show master status;
mysql> show slave status;

** Multi Master replication is started…

Step 5] Add few records on Master-1 & Master-2 server at same time ~

Add records on both master server at same time and check master and replication slave status as shown above….

** Add following on master-1

mysql> INSERT INTO class VALUES (”,’Arun Bagul’);
mysql> INSERT INTO class VALUES (”,’Ravi Bhure’);
mysql> INSERT INTO class VALUES (”,’Karthik Appigita’);
mysql> INSERT INTO class VALUES (”,’Ameya Pandit’);

** Add following on master-2

mysql> INSERT INTO class VALUES (”,’Nilkanth Parab’);
mysql> INSERT INTO class VALUES (”,’Nishit Shah’);
mysql> INSERT INTO class VALUES (”,’Ram Krishna’);
mysql> INSERT INTO class VALUES (”,’Suhail Thakur’);

** Please verify the numbers of records on both masters and slave….

mysql> SELECT * FROM class;
+——–+——————+
| rollno | name             |
+——–+——————+
|      1 | Arun Bagul       |
|      2 | Nilkanth Parab   |
|      6 | Ravi Bhure       |
|     11 | Karthik Appigita |
|     16 | Ameya Pandit     |
|     17 | Nishit Shah      |
|     22 | Ram Krishna      |
|     27 | Suhail Thakur    |
+——–+——————+
8 rows in set (0.00 sec)

mysql>

* Таким образом, мы все узнали, настроить несколько репликации MySQL. Наслаждайтесь!

Привет,
Arun Bagul