Ana içeriğe atla

haproxy mysql loadbalancer olarak kullanmak



########lb01-/etc//haproxy/haproxy.cfg--####################
global
    pidfile /var/run/haproxy.pid
    daemon
    user haproxy
    group haproxy
    stats socket /var/run/haproxy.socket    user haproxy    group haproxy    mode 600 level admin
    node haproxy_172.16.33.06
    description haproxy    server

        #* Performance Tuning
    maxconn 8192
    spread-checks 3
    quiet
defaults
        #log    global
    mode tcp
    option  dontlognull
    option tcp-smart-accept
    option tcp-smart-connect
        #option dontlog-normal
    retries 3
    option redispatch
    maxconn 8192
    timeout check 3500ms
    timeout queue 3500ms
    timeout connect 3500ms
    timeout client 10800s
    timeout server 10800s

    userlist STATSUSERS
    group admin users admin
    user admin insecure-password admin-parolasi-degistir
    user    stats insecure-password genel-parola-degistir

listen admin_page
    bind *:9600
    mode http
    stats enable
    stats refresh 60s
    stats uri /
    acl AuthOkay_ReadOnly http_auth(STATSUSERS)
    acl AuthOkay_Admin http_auth_group(STATSUSERS) admin
    stats http-request auth realm admin_page unless AuthOkay_ReadOnly
        #stats admin if AuthOkay_Admin

listen haproxy_172_16_33_06._3306
    bind *:3306
    mode tcp
    timeout client 10800s
    timeout server 10800s
    balance leastconn
    option httpchk
    option allbackups
    default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s    maxconn 500 maxqueue 256 weight 100
    server 172.16.33.11 172.16.33.11:3306 check
    server 172.16.33.12 172.16.33.12:3306 check
    server 172.16.33.13 172.16.33.13:3306 check port 9200  inter 2s downinter 5s rise 3 fall 2 slowstart 60s    maxconn 100 maxqueue 256 weight 100 backup

########lb01-/etc//haproxy/haproxy.cfg--####################





#########mysql server---adding-/etc/services----##############
mysqlchk        9200/tcp
mysqlchk        9200/tcp





#########mysql server---adding-/etc/services----##############

#########mysql server---adding- xinetd services----############

/etc/xinetd.d/mysqlchk
# default: on
# description: mysqlchk
service mysqlchk
{
        flags           = REUSE
        socket_type     = stream
        port            = 9200
        wait            = no
        user            = root
        server          = /usr/local/sbin/mysqlchk
        log_on_failure  += USERID
        log_on_success  =
        disable         = no
        #only_from       = 0.0.0.0/0
        only_from       = 0.0.0.0/0
        per_source      = UNLIMITED
}
#########mysql server---adding- xinetd services----##############



######################mysqlchk######################
#####!/bin/bash
#
# This script checks if a mysql server is healthy running on localhost. It will
# return:
# "HTTP/1.x 200 OK\r" (if mysql is running smoothly)
# - OR -
# "HTTP/1.x 500 Internal Server Error\r" (else)
#
# The purpose of this script is make haproxy capable of monitoring mysql properly
#

MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USERNAME='smysqlchk'
MYSQL_PASSWORD='smy$qlchk*!'
MYSQL_OPTS="-N -q -A --connect-timeout=10"
TMP_FILE="/dev/shm/mysqlchk.$$.out"
ERR_FILE="/dev/shm/mysqlchk.$$.err"
FORCE_FAIL="/dev/shm/proxyoff"
MYSQL_BIN='/usr/bin/mysql'
CHECK_QUERY="show global status where variable_name='wsrep_local_state'"
CHECK_QUERY2="show global variables where variable_name='wsrep_sst_method'"
CHECK_QUERY3="show global variables where variable_name='read_only'"
preflight_check()
{
    for I in "$TMP_FILE" "$ERR_FILE"; do
        if [ -f "$I" ]; then
            if [ ! -w $I ]; then
                echo -e "HTTP/1.1 503 Service Unavailable\r\n"
                echo -e "Content-Type: Content-Type: text/plain\r\n"
                echo -e "\r\n"
                echo -e "Cannot write to $I\r\n"
                echo -e "\r\n"
                exit 1
            fi
        fi
    done
}
return_ok()
{
    echo -e "HTTP/1.1 200 OK\r\n"
    echo -e "Content-Type: text/html\r\n"
    echo -e "Content-Length: 43\r\n"
    echo -e "\r\n"
    echo -e "<html><body>MySQL is running.</body></html>\r\n"
    echo -e "\r\n"
  #  rm $ERR_FILE $TMP_FILE
    exit 0
}
return_fail()
{
    echo -e "HTTP/1.1 503 Service Unavailable\r\n"
    echo -e "Content-Type: text/html\r\n"
    echo -e "Content-Length: 42\r\n"
    echo -e "\r\n"
    echo -e "<html><body>MySQL is *down*.</body></html>\r\n"
#    sed -e 's/\n$/\r\n/' $ERR_FILE
    echo -e "\r\n"
 #   rm $ERR_FILE $TMP_FILE
    exit 1
}
preflight_check
if [ -f "$FORCE_FAIL" ]; then
        echo "$FORCE_FAIL found" > $ERR_FILE
        return_fail;
