반응형

 

* selinux 및 firewalld를 disabled 후 진행 했습니다.

 

  • HAProxy URL based routing & load balancing  (haproxy 로드밸런싱, haproxy 라우팅)

  • haproxy 설치
yum -y install haproxy

 

  • /etc/haproxy/haproxy.cfg 설정 파일 수정 (환경에 따라 도메인 및 routing 또는 loadbalancing으로 써있는 부분을 바꿔서 맞춰주면 됩니다.)
defaults
        log     global
        log 127.0.0.1 local2
        mode    http
        option  httplog
        option  dontlognull
        option  http-server-close
        option  forwardfor except 127.0.0.0/8
        option  redispatch
        retries 3
        timeout http-request    20
        timeout queue            86400
        timeout connect          86400
        timeout client             86400
        timeout server             86400
        timeout http-keep-alive 30
        timeout check             20
        maxconn                    50000
        
frontend http
        bind *:80
        acl routing hdr(host) -i routing.nirsa.com
        acl loadbalancing hdr(host) -i loadbalancing.nirsa.com  
        use_backend routing if routing
        use_backend loadbalancing if loadbalancing
        
# 1. URL Based Routing
backend routing
        option httpclose
        option forwardfor
        server routing 10.10.10.10:80

# 2. URL Based LoadBalancing  
backend loadbalancing
        mode http
        stats enable
        stats hide-version
        stats uri /stats
        stats realm Haproxy\ Statistics
        
        # monitoring:monitoring은 loadbalancing.nirsa.com/stats (세션 등 모니터링 페이지)
        ## 도메인에 입력될 ID/PW 이므로 변경 후 사용 해야 합니다.
        stats auth monitoring:monitoring
        
        # 로드밸런싱 방식은 roundrobin으로 사용 했습니다.
        balance roundrobin
        option httpclose
        option forwardfor
        cookie LB insert
        server test-01 10.10.10.20:80 check
        server test-02 10.20.10.30:80 check

 

위와 같이 설정이 끝났다면 서비스 재시작 하고 DNS서버에 웹서버의 A레코드를 HAProxy IP로 변경 후 재대로 라우팅 및 로드밸런싱이 되는지 확인 하시면 됩니다. 참고로, haproxy의 로그는 /var/log/haproxy.log에 남겨지니 참고 하시길 바랍니다.

systemctl restart haproxy
systemctl enable haproxy

 

반응형
반응형

 

  • DNS 관리툴 fmDNS 설치 시 에러 "Database setup failed. Please try again"

해당 에러는 /var/www/html/dnsadmin/config.inc.php 설정 파일에서 입력한 Databases Name 부분을 잘못 입력할 경우 발생할 수 있습니다.

Databases Name 부분($__FM_CONFIG['db']['name]="~~")은 MySQL에 생성한 데이터베이스의 이름이어야 합니다. fmDNS 설치하며 MySQL에 생성했던 데이터 베이스의 이름으로 변경 후 systemctl restart httpd 하여 적용하고 재시도 하면 해결 가능 합니다.

 

반응형
반응형

 

  • DNS 관리툴 fmDNS 설치 시 에러 "ERROR:Could not connect to MySQL. Please check tour credentials."

해당 에러는 fmDNS 설치 시 Database Host에 localhost를 입력하고 그대로 진행할 경우 발생할 수 있습니다. APM, bind, fmDNS를 셋팅한 리눅스 IP를 입력하여 간단히 해결 가능 합니다.

또는 firewalld나 selinux를 확인하여 MySQL에 접근 가능한지 확인해야 합니다.

 

반응형
반응형

 

  • fmDNS 란?

fmDNS는 DNS를 좀 더 관리하기 편하게 webUI를 이용하여 사용하는 오픈소스 툴 입니다.

 

  • fmDNS의 장점

버튼 클릭만으로 DNS SEC을 설정하거나 도메인&존파일 설정 등 webUI가 편하다 생각하시는 분들은 사용하시는걸 추천 드립니다. 그럴일은 많이 없겠지만 리눅스 환경이 낯설고 DNS를 잘 다뤄보지 못한 외부 인원 등이 DNS를 직접 사용해야할 경우에 fmDNS를 도입하는걸 추천 드립니다.

 

  • fmDNS의 단점

변경 사항을 적용하기까지 약 2~3분 가량 걸린다는 점과 비교적 복잡한 설치 과정 입니다.

또한 이미 CLI 환경에서 DNS를 다루어 보셨고 그것이 익숙하신분이라면 오히려 불편하실 겁니다. 익숙하신분들은 DNS 관리툴에서 얻을 수 있는 이점이 없기에 (오히려 관리 차원에서 단점이 더 커질 수 있습니다) 사용하지 마시고 정 궁금하기면 구축 정도만 해보는걸 추천 드립니다.

 

  • DNS 관리툴 fmDNS 설치 및 구축-1 (APM, bind 설치 및 셋팅)

fmDNS를 설치하기 위해서는 APM을 셋팅해야 하고, PHP의 버전은 5.5 이상으로 사용하셔야 합니다. 이번 포스팅에서는 APM 설치까지 포함하여 작성 하겠습니다.

참고로 php 5.5 버전의 경우 php55w 라는 패키지도 많이 설치 하시는걸로 보이는데, php55w으로 설치하면 재대로 연동이 되지 않아서 권한 에러가 발생하니 아래와 같이 설치 진행 해주세요

# apache. dns 설치
yum -y install bind httpd

# php 5.5 설치
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=remi-php55 -y install php php-process php-mysql

# mysql 설치
yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-community-server

# ServerName을 설정하여 httpd start 시 에러가 발생하지 않도록 아래 내용 설정
vi /etc/httpd/conf/httpd.conf
/ServerName
ServerName=localhost

# 서비스 시작/등록
systemctl start httpd
systemctl start mysqld
systemctl start named
systemctl enable httpd
systemctl enable mysqld
systemctl enable named

 

이후 아래와 같이 mysql 설정을 진행 합니다. 이후 fmDNS 설정할 때 다시 설명 하겠지만, 저의 경우 로컬 윈도우의 브라우저에서 fmDNS 설치를 마저 끝낼 예정이므로 외부에서 접속하기 위해 192.168.0.% 으로 열어 두었습니다.

아래를 참고하여 자신의 환경에 맞게 IP 접근 권한을 설정 해주세요.

cat /var/log/mysqld.log | grep 'temporary password'

mysql -u root -p
[초기 패스워드 입력]

# 대소문자,숫자,특수문자를 포함하여 8자 이상만 사용 가능
alter user 'root'@'localhost' identified by '사용할패스워드';
CREATE DATABASE dns;
CREATE USER 'dnsadmin'@'localhost' IDENTIFIED BY '사용할패스워드';
GRANT ALL PRIVILEGES ON dns.* TO 'dnsadmin'@'localhost';

CREATE USER 'dnsadmin'@'192.168.0.%' IDENTIFIED BY '사용할패스워드';
GRANT ALL PRIVILEGES ON dns.* TO 'dnsadmin'@'192.168.0.%';
flush privileges;
commit;
quit

 

참고로, 위에서의 초기 패스워드는 아래 이미지에 빨간 박스가 있는 부분 입니다.

 

 

  • DNS 관리툴 fmDNS 설치 및 구축-2 (fmDNS 설치)

이제 APM 셋팅은 완료 되었으니 fmDNS 설치를 진행 합니다. 2020년 04월 28일을 기준으로 아래 코드를 사용하여 다운로드할 수 있습니다.

cd /opt
wget http://www.facilemanager.com/download/facilemanager-complete-3.5.7.tar.gz
tar -zxvf facilemanager-complete-3.5.7.tar.gz
cp -r /opt/facileManager/server/ /var/www/html/dnsadmin

 

참고로 버전이 바뀔 경우 위대로 따라하면 wget이 안될 수 있습니다. fmDNS 홈페이지에 접속 후 아래 이미지와 같이 다운로드 부분에 마우스로 우클릭하여 "링크 주소 복사"를 클릭하여 링크 주소를 가져올 수 있으니 참고 해주세요.

fmDNS 다운로드 홈페이지 : http://www.facilemanager.com/download/

 

이후 아래와 같이 진행하여 conf 파일을 설치 합니다. 참고로 현재 yum 설치하면 기본 Apache 2.4 버전이 설치되므로 아래 코드는 참고해서 진행 해주시면 됩니다.

vim /etc/httpd/conf.d/dnsadmin.conf
Alias /dnsadmin /var/www/html/dnsadmin

<Directory /var/www/html/dnsadmin/>

 Options FollowSymLinks
 AllowOverride All

# For Apache = 2.3:
# Order allow,deny
# allow from all

# For Apache = 2.4
 Require all granted 
</Directory>
systemctl restart httpd

 

이제 브라우저를 실행시키고 (저같은 경우 로컬 윈도우) https://서버ip/dnsadmin 을 입력하면 아래와 같은 창이 나옵니다.

Database Host는 localhost로 되어 있을텐데 APM, bind, fmDNS를 설치한 리눅스의 IP를 적어주시고 아래의 ID/PW는 위에서 mysqld 설정 시 생성했던 mysql ID/PW를 적어주셔야 합니다.

그리고 Database Name은 위에서 생성했던 dns 가 될겁니다. 저와 같은 설정을 했다면 아래 코드블럭 위아래 순서대로 적으시면 됩니다.

192.168.0.10  (APM, bind, fmDNS 설치한 리눅스 IP)
dns
dnsadmin
mysql 계정 생성 시 입력한 패스워드

 

ID와 PW를 입력하면 아래와 같은 창이 나옵니다.

 

이상태로 그대로 두고, 잠시 리눅스로 돌아와 /var/www/html/dnsadmin/config.inc.php 을 vi 편집기로 열어서 위 이미지에 나왔던 내용들을 모두 붙여넣어줍니다. 저같은 경우 아래 코드들과 같이 될겁니다.

참고로 샘플 파일인 /var/www/html/dnsadmin/config.sample.inc.php 도 있으니 혼동하지 마시기 바랍니다.

vi /var/www/html/dnsadmin/config.inc.php
<?php

/**
 * Contains configuration details for facileManager
 *
 * @package facileManager
 *
 */

/** Database credentials */
$__FM_CONFIG['db']['host'] = '192.168.0.10';
$__FM_CONFIG['db']['user'] = 'dnsadmin';
$__FM_CONFIG['db']['pass'] = '~~~~~~~~';
$__FM_CONFIG['db']['name'] = 'dns';

require_once(ABSPATH . 'fm-modules/facileManager/functions.php');

?>

 

그럼 아래와 같이 체크표시가 되고 Continue를 눌러서 fmDNS에 브라우저로 접근할 때 사용할 계정 정보를 입력 해주면 됩니다.

참고로 Password Validity가 Strong이 되어야하기 때문에 복잡도를 생각하시고 패스워드를 입력해야 합니다. (아마, 패스워드 분실 시 이메일로 찾기 때문에 계속 사용하실 생각이시면 유효한 이메일을 작성 해주세요.)

 

이제 방금 생성한 계정을 입력하여 접속 합니다.

 

fmDNS를 사용할것이기 때문에 Activate를 클릭하여 활성화 해주세요.

 

fmDNS를 활성화하면 아래와 같이 우측 상단 부분이 생길텐데, fmDNS를 눌러주면 fmDNS 화면으로 이동 됩니다.

 

이로써 복잡하면 복잡하다고 할 수 있는 fmDNS 설치가 모두 끝낫습니다.

이후 사용은 webUI 답게 비교적 간단하여 클릭만으로 설정이 가능합니다. 간단한 설정 방법은 이후에 포스팅 하겠습니다.

 

반응형

+ Recent posts