fi
status=$($MYSQL_BIN $MYSQL_OPTS --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "$CHECK_QUERY;" 2>/dev/null | awk '{print $2;}')
if [ $? -ne 0 ]; then
        return_fail;
fi

if [ $status -eq 2 ] || [ $status -eq 4 ] ; then

    readonly=$($MYSQL_BIN $MYSQL_OPTS --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "$CHECK_QUERY3;" 2>/dev/null | awk '{print $2;}')
    if [ $? -ne 0 ]; then
        return_fail;
    fi   
    if [ "$readonly" = "YES" -o "$readonly" = "ON" ]; then
        return_fail;
    fi

    if [ $status -eq 2 ]; then
        method=$($MYSQL_BIN $MYSQL_OPTS --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "$CHECK_QUERY2;" 2>/dev/null | awk '{print $2;}')
        if [ $? -ne 0 ]; then
            return_fail;
        fi
        if [ -z "$method" ] || [ "$method" = "rsync" ] || [ "$method" = "mysqldump" ]; then
            return_fail;
        fi
    fi
    return_ok;
fi

return_fail;

######################mysqlchk######################

Yorumlar

Bu blogdaki popüler yayınlar

ttnet tilgin hg1332 modem(router) kablosuz özelliğini güçlendirmek

Bu gün ttnetin hediyesi olan tilgin yönlendiriciyle biraz oynayayım dedim Matkap, ve rg316-rp-sma kablo alıp cihazın kapağını tekrar açtım. Matkapla usb çıkışın yanına bir delik açarak kaployu taktım. Sonra elimdeki antenlerden ikiti tanesini takıp test ettim. . Bu iki antenin, gözle farkedilir derecede sinyalleri kuvvetlendirdiğini fark ettim.. Normalde bu cihaz ile evin iki en uc noktaları arasında haberleşme olmaz iken şimdi en kör iki uç arasında sorun olmadan kablosuz kullanılabildiğini gördüm. Arada 4 tane kuvvetli beton duvar mevcut. Deneme bitti, tilgin rafa kalktı yine. Her nekadar ben bu cihazı kaldırsamda, kullanmak zorunda olan arkadaşlar, bir kablo ve ikitane anten takarak her herde kullanabilirler. İyi eğlenceler.

docker servisi proxy ayarı

  /etc/systemd/system/docker.service.d/http-proxy.conf   [Service] Environment="HTTP_PROXY= http://10.27.152.40:8080" Environment="HTTPS_PROXY= http://10.27.152.40:8080" # systemctl daemon-reload # systemctl restart docker # systemctl show --property=Environment docker

internet servis sağlayıcıları gerçekten tam bir servis sağlıyor mu?

 Bu ay taşındıktan sonra eski evde kullandığımız süperonline kullanmaya devam edeyim dedim ve bin pişman oldum. Eski evde süperonline dinamek gerçek ip adresi ile hizmet verirken, yeni yerde cgnat-sanal ip adresi ile hizmet vermeye başlamışlar. Sözde biz kullanıcıların menfaite olan bu davranış, aslında biz kullanıcıların zararına, superonline kullanıcı başına aylık ortalama +2$ kar sağlamasına yarıyor. Çünkü gerçek ip adresinin maliyeti ortalama $2 :-) Gerçek dinamik ip adresi vermemeleri, statik ip adresi kullanmaya zorlamalarından dolayı süperonline aboneliğim 15 gün sürdü. 15 Gün sürmesinin nedenide süperonline beni yanıltması, gerçek cevabı geciktirmesi. Çünkü bir hizmet ve ürün alımında ilk 14 gün neden göstermeksizin anlaşmadan vaz geçilebiliyor!!! Kişisel tecrübemle Türkcell Süperonline   dan kesinlikle bir daha hizmet almam, kimseyede tavsiye etmem.  Umarım gelecekte süperonline müşterilerine karşı açık ve net bilgi verir, müşteri odaklı bir şirket olur....