posted by 은이종 2013. 4. 30. 17:49

1. 설정시 참고 사이트

http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=884888

 

2.. apache, Passenger 연동하기

Passenger 는 Apacche 2.x 확장기능으로 Apache 에서 Rails 나 Rack applicaiton 을 실행할 수 있다.

Puppet (>0.24.6) now ships with a Rack application which can embed a puppetmaster. Puppet (>0.24.6) 은 이제 puppetmaster 를 내장할 수 있는 Rack applicaiton 이 포함되어 있다.

 

(1) passenger 설치 (참고 http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger)

puppetmaster 서버의 puppet.conf 설정에 아래 내용 추가

[puppetmasterd]

ssl_client_header = SSL_CLIENT_S_DN

ssl_client_verify_header = SSL_CLIENT_VERIFY

 

(2) Apache2, Rack and Passenger 설치
yum install httpd httpd-devel ruby-devel rubygems

gem install -v 1.1.0 rack

gem install passenger

설치시 아래와 같이 Error 발생시

yum install ruby-devel 실행 후 update 진행.

추가적으로 apache에 필요한 라이브러리를 설치한다.

yum install curl-devel openssl-devel zlib-devel 


passenger-install-apache2-module


Mod_SSL 설치

yum install mod_ssl

   

설치 후 다음의 내용을 apache 설정에 추가하라고 나온다.

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby

 

cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/puppetmaster.conf

vi /etc/httpd/conf.d/puppetmaster.conf

/etc/httpd/conf.d/puppetmaster.conf 설정은 해당 모듈을 로딩하도록 하고 문서를 참고하여 몇가지 옵션을 튜닝하였음. 도메인 이름을 puppet master 서버로 설정함.
port 는 puppet 의 기본 포트인 8140 으로 설정을 하였음.

# cat /etc/httpd/conf.d/puppetmaster.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11

PassengerRuby /usr/bin/ruby

# tuning passenger setting

# http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger

PassengerMaxRequests 10000

PassengerPoolIdleTime 300

PassengerMaxPoolSize 15

PassengerUseGlobalQueue on

PassengerHighPerformance on

Listen 8140

<VirtualHost *:8140>

SSLEngine on

SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA

SSLCertificateFile      /var/lib/puppet/ssl/certs/master.jongeun.co.kr.pem

SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/master.jongeun.co.kr.pem

SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem

SSLCACertificateFile    /var/lib/puppet/ssl/ca/ca_crt.pem

# CRL checking should be enabled; if you have problems with Apache complaining about the CRL, disable the next line

SSLCARevocationFile     /var/lib/puppet/ssl/ca/ca_crl.pem

SSLVerifyClient optional

SSLVerifyDepth  1

SSLOptions +StdEnvVars

# The following client headers allow the same configuration to work with Pound.

RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

ServerName master.jongeun.co.kr

ServerAlias master.jongeun.co.kr

RackAutoDetect On

DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/

<Directory /usr/share/puppet/rack/puppetmasterd/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

<Location />

Options None

Order deny,allow

Deny from all

allow from 10.40

</Location>

</VirtualHost>
 

여러개의 도메인을 이용해야 하므로 SSL 설정에서 ServerName, ServerAlias 에 사용할 모든 도메인을 설정해 주어야 한다. 안 그러면 puppet client 에서 접속시 인증서와 관련한 에러가 난다. (certificate verify failed 등의 메시지)

/var/lib/puppet/ssl/ca/ca_crt.pem 파일은 /var/lib/puppet/ssl/certs/ca.pem 으로 설정을 하는 것이 편리하다.

mkdir -p /usr/share/puppet/rack/puppetmasterd

mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp

cp /usr/share/puppet/ext/rack/files/config.ru /usr/share/puppet/rack/puppetmasterd/

chown puppet /usr/share/puppet/rack/puppetmasterd/config.ru

httpd 시작

/etc/init.d/httpd restart

모든 것이 정상작동을 하면 이제 puppetmaster 는 직접 실행을 하지 않아도 된다. puppet client 에서 요청을 하면 httpd 에서 puppetmaster 를 띄운다. httpd 를 내리면 puppetmaster 도 내려간다.

 

 

 

3. Puppet 시스템 구성

Puppet Master server : puppet certs 서버. puppet client 에 대한 인증 기능 수행
Puppet File server : puppet file 배포용
Puppet Reporting server : puppet reporting 용

 

 

 

 

 

24 모듈 설치 방법

Puppet 은 프로세서 내  forge.puppet labs.com의 연결을  통하여, Module을 설치할수 있다.

puppet module list 현재 설치되어있는 리스트 확인

 

3. NTP 설치

puppet module search ntp

forge.puppet labs.com 의 ntp 프로세서가 있는지 확인한다.

puppet module install puppetlabs-ntp

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설치 및 기본설정  (2) 2013.04.16
posted by 은이종 2013. 4. 16. 18:28

1. 배경

Puppet은 아래의 그림 처럼 하나의 Master 서버에서 설정(아파치 설정, WAS 기동 등..)을
하면 각 Agent에게 설정 정보를 보냅니다. (이러한 명령을 "catalog" 라고 합니다.)
수신된한 Agent는 변경된 설정 정보를 실행하고, 결과 리포트는 Master에게
전송 합니다.

Puppet의 특징

- GPL 기반 오픈 소스이며, Ruby에서 할 수있다
(Ent버전 유료과 오픈 버전이 있습니다.) 
- 자신의 선언적 언어로 시스템을 관리 -> 고유 언어 시스템으로 작성된 파일을 "매니페스트"라고 합니다.
- 클라이언트 / 서버 아키텍처
- 추상화 레이어 -> 여러 OS가 혼합된 환경에서도 OS의 차이를 의식하지 않고, 단일 매니페스트에서 시스템을 관리 할 수 있게 된다.
- 종속성 처리
- LDAP 지원

자원 : 사용자, 파일, 소프트웨어 등의 Puppet 관리 대상
매니페스트 만들기 첫 걸음은 자원을 선언하는 것

file (파일)
user (사용자)
group (그룹)
host (호스트)
package (소프트웨어 패키지)
service (실행중인 서비스)
그외 다양함

Puppet의 기본 동작은 puppetd가 30 분에 1 회 puppetmasterd에 매니페스트를 가져 가고, 자신에 매니페스트를 적용합니다. 
이 경우 puppetd이 puppetmasterd에 액세스 할 타이밍을 제어하는 것이 어렵 기 때문에 다음과 같은 문제가 있습니다.
- Puppet 클라이언트가 수백 대 혹은 그 이상의 규모가 된 경우 Puppet 서버에 대한 액세스가 동 시간대에 집중 될 수있다
- 새로운 명단을 우선 하나만 적용하여 테스트 해보고 싶다,라고하더라도 모든 서버에 마음대로 적용되어 버릴 우려가있다
이 문제를 해결하기 위해서는 puppetrun을 이용해 Puppet을 운영해야합니다.


템플릿 기능은 Puppet 클라이언트의 조건에 따라 내용이 다른 파일을 클라이언트마다 만들수 있습니다.
puppetrun의 일부 옵션(-all-class)이 LDAP에서 노드 관리하지 않으면 사용할 수 없다는 점이 있습니다.
Puppet의 설정 및 데이터 파일 (매니페스트 템플릿 배포 파일, 모듈 등)을 Subversion에서 관리하여,
누가 어떻게 변화를했는지 기록도 남아 있기 때문에, 변경 추적 및 감사 변경을 롤백 할 수 있습니다.

-기타 주의 사항-
1CPU/2GB 메모리 Puppet Master 서버 1대에서 50~100 대의 Puppet 클라이언트를 관리하는 것이 한계

단일 구성의 향상
Puppet에서는 웹 서버로, Ruby 표준에 포함되어있는 WEBrick을 사용하므로, Mongrel으로 대체할 수 있는데, Mongrel의 경우 SSL 처리가 안되므로,리버스 프록시 구성으로 Apache + mod_ssl + mod_proxy 와 같이 구성하면 됩니다.
Nginx를 사용하는 것도 한 방안임.
SSL 인증서를 사용할 경우, 키 인증과 관련한 구성상의 문제점이 있으므로 상세한 확인이 필요한다.

[출처] puppet 요약|작성자 


 2. 설치 환경

  • OS

     테스트 설치 환경은 "CentOS 6.4 x32" 입니다. 

  • Ruby

     Puppet은 Ruby로 만들었기 때문에 반드시 Ruby를 반드시 설치해야 합니다.

     1.9.x 버전이 OpenSSL과 연동시 이슈가 있었습니다. 
     그래서 현 시점에서는 1.8.x 버전을 설치 하시길 권고 드립니다.

  • 서버 구성

     서버는 Master 1 대, Agent 1대 총 2대로 진행 하며, Puppet은 Master <-> Agent 간에
     SSL 통신을 하기 때문에 도메인이 필요 합니다.

     하지만 이번 설치에는 /etc/hosts 파일에 설정을 하면서 진행 했습니다.
     Master 도메인 : master.jongeun.co.kr
     Agent 도메인 : client1.jongeun.co.kr


3. Master 설치 하기

Yum 설치로 진행을 하였습니다. 기본 CentOS repo로는 설치가 안되므로,
sourceforge 의 Repo를 연결하여 진행합니다.

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm


  (1) 루비 및 관련 라이브러리 설치

     ※ruby와 관련 라이브러리들을 설치 합니다.
     # yum install ruby ruby-libs ruby-shadow


   (2) Puppet Master 설치

     Puppet을 설치하려면 3가지 패키지를 설치해 해야 합니다.

  • puppet : Agent 모듈
  • puppet-server : Master 모듈
  • facter : 서버 정보를 gathering 하는 모듈

     # yum install puppet puppet-server facter

 

4. Agent 설치 하기

     Master 설치하기 와 동일하고 3번 설치 항목에서 2개만 설치 합니다.

  1. Puppet Agent 설치 하기

     # yum install puppet facter


5. Master 설정 하기

 vi /etc/puppet/puppet.conf

          [master]

          certname=master.jongeun.co.kr

"cetname"은 master 도메인 정보를 설정하는 속성입니다. 추후에 이 도메인명을 가지고 SSL 인증서를 발급 합니다.

추가로 conf에 "[main]"은 공통 설정,  "[master]"는 master 전용 설정, 마지막으로  "[agent]"는 agent를 위한 설정 입니다. 

Puppet은 TCP 8140을 사용하기에 Iptable에서 허용해줘야합니다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
 


6. Agent 설정 하기

  vi /etc/puppet/puppet.conf

  [agent]
  certname=client1.jongeun.co.kr

 Agent의 도메인 정보를 입력 합니다. 추후에 서버에서 SSL 인증서를 발급 받습니다.

  • 만약 master 도메인이 퍼블릭 도메인이 아닌 경우는 "/etc/hosts" 파일에 도메인 정보를 추가 합니다.

          192.168.0.1 master.jongeun.co.kr
 
 
Puppet은 TCP 8140을 사용하기에 Iptable에서 허용해줘야합니다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT



7. Master to Agent 연동 하기  

     Master 와 각 Agent는 SSL 통신을 합니다. Master 입장에서는 승인된 Agent정보가 필요하며,
     반대로 Agent도 승인된 Master가 필요 합니다. 즉 쌍뱡향 SSL 승인절차를 필요 합니다.
     서로 같에 SSL 승인이 되지 않으면 연동 자체가 불가 합니다.
     Puppet 같은 경우는 자체 CA (certificate authority) 인증 기관이 있고,  SSL 인증을 최적화
     되어 있습니다.
     그래서 공인인증 수준의 SSL 인증 발급을 쉽게 할수 있도록 지원을 합니다. 
     Puppet은 큰 특징 중 하나가 바로 SSL 인증 발급을 하는 것입니다.
     또한 Customize 할수 있는 기능도 제공 합니다.

     인증서 발급 FLOW는 아래와 같습니다.



     (1) Master 서버가 기동을 해서 Agent를 리스닝 합니다.

     (2) Agent는 서버에 접속을 합니다.
     (3) Master는 Agent의 도메인 정보를 얻은 후 SSL을 발급 합니다.
     (4) 발급된 ".pem" 파일을 Agent에 전송 합니다.

     (5) Agent는 "/etc/puppet/ssl" 폴더에 서버 와 본인 인증서를 저장 합니다.
     (6) 이후 부터는 인증서를 통해서 ssl 통신을 합니다.


 <<Master > 
 
puppet master --no-daemonize -d -v

-no-daemonize : puppet을 데몬이 아닌 foreground로 실행하는 옵션

-debug : debug 모드로 실행

-verbose: verbose 모드로 실행




<<Agent >

 
puppet agent --server master.jongeun.co.kr --no-daemonize --verbose




  • << Master >>

    puppet cert --all and --list
     
     
    "+" 표기된 부분은 발급이 완료된 Agent들을 말합니다. 지금 접속한 "node1.example.com"은 "+" 표시가 되어 있지 않습니다.  즉, 서버에 접속은 되어 있지만 발급이 안되서 대기중인 상태를 말합니다.


          puppet cert --sign client1.jongeun.co.kr
       
clien1.jongeun.co.kr 로 접속한 Agent에게 SSL 인증서를 발급 하겠다는 내용 입니다.



  • <<Agent >>
    발급이 완료되면 Master로 부터 새로운 catalog(설정 변경에 대한 지시 사항)을 받습니다.
    puppet agent --server master.jongeun.co.kr --no-daemonize --verbose





  • 최종적으로 아래와 같이 Master/Agent 로그가 나오면 정상적으로 설정이 완료 됩니다.

          추후 Agent가 추가가 되면 위에 설정 방식을 반복해서 설정을 하면 됩니다.

<<Master Side>>

<<Agent Side>>

     다음에 간단하게 Master에 있는 파일을 다운로드 받아서 Agent 특정 위치로 복사하는 예제를
     올리도록 하겠습니다.

8. 참고 자료

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설정 (수정 중)  (0) 2013.04.30
posted by 은이종 2013. 4. 11. 17:46

1. Active Directory 란 ?

Active Diretory(이하 AD)란  디렉토리 서비스이다. 디렉토리 서비스는 네트워크 리소스(사용자 및 컴퓨터, 그룹 등)와 같은 데이터를 저장하고, 네트워크 상에서 필요할 때마다 정보를 검색할 수 있게 해주는 서비스이다.

AD는 네트워트상의 모든 리소스에 관한 정보를 논리적 계층 구조로 저장하여 클라이언트들이 인증을 통해서 언제 어디서라도 그 리소스에 액세스 할 수 있게 해 준다.

① DNS와 통합

AD는 DNS(Domain Name System)를 사용한다. 계정에 대한 정보 등 DNS계정을 통하여 관리 진행이 된다.

② 확장성

관리자가 새로운 클래스를 스키마에 추가 하거나 기존의 크래스에 새로운 속성을 추가 할 수 있다. 스키마는 디렉토리에 저장할 수 있는 각 개체 클래스의 정의와 클래스의 속성을 말한다.

③ 정책을 기반으로 하는 관리

그룹 정책은 사용자나 컴퓨터가 처음 초기화될 때 적용되는 환경 설정이며 그룹 정책 개체(GPO)에 저장하며, GPO에는 디렉토리 개체와 도메인 자원에 접근할 때 적용되는 모든 권한이 설정되어 있다.

④ 정보 보안

AD의 보안 기능은 사용자 인증과 접근 권한 제어이며. 사용자 인증은 중앙에서 관리 하며 접근 권한 제어는 AD의 각 개체뿐 아니라 각 속성에서도 정의가 가능하다.

2. AD 설치 (DC서버 설치)

보통 DC는 DC1서버, DC2서버로 구성한다. (Active-Active)

DC1,2 서버에 AD서비스를 설치한다.

(1)  DC1번 서버에 AD도메인 서비스  서버 역할 추가.

실행창에 "dcpromo"를 입력하여 Active Directory 도메인 설치 마법사를 시작

2. 기존 포리스트에 추가하는 방법과 새 포리스트에 새 도메인을 만들 수 있습니다.

DC1에서는 새 포트리스에 새 도메인 만들기로 설치합니다.

추후 설치될 DC2에서는 기존 포트리스로 설치진행합니다. 자세한 부분은 밑에서 다시 설명하겠습니다.

4. 도메인 이름을 지정합니다.

5. 포리스트 기능 수준을 설정합니다. 사용하는 환경에 맞게 선택해 주시고 [다음]을 클릭합니다.

(제가 설치 진행 OS버전은 W2K8 R2 STD 입니다.)

6. 도메인 기능 수준을 설정합니다. 사용하시는 환경에 맞게 선택해 주시면 될 것 같습니다. [다음]을 클릭합니다.

7. 첫 번째 도메인 컨트롤러일 경우에는 DNS 서버 설치를 권장합니다. [다음]을 클릭하여 DNS 서버를 설치합니다.

주의점으로 DNS가 설치가되는 DC1는 TCP/IP 구성에서 반드시 자기 자신에게 DNS IP 구성을 설정해 주시기 바랍니다.

추가될 DC2번 IP도 미리 할당해 놓으면, 더 편하겠죠?


8. Active Directory 데이터베이스 저장경로를 지정합니다. 디폴트 설정으로 놓고 ㄱㄱ

9. 디렉터리 서비스 복원 모드 관리자 암호를 설정합니다.

10. 설정을 확인한 후 [다음]을 클릭합니다.

11. 서비스를 구성중입니다. 서버 스펙이 따라 차이가 있는데 보통 10~30여분정도 소요됩니다.

12. 설치가 완료되었습니다.

3. DC2 구성

DC를 이중화하여 구성하겠습니다.

시작하기에 앞서서 기본 DNS주소를 DC의 IP주소로 셋팅해 줍니다.

기존의 DC에서 이미 DNS서비스가 실행되고 있으므로 DNS서버의 주소를 DC의 주소로 셋팅하는 과정입니다.

차후 멤버서버가 도메인에 가입을 할 때에도 반드시 선행되어야 하는 과정입니다.

(이 과정을 거치지 않으면 설정 중간에 DC를 찾지못해 오류가 발생합니다.)

당연히 각 서버들과 통신이 잘되고 있는지 핑테스트를 합니다.

cmd 창에서 dcpromo를 입력한 후 마법사가 시작되면

'고급 모드 설치 사용'에 체크하고 다음으로 넘어갑니다.

두번째 DC도 DNS서버의 역할을 수행해야 하므로 체크박스에 체크를 하고 다음으로 넘어갑니다.

이 부분이 중요한 부분입니다.

'새 포리스트에 새 도메인 만들기'가 아닌

'기존 포리스트'-'기존 도메인에 도메인 컨트롤러 추가'를 선택하고 다음으로 넘어갑니다.

기존 도메인에 DC가 있는데 추가로 하나의 DC를 더 생성하는 과정이기 때문에 위와같은 단계를 거치게 됩니다.

'기존 포리스트에 새 도메인 만들기'의 경우는

지금은 하나의 포리스트에 하나의 도메인만 생성하지만

도메인을 여러개 만들고 싶을때 선택합니다

기존에 구성되었던 포리스트의 도메인 이름을 입력하면 됩니다.

이전 포스트에서 도메인 이름을 'lee'로 지정하였으므로, 해당 도메인 이름을 입력합니다.

또한 '현재 로그온되어 있는 자격증명'이 아닌

'대체 자격 증명'을 선택한 후 설정을 클릭합니다.

그러면 위와같은 인증화면이 나오는데

기존 도메인(lee)의 관리자 계정정보를 입력합니다.

정상적으로 입력을 하였다면 위와같이 기존에 생성되었던 도메인이 보여집니다.

하나밖에 나오지 않으므로 다음을 클릭합니다.

추가 옵션에 대한 선택화면입니다. 위와같이 설정한 후 다음으로 넘어갑니다.

지금부터는 기존 DC를 구성할때와 똑같이 진행됩니다.

'예'를 선택하고 넘어갑니다.

기존 DC의 데이터와 똑같은 데이터를 가지고 있어야 합니다.

네트워크로 연결이 되어있으므로

'네트워크를 통해 기존 도메인 컨트롤러에서 데이터복제'를 선택하고 다음으로 넘어갑니다.

어떤 도메인 컨트롤러에서 정보를 가져올 지 선택합니다.

현재 네트워크에는 DC가 한대밖에 존재하지 않으므로 하나만 나타납니다.

선택하고 다음으로 넘어갑니다.

각종 설정파일의 보관위치 설정입니다.

마지막으로 설정한 내용에 대한 요약화면이 나오고

다음을 누르면 DC구성이 시작됩니다.

완료 후 재부팅이 시작됩니다.

주 DNS주소는 기존 DC의 주소인 10.10.10.10

보조 DNS주소는 두번째 DC,즉 방금 구성한 서버의 주소인 10.10.10.11 ( 혹은 127.0.0.1 ) 을 넣어줍니다.

이렇게 되면 두번째 DC의 설정도 완료됩니다.

4. AD를 구성하는 각 서버들의 AD클라이언트 설정

도메인 조인을 합니다. 여전히 재 부팅은 필요하네요..

'Windows > AD' 카테고리의 다른 글

AD 계정별 Policy 설정  (0) 2014.07.23
AD 그룹 정책 관리  (0) 2014.04.18
AD 장애  (0) 2014.01.17
AD join시 Open Port  (0) 2014.01.06
AD 설정 1. 계정 2.로그인 대상  (0) 2013.08.28
posted by 은이종 2013. 4. 9. 12:29

FTP는 하위 디렉토리는 전송이 되지 않는다.

그러므로 압축해서 전송을해야하는데, Linux는 간단히 tar로 압축해야하지만.

Windows는 CMD명령어를 지원하는 압축프로그램을 사용해야 한다.

7zip 압축프로그램을 이용하여 압축하고 전송한다.

 

1개의 FTP정보을 넣은 텍스트 파일과 실제로 실행되는 배치파일로 스크립트를 만든다.

 

tp.txt

open 111.111.111.111

jongeun

메롱메롱
prompt
type binary
mput *
bye


연결할 FTP서버의 IP, 계정, 패스워드를 기입하면 된다.


 

Backup.bat

@echo off

set DS=%DATE%

C:\7-Zip\7z.exe a -tzip D:\Backup\mysqldata-%DS%.zip "C:\Program Files\MySQL\MySQL Server 5.5\data\" >> D:\Backuplog\mysqldata-%DS%.log


copy D:\bbj_db_data\ibdata1 D:\Backup\ibdata1-%DS% >> D:\Backuplog\ibdata1-%DS%.log


echo ===== FTP Transfer Start =====

cd \
d:
cd D:\Backup

ftp -s:D:\ftp.txt

echo ===== FTP Transfer End ======


echo ===== Backup File Delete =====

forfiles /p D:\Backup\ /d -1 /c "cmd /c del @file"

posted by 은이종 2013. 4. 5. 17:32
1. MS-SQL 접속 후 Query

Select @@version
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')  

2. Log 파일 확인

c:\Program Files\Microsoft SQL Server\MSSQL.
n\MSSQL\LOG 폴더에서
ERRORLOG 및 ERRORLOG.
n 파일에 열어보면 첫줄에 확인 된다.

보통 MS-SQL설치시 다른경로에 DATA는 설치하므로, 염두하고 확인하면 된다.

 
 

'Windows > MS SQL' 카테고리의 다른 글

[ISMS][MS-SQL] PATCH 이력 확인  (0) 2023.06.30
posted by 은이종 2013. 4. 4. 18:08

0. 개요

python 기반의 툴로

log파일을 읽어 일정시간 차단을 어플로, ssh ftp 등 무작위 로그인을 통한 brute force attack에 대응하기 위한 좋은 어플이다.

iptables , tcpwrapper 등에 해당 host 를 직접 등록하여, 직관적인 차단이 가능하다.

 

1 .설치 과정

공홈 : http://www.fail2ban.org

CentOS 에 yum으로 설치 하려면

vi /etc/yum.repos.d/CentOS-Base.repo

에 아래 글 추가

[dag]
name=Dag RPM Repostory for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[kbs-CentOS-Misc]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=1
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/

 

2. 설치 과정

yum install fail2ban

설치경로는  /etc/fail2ban 이다.

 

3. 설정

설정파일은 /etc/fail2ban/jail.conf

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

 

ignoreip : 무시할 IP주소 (여기에 입력한 IP는 차단 하지 않음) CIDR Mask, DNS, IP를 입력가능

              공백을 이용하여 여러개 입력 가능

bantime : 해킹시도가 감지되었을 때 해당 IP를 차단할 차단기간 (기본값 : 600, 단위 : 초)

findtime : 로그에서 검색할 시간 (기본값 : 600, 단위 : 초)

maxretry : 일정시간동안 해킹시도 횟수

backend : 로그 파일 변경을 감지할 방법 (gamin, polling, auto)

               gamin : Gamin(file alteration monitor)설치된 경우 사용가능

               polling : 주기적으로 점검

               auto : Gamin이 설치된 경우 gamin사용, 아니면 polling 사용

설정파일에서 이메일 주소 변경

:%s/you@mail.com/내메일주소

:%s/fail2ban@mail.com/보내는사람 메일 주소

 

# This jail corresponds to the standard configuration in Fail2ban 0.6.
# The mail-whois action send a notification e-mail with a whois request
# in the body.

[ssh-iptables]

enabled  = false
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com]
logpath  = /var/log/sshd.log
maxretry = 5

[proftpd-iptables]

enabled  = false
filter   = proftpd
action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=ProFTPD, dest=you@example.com]
logpath  = /var/log/proftpd/proftpd.log
maxretry = 6

# This jail forces the backend to "polling".

[sasl-iptables]

enabled  = false
filter   = sasl
backend  = polling
action   = iptables[name=sasl, port=smtp, protocol=tcp]
           sendmail-whois[name=sasl, dest=you@example.com]
logpath  = /var/log/mail.log

실제 적용해야 할 서비스 목록입니다. 가장 중요한 부분이겠죠?

해당 원하는 서비스를 확인후에 enabled = false를 true로 변경하시면 됩니다.

 

변경된 설정을 적용시켜주시고, 재부팅후에도 fail2ban이 실행되게 chkconfig에 등록합니다.

service fail2ban start

chkconfig –levels 235 fail2ban on

 

 

추가 설정

1. devecot-pop3설정

# sudo vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf  <- 파일 추가
[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
ignoreregex =
# sudo vi /etc/fail2bain/jail.conf   <- 아래 내용 추가
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,imap", protocol=tcp]
logpath = /var/log/maillog
maxretry = 20
findtime = 1200
bantime = 1200
# sudo /etc/init.d/fail2ban restart   <- 서비스 재시작

 

Proftpd 필터 사용시 proftpd 설정에 따라 로그를 검사하지 못하는 경우가 생긴다. /etc/fail2ban/filter.d/proftpd.conf 파일을 아래와 같이 변경 (진한 부분을 추가)

failregex = (S+[<HOST>])[: -]+ USER S+: no such user found from S+ [S+] to S+:S+$
            (S+[<HOST>])[: -]+ USER S+ (Login failed): Incorrect password.$
            (S+[<HOST>])[: -]+ SECURITY VIOLATION: S+ login attempted.$
            (S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded$ 
USER S+: no such user found from S* [<HOST>] to S+s*$
          ^<HOST> .* nobody .*PASS .* 530

posted by 은이종 2013. 3. 28. 17:18

A. 작업 사전 설명

jongeun.co.kr (서버 IP 1.1.1.1)이란 도메인이  KT DNS를 사용 중(DNS IP 168.126.63.1)

jongeun.co.kr은 도메인클럽에서 구매하여 관리

KT 에서 SK(58.227.193.227)로 서버 이전(서버 IP 110.45.229.135 로 변경됨)은  및 DNS을 이전 하려 한다.

 

B. 작업 진행

1. SK DNS에 사용 중인 도메인(jongeun.co.kr 1.1.1.1)을  등록해놓는다

등록과정에서 TTL값은 최소한으로 줄여서, 빠른 전파가 되게 설정

 

2.SK DNS에 정상적으로 등록되었는지 Query 확인

dig @58.227.193.227 jongeun.co.kr

 

3. 도메인클럽(도메인 구입처)에서 도메인 설정에서 DNS서버 설정을 KT DNS에서 SK DNS로 변경한다

 

* 실제 서버 이전 전에 미리 변경해둬야  이전 작업 시 변경작업이 용이하다

  이 작업 이후로는 KT DNS쪽은 신경 안 써도 된다.

 

4. 이전 작업 (서버 IP변경)

 

5. SK DNS에서 신규 변경한 IP로 변경

 
6. 이전 후 쿼리 확인 

메일 관련 확인 (DNS 이전시 가장 문제가 많다.)


(1) type=mx  MX레코드 확인
(mx레코드 등록시.. 서브 도메인보다 아래에 있을경우<특히www> 제대로 Query가 이뤄지지 않을 수 있다.
 항상 A레코드 위에 등록하는 버릇!!)

> set type=mx

> xxx.co.kr

서버:    ns1.xxx.co.kr

Address:  211.206.124.xx

xxx.co.kr     MX preference = 10, mail exchanger = xxx.xxxx.co.kr


(2) type=txt  SPF등록 확인

  xxx.co.kr     text =

        "v=spf1 ip4:xxx.xxx.xxx.xxx ~all"


(3)type=ptr  리버스 도메인 확인
 조회 IP를 넣을때 ip를 거꾸로 넣어야한다.
 1.2.3.4 란 IP면
 4.3.2.1.in-addr.arpa

4.3.2.1.in-addr.arpa    name = xxx.xxx.xxx.xxxx


(2) 화이트도메인 확인
Kisarbl.or.kr 
 

(3) 스팸으로 등록되어있는지 확인
http://www.spamhaus.org

 (4) http://www.dnsstuff.com/tools 통하여 빠진 부분이 없는지 최종 확인


'기타' 카테고리의 다른 글

RAID + JBOD  (0) 2013.07.04
Correctable or Uncorrectable Memory (DIMM) Errors  (0) 2013.05.02
POC, Pilot, BMT 약어 설명  (0) 2013.02.20
Filezilla (파일질라) Client 관련 오류  (0) 2013.01.29
Raid Stripe  (0) 2013.01.17
posted by 은이종 2013. 3. 11. 12:20

1. 서비스 확인



Oracle TNSListener, OracleService

2개의 서비스가 실행되어있는지 확인한다.

참고로) Oracle MTSRecoveryService 는 MTS (Microsft Tracaction Server)를 사용하지 않으면, 사용할 필요는 없다.

 

2. 리스너 정상 작동 확인

가.  리스너 프로세서 실행 확인

tasklist | find "TNSLSNR.EXE"

 

나 .리스너 연결 확인


 

다 tnsping 을 이용한 오라클 연결 확인

tns 명 확인

oracle 각 버전의 설치 경로 확인

C:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

tnsnames.ora

를 열면

“SERVICE_NAME =”에서 확인 가능

tnsping service_name

'Backup & Restore' 카테고리의 다른 글

Acronis11 복원  (0) 2013.01.10
posted by 은이종 2013. 2. 25. 17:39

윈도우즈 FTP 전송시, 디렉토리를 포함하여 전송할 수 없다…

Linux 면 tar로 압축할텐데,  Windows2000 이나 2003은 별도의, 프로그램이 필요하다

 

가장 많이 사용하는 압축프로그램으로

알집, 7zip, 반디집 등이 있는데

그 중 국산 무료웨어 프로그램인 반디집을 이용하여 진행한다.

참고로 반디집은 EGG, tar, zip 등 현재 자주 사용하는  규격의 풀기가 가능함

 

http://apps.bandisoft.com/bandizip/
설치형과 포터블이 있으니 상황에 맞춰 다운로드

'Windows' 카테고리의 다른 글

윈도우 CMD에 hostname 표시  (0) 2013.09.26
Windows FTP Script  (0) 2013.04.09
Windows Network error 확인 방법  (0) 2013.01.24
Windows Dump (Widbg, BlueScreenView)  (0) 2013.01.21
Windows 무인설치 (Windows Updates downloader * nlite)  (0) 2012.12.26
posted by 은이종 2013. 2. 24. 09:59


http://www.ppomppu.co.kr/zboard/view.php?id=etc_info&page=1&sn1=&divpage=4&sn=off&ss=off&sc=off&select_arrange=headnum&search_type=&desc=asc&no=22561


http://www.ppomppu.co.kr/zboard/view.php?id=free_picture&page=1&sn1=&divpage=17&sn=off&ss=off&sc=off&keyword=%BA%CE%BB%EA%20%BF%A9%C7%E0%B1%E2&select_arrange=headnum&search_type=subject&desc=asc&no=89496


https://www.facebook.com/ppombu


부산여행시 참고 링크

 

'여행 및 냠냠' 카테고리의 다른 글

<태평역> 2014년 10월 10일 산홍 숯불 꼼장어  (0) 2014.10.11
<은행동> 이윤곱창  (0) 2012.04.21
<교대역> 이맛콩나물해장국  (0) 2010.07.17
<강남역> 악바리  (0) 2010.07.17
<강남역> 크레이지 후크  (1) 2010.07.17
posted by 은이종 2013. 2. 20. 19:10


POC, Pilot, BMT 이 세가지에 대한 IT업계에서 통용되는 의미에 대해 정리를 해 봤습니다.

물론, 약간의 이견과 분야별로 다르게 해석될 수 있으나, 최대한 공통적인, 일반화된 의미로 해석해봤습니다.

1. POC (Proof Of Concept)
기존에 시장에서 사용돼지 않던, 신기술을 프로젝트에 도입하기에 앞서, 검증하기 위한 목적으로 사용.
사업과 관계가 약간은 동떨어진 기술 검토를 위한 프로젝트고객사에서 하고, 업무는 아주 간단한 것을 수반. 신기술 여부는 중요치 않음

2. Pilot
이미 검증된 기술을 가지고, 대규모 프로젝트 진행에 앞서 소규모로 진행해보는 시험 프로젝트를 말함.
본사업(프로젝트) 진행을 위한 수행안 검증 프로젝트로 가령 기술셋을 확정했으면 그 기술셋으로 실제 업무에 적용해보고 문제점이나 개선안을 마련해서 본 프로젝트에 피드백 주는 것
(계획, 기술문제, 관리요소, 위험요소, 비용 이런 것을 피드백하는 용도, 당초 기대한 효과에 비해 결과가 너무 미미하거나 비용이 많이 들면 취소)

3. BMT(Bench Marking Test)
말그대로 성능테스트입니다. 
예를 들면 00발주처에서 테라바이트 라우터를 도입한다고 할때, 입찰에 응한 업체들의 제품에 대해서 성능비교를 하는 겁니다.
필요에 의해 이것 저것 골라다가 테스트해보고 비교하는 것. 장비 뿐만이 아니라 소프트웨어(솔루션)도 포함되구요.
(대부분은 수평적으로 기술셋 비교에 대한 내용이 많지만 업무적 특성을 포괄하는 솔루션인가? 이러한 요건이면 업무도 물론 수반)

'기타' 카테고리의 다른 글

RAID + JBOD  (0) 2013.07.04
Correctable or Uncorrectable Memory (DIMM) Errors  (0) 2013.05.02
서비스 무정지 DNS 기관 이전 시 작업순서  (0) 2013.03.28
Filezilla (파일질라) Client 관련 오류  (0) 2013.01.29
Raid Stripe  (0) 2013.01.17
posted by 은이종 2013. 2. 6. 14:12
1. 리눅스 부팅 과정 이해의 필요성

리눅스 부팅 시 커널패닉이나 파일시스템 에러 같은 경우를 만났을 때 어떻게 해야 할지 몰라 당황하는 경우가 있다. 리눅스 부팅 과정의 이해를 통해 이러한 에러 상황을 효과적으로 대처 할 수 있다.

2. 리눅스 부팅 과정의 이해

1) 전원 ON

2) BIOS 프로그램 실행 – CPU, MEMORY, VGA 같은 하드웨어에 대한 진단 테스트(POST)를 실행한다. 이상 발생시 비프 음을 내며 멈춘다. POST(Power On Self Test)과정이 이상없이 수행되면 부트디바이스의 MBR(하드 디스크의 첫 섹터,크기는 512 byte)에서 부트로더를 불러들인다.

3) 부트로더가 실행되면 레드햇계열에서는 보통 다음과 같은 메시지가 출력되며 GRUB(GRUB이부트로더이다)이 실행된다. GRUB은 커널이미지를 메모리에 로드한다.

Booting Red Hat Enterprise Linux Server (2.6.18-8.el5) in 5 seconds...

4) 그 다음 커널에 의한 초기화가 실행되고 드라이버의 적재가 이루어 진다. 이 과정은dmesg명령이나 /var/log/dmesg 파일에서 확인 할 수 있다. 보통 다음과 같은 것들을 확인 할 수 있다.

커널버전 표시

램 용량 표시

CPU관련 정보 표시

SELinux 상태 표시

Kernel command line 명령 확인

램디스크 할당 (initramfs)

하드드라이브와 파티션 확인

네트워크 카드 확인

파일시스템 활성화

스왑 활성화

5)커널과 드라이버가 로드된 다음에는 /sbin/init 프로세스가 부팅 과정을 마무리 한다. 이때 실행되는 순서를 간략하게나마 나열하면

/sbin/init à /etc/inittab à /etc/rc.d/rc.sysinit à 각 런 레벨 서비스 스크립트

--> /etc/rc.local à 로그인 프롬프트

로 나타낼 수 있다.

3. 각 과정 별 트러블슈팅

1) grub.conf 파일이 손상되거나 내용이 변경되었을때

증상

부팅시 GURB관련 메뉴가 나오지 않음

부팅시 GRUB 콘솔 상태로 바로 이동

mv /boot/grub/grub.conf /boot/grub/grub.conf_bak

해결방법

GRUB 콘솔 명령어로 사용하여 부팅

grub 환경설정파일 손상

root (hd0,0)

cat /etc/fstab

find /etc/fstab

kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/sda7

initrd /initrd-2.6.18-92.el5.img

boot

부팅후 GRUB관련 설정을 점검하고 원인을 찾아 해결한다.

GRUB을 재 설치 한다.

2) MBR 손상시 복구하기

BIOS가 POST과정을 끝마치면 하드디스크의 첫번째 섹터를 읽어드린다. 이부분을 MBR이라고 한다. MBR에는 부트로더와 파티션 정보가 들어있다. 다음과 같은 명령어로 부트로더를 지울 수 있다.

dd if=/dev/zero of=/dev/sda bs=446 count=1

bs를 512로 하면 파티션 정보까지 모두 손상되므로 테스트 서버 외에는 절대 실행하면 안된다. GRUB(부트로더)는 446바이트이내에 설치 되어 있다.

이제 복구를 해보자.

1번 시디로 부팅

#linux rescue

#chroot /mnt/sysimage

#/sbin/grub

grub-install /dev/sda

find /grub/stage1

find /grub/grub.conf

혹은

#/sbin/grub

root(hd0,0)

setup (hd0)

위와같이 GRUB을 재설치하고 리부팅한다.

3) /etc/fstab 손상시

cat /proc/mounts

mount –o remount,rw /

cat /proc/mounts

vi /etc/fstab

에러난 부분 수정후 리부팅

4)/sbin/init 명령어 손상시

rm /sbin/init

/bin/sh: ro: No such file or directory

Kernel panic - not syncing: Attempted to kill init!

SysVinit-2.86-14.i386.rpm 재설치

# linux rescue

#chroot /mnt/sysimage

#ftp 222.239.223.108

#cd centos/5.2/CentOS

#mget Sys*

rpm -Uvh –force SysVinit-2.86-14.i386.rpm

rpm -Vf /sbin/init

chroot /mnt/sysimage

/bin/bash 파일 손상시 다음과 같은 에러 메시지가 나온다.

chroot: cannot run command '/bin/sh' : No such file or directory

#ftp 222.239.223.108

#cd centos/5.2/CentOS

#mget bash*

rpm -Uvh --force --root=/mnt/sysimage bash-*.rpm

기타

/etc/initab, /etc/rc.d/rc.sysinit à initscripts-8.45.19.1.EL-1.el5.centos

주의사항: 시스템을 새로 설치하는게 빠른지 아니면 복구하는게 빠른지 판단을 하여 가장 빠른 복구 프로세스를 수행한다. 자료 백업과 보존을 최우선으로 한다. 가장 안전한 방법을 고른다.

4. 파일 시스템 오류검사 및 복구 요령

파일 시스템이 손상되었을 때 부팅중 문제가 발생 할 수 있다. 파일 시스템이 손상 되었을때의 대표적인 증상은 아래와 같다.

1) 파티션이 Read Only로 마운트 되면서 파일이 생성되지 않는다.

2) 부팅 과정 중 Ctrl+D 입력을 요구 하면서 더 이상 진행이 되지 않는다.

3) 파일시스템이 손상되었을 경우 dmesg명령어나 /var/log/messages에 에러가 남는다.

이러한 상황이 발생 했을 때 fsck명령으로 쉽게 복구 할 수 있다. 다만 파일시스템을 복구할 때 몇 가지 주의 사항이 있는데 이를 지키지 않을 시 데이터를 날려버릴 위험이 있으므로 반드시 다음 주의 사항을 지키면서 복구를 해야 한다.

먼저 파일 시스템을 마운트 시킨 상태에서 복구를 해서는 안된다.

df –h

cat /proc/mounts

명령으로 손상된 파티션이 마운트 되어 있는지 확인한다.

마운트 되어 있으면 umount 시킨 상태에서 복구 명령을 실행 시켜야 한다.

그러면 / 파티션 같은 경우에는 어떻게 복구해야 할까? / 파티션을 umount 시킨다면 복구명령을 실행 할 수 없으니 이런 의문이 당연히 떠 오를 것이다. 이럴때는 다음과 같이 / 파티션을Read Only로 remount 시킨다음 체크를 실행한다.

#cat /proc/mounts

/dev/root / ext3 rw,data=ordered 0 0

와 같은 줄이 보인다. 다음 명령으로 / 파티션을 Read Only로 마운트 시킬 수 있다.

#mount -o remount,ro /

/dev/root / ext3 ro,data=ordered 0 0

/var /usr 파티션 같은 경우 다음과 같은 에러를 내면서 umount가 되지 않을 수도 있다. /usr파티션이 사용되고 있기 때문이다.

umount /usr

umount: /usr: device is busy

umount: /usr: device is busy

그러므로 가장 확실한 방법은 잠시 서비스를 내리고 다음과 같이 1번 시디를 이용해서rescue모드로 부팅을 해서 복구하는 방법이다.

#linux rescue nomount

/dev/sda1 파티션이 ext3 파일 시스템을 사용 하고 있을 때 다음과 같은 명령어로 복구 시킬 수 있다.

#e2fsck –j ext3 –vy /dev/sda1

badblock이 생겼을 때는 -c옵션을 주면 badblock을 체크한다. 그러나 가능하면 badblock이 생겼을 경우 빠른 시간내에 하드를 교체하는 것이 최선이다.

또한 손상 정도가 심한 경우는 파일시스템을 복구해도 차후 같은 증상을 가져 올 수 있기 때문에 서비스를 올린다음 해당 디스크를 교체하는 것이 좋다.

superblock이 손상되었을 경우 다음과 같은 명령어로 복구 시킬 수 있다.

#dumpe2fs /dev/hda1

명령어로 해당 파티션이 정보를 본다. 슈퍼블럭을 확인하고 다음과 같이 복구한다.

#fsck -b 8193 /dev/hda1

슈퍼블럭은 여러 백업본이 있기 때문에 하나가 안되면 다음과 같이 다음 슈퍼블럭을 선택해서 복구하면 된다.
#fsck -b 32768 /dev/hda2

5. 커널패닉이 발생했을 때 위에서 설명한 부팅 과정중 어디에서 에러가 나는지 찾을 수 있어야 한다

그러면 더욱 쉽게 문제점을 해결 할 수 있다. 일단 서버가 돌아가고 있는 상태라면 서버에 리눅스를 처음으로 설치 할 때는 커널 패닉이 없었다는 말이다. 그 뒤에 변화된 환경에 의해 커널패닉이 발생한 것이다.

부팅 할때 발생하는 커널패닉 메세지를 잘 보면 이에 대한 힌트가 담겨 있다. 만약에 운영체제 설치시 하드 디스크 사타 드라이버나 기타 레이드 카드 드라이버를 설치했다면 커널을 업데이트 한 후에는 다시 설치해 줘야 할 것이다. 그렇지 않다면 업데이트된 커널로 부팅을 하면 커널이 드라이버를 적재하는 과정에서 하드디스크(root(hd0,0))를 인식하지 못해서 커널패닉이 발생 할 것이다. 이럴때는 제일 처음 설치할 때의 커널로 부팅을 해 보는 것도 방법이다. 하드디스크의 / 파티션이 손상을 당해서 마운트가 제대로 되지 않으면 mount fail이 뜨면서 커널패닉이 발생할 것이다. 이럴때는 파일 시스템을 체크해서 복구해야 한다. 평소에 부팅할 때 보여지는 메세지들을 잘 분석하고 이해해두자. 리눅스 시스템을 이해하고 트러블슈팅을 하는데 많은 도움을 준다.

'Linux' 카테고리의 다른 글

넷사랑 xshell 기본 설정  (0) 2013.11.12
fail2ban  (0) 2013.04.04
sourceforge로 yum.repo 변경하기  (0) 2012.11.08
< iftop > 리눅스 Traffic 확인 프로그램  (0) 2012.10.26
dnstop 설치  (0) 2012.08.07
posted by 은이종 2013. 1. 29. 19:22

1. 디렉토리 목록이 보이지 않을때

(1) Filezilla설정에서 능동형으로 변경

image

(2) 사용하는 서버 내에서 방화벽 정책 추가

방화벽 인바운드규칙에서 – Fileziila 프로그램 추가 

image

'기타' 카테고리의 다른 글

RAID + JBOD  (0) 2013.07.04
Correctable or Uncorrectable Memory (DIMM) Errors  (0) 2013.05.02
서비스 무정지 DNS 기관 이전 시 작업순서  (0) 2013.03.28
POC, Pilot, BMT 약어 설명  (0) 2013.02.20
Raid Stripe  (0) 2013.01.17
posted by 은이종 2013. 1. 24. 17:12

linux의 경우 network 상태 확인 시 ifconfig로 error값을 확인할 수 있으나

windwos의 경우는 기본적으로 error값을 확인 할 수 없다.

이를 간단하게 regedit 값을 추가하여 확인 할 수 있는 방법이 있어 소개합니다.

적용 전

network_status

regedit 실행

HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Network > Connections > StatMon
(StatMon 은 새로 키값으로 생성하면 됩니다) 

ShowLanErrors 이름으로 DWORD 생성, DWORD 값은 1

생성 후

network_status_after

에러 값이 나오는것을 확인할수 있습니다.

posted by 은이종 2013. 1. 21. 14:52

Windows서버 내, 예측치 못한 이상이 발생한 경우

C:\WINDOWS\MEMORY.DMP

파일을 생성합니다.

 

DUMP관련 설정은 제어판- 시스템-고급-시작 및 복구 에서 확인 하면 됩니다.

 

Dump파일을 쉽게 읽는 프로그램이 있어서 소개합니다.

1. BlueScreenView

http://www.nirsoft.net/utils/blue_screen_view.html

-> 상당히 직관적으로, 간단히 보기에 정말 편하다

 

2. Windbg

MicroSoft 자체 프로그램으로 넷프레임웍4.0 이 필요하다

http://www.microsoft.com/ko-kr/download/confirmation.aspx?id=17851

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279

 

 

설치 후

시작 > 프로그램 > Debugging Tools for Windows > WinDbg 실행

파일 > Open Crash Dump 클릭 하신후 .dmp 파일을 클릭

Command !analyze -v

posted by 은이종 2013. 1. 17. 15:09

레이드 striping array 를 구성할때 동일한 레이드 컨트롤러와 하드디스크를 사용할지라도 stripe width

와 stripe size 에 따라서 전송률과 액세스타임, 시퓨사용율 등의 성능이 차이가 나길래.. 직접 테스트를

해보면서 얻은 결과치를 설명하고자 합니다.

우선 stripe width 경우는 동시에 읽기/쓰기 가능한 parallel stripes의 갯수에 관한것이며.. 이것은

바꿔말하면 어레이에 참여한 디스크의 숫자가 많을수록(more wide) 더 성능을 높게 냅니다. 하지만

4개로 스트라이핑을 구성하는 경우가 일반용 데스크탑에서는 거의 드물기 때문에 논외로 하고요.

2개의 디스크로 어레이를 구성한 경우만을 생각해 봅시다.

따라서 stripe size가 성능을 좌우하는 중요 요소가 되는데요.  이것을 "분할쪼가리(?) 크기" 정도로

해석을 해봅니다. 일반적으로 세팅시 사이즈를 4KB~128KB 정도까지 사용자가 결정을 할수가 있고요.

          △ 사이즈를 작게 쪼갠 경우.                          △ 사이즈를 크게 잡은 경우.

위 그림은 하드 4개로 어레이 구성한것을 예로 든건데.. 보시다시피 stripe size 에 따라서 분할정도가

달라집니다. 여기서 stripe size가 작을수록 파일들의 단편화가 심해지며 이것은 그 파일의 데이타를

포함하는 하나의 블럭에 이용되는 드라이버의 갯수가 증가한다는 의미와 같습니다. 그래서 전송율 즉

transfer performance 는 증가를 하지만, 대신에 파일들을 액세스 할수있는 positioning performance

는 감소를 하게 됩니다.

반대원리로 생각하면 stripe size를 오른쪽처럼 아주 크게 잡은 경우는  전송율은 감소를 하는 대신에

파일들에 대한 엑세스는 증가를 하게됩니다.

이정도로 개념 설명은 그만 넘어가고요. (저도 더이상 자세히는 모릅니다.^^;)

다름이 아니라, 이번에 보드를 p4p800-E Dlx 로 바꾸면서 WD SATA 120G *2개로 스트라이핑을 구성

해봤는데.. 위의 stripe size 별로 성능을 한번 테스트 해봤습니다.

테스트하게된 동기가.. 메뉴얼에 적힌 설명을 읽어보니..

16KB  - 적은 디스크 사용율

64KB  - 일반적인 디스크 사용율

128KB  - 성능위주의 디스크 사용율.  뭐 이런식으로 적혀있길래..

무조건 stripe size = 128K 로 잡고 일단 레이드 구성을 했습니다.  근데 막상 윈도우XP 설치하고 사용을

해보니 기존에 사용했던 히타치 7K250 120G 8M 에 비해 그렇게 빠르다는 느낌을 가질수가 없었습니다.

그저 부팅할때 화살표 3~4번이 2~3번으로 줄어들었다거나 또는 삼디겜 로드 과정에서 근소한 차이로

빠르다는.. 뭐 그 정도였습니다.

  OS

   win XP SP2

  s/w

   IAA RAID ver4.5

   HD Tune ver2.10

하드가 WD 1200JD 두개입니다. 이걸로 제일 먼저 프라미스378 컨트롤러에다 물려서 레이드_0 잡았는데

부팅시 FastTrack 바이오스 인식부분이 딜레이가 심하길래, 부팅용으로 쓰기는 별로겠다 싶어서 과감히

포기를 하고(사실 PDC378 이것때문에 Deluxe 모델 구입한건데 돈 아깝습니다).. ICH5R 에 물려서

설치를 하였습니다.

실제의 체감성능을 비교할려면 ICH5R 컨트롤러에 1200JD*2개에다가 XP 설치하고 몸으로 느끼면서

비교를 해야겠지만.. 윈도우를 6번씩이나 깔아야된다는건 거의 죽음! 이라서.. 히타치 7k250에 부팅용

으로 XP 설치하고 여기서 접근하는 1200JD*2개의 성능입니다. 측정유틸로는 HD Tune을 이용하였고요.

HD Tach 도 돌려봤는데 그다지 얻을 정보가 시원찮아서 빼버렸습니다.

아래 도표를 보시면.. (각각의 테스트는 두번씩 측정을 하고 그중 수치가 좀더 잘 나온녀석으로 샘플을

뽑았습니다.)

전송율 즉 Transfer performance 경우는 이론에 부합하듯이 stripe size가 작을수록 더 높은 수치가

나왔습니다. 근데 4/8/16K 세 경우에서는 우열을 가리기가 힘들었고요. 대신에 32K 로 넘어가면서

급격히(!) 전송율이 하락함을 알수가 있습니다. 또 32/64/128K 셋중에서는 오히려 128K 가 58.3MB/s

로 약간이나마 높은 수치를 보였습니다. 전체적으로 가장 높은 전송율을 보이는것은 size= 16K 에서

85.2MB/s 로 나타납니다. (Avrg 값입니다. Max/Min은 제외.)

액세스 타임입니다. 데이타의 위치를 잘 추적해서 읽고/쓰고 하는데 도움이 되는 녀석입니다.

여기서는 이론과는 달리 stripe size 와는 상관없이 133.2~3 ms 로 거의 동일하게 나타났습니다.

stripe size가 클수록 positioning performance가 높아져서 액세스 속도가 좀더 잘 나온다고 알고

있었는데.. 막상 측정을 해본 결과는 전혀 뜻밖이었습니다. 사이즈와는 전혀 무관하게 거의 동일한

수치로 측정이 되었습니다.

참고로, 이때의 부팅용 히타치 7k250 의 access time 을 측정해보니 12.8ms 로 오히려 더 뛰어난

수치가 나타납니다. 접근속도면에서는 히타치가 더 우세한게 사실인 모양입니다. 대신에 전송율

(transfer rate) 경우는 평균 46.9MB/s 로서 단일하드의 한계치가 드러났습니다. 위에 웨스턴 레이드

경우는 50~85MB/s 정도가 나오니 말입니다.

시퓨사용율 입니다. 이경우가 stripe size 별로 차이가 현격히 드러나고 있습니다. 사이즈가 가장 작은

4K에서는 19.2% 로 높게 측정이 되며 사이즈가 클수록 시퓨사용율은 떨어지고 있음을 봅니다. 첫번째

전송율 측정그림의 size=128K 에서 오히려 64/32K 보다 약간 더 좋은 전송율을 보여주는게 시퓨사용율이

줄어드는것과 연관이 있지않을까 생각을 해봅니다. regression package 같은걸 돌려보면 함수관계도

찾을것 같습니다. 변곡점 같은게 아마 나타날듯..

이상으로 결론을 내면요. 제 경우 ICH5R + 1200JD*2개 스트라이핑 구성시는 각각의 stripe size 별로

고려를 해볼때 16KB 가 가장 최적인것 같습니다. 전송율은 가장 뛰어나고.. 액세스타임은 비슷하고..

유일하게 걸리는게 시퓨사용율이 size>32K 에 비해서 높다는 점인데.. 그렇다고 80->50 대로 떨어지는

전송율을 가지고 사용할수는 없기 때문입니다.

이제 이글을 올린다음에는.. size=16K 에 맞추고 1200JD*2개 에다가 XP 설치해서 세팅을 해볼까 합니다.

그러면 기존에 먼가 빠른 느낌이 없었던 size=128K 에 비해서 체감적으로 얼마나 나아졌는지 알수가

있겠지요. 측정툴로써 아무리 떠든들, 몸으로 느낄수있는 체감성능 향상이 없다면 레이드_0 구성하는

의미가 없으니 말입니다.

흔히들 말하기에.. 데이타나 파일 전송이 많은 컴터라면 stripe size 를 작게 잡아서 전송율을 높여주고

반대로 서버용으로 사용할 컴터라면 size를 높게 잡아서 positioning or locating 을 높여주라는 말들을

많이 합니다. 결국 "Optimal" stripe size 라는건 없다는 소리입니다. 사용자마다 돌리는 애플리케이션이나

컴터의 사용목적에 따라서 사이즈는 각자가 판단하기에 최적이라는 수치를 잡아야 할것입니다.

또 이런 사이즈별로 성능이 컨트롤러를 뭐 사용하느냐.. 하드를 뭐 사용하느냐.. 에 따라서도 달라지는것

같습니다.

제 경우 지금 처한 상황에서는 size = 16K 에 맞추는게 최적값이라고 판단을 하기에 이걸로 결정을

봤습니다. 여러분들도 한번쯤은 사이즈를 조절해보시는게 동일사양에서 좀더 높은(= 원하는) 성능을

이끌어낼수가 있다고 생각을 합니다. 그럼 이만 글 줄이면서 물러갑니다.

** 아래는 측정한 결과들을 캡쳐한 그림입니다.

위에 도표로 이미 작성은 해놨으므로.. 아래는 그냥 참고삼아 보시길 바랍니다.

위쪽부터 순서대로 stripe size = 4 / 8/ 16/ 32/ 64/ 128 KB 입니다.

△ stripe size = 4K

△ stripe size = 8K

△ stripe size = 16K

△ stripe size = 32K

△ stripe size = 64K

△ stripe size = 128K

[출처] stripe에 대한 좋은 자료 스크랩|작성자 검은박쥐

posted by 은이종 2013. 1. 10. 11:24

 ABR11 복원Media 만들기


Acronis미디어.iso 이미지(343MB)가 생성된다.
이 이미지를 CD로 구워서 사용  



 ABR11 CD로 부팅하기

 

  1.  Acronis Backup & Recovery 11 클릭

 

 

 2. 네트워크 구성 클릭

  

 

 ABR11 네트워크 설정

 

 3. 네트워크 설정

 

 

 4. 이 머신을 원격으로 관리합니다 클릭

  

 

  ABR11 복구 대상 선택

 

  5. 복구 메뉴를 선택

   

 

  6. 복구 대상 선택

  

 

  7. 찾아보기 클릭

  

 

  8. 복구할 데이터가 있는 경로로 접근하여 자격증명을 해준다. 

 

 

 9. 복구할 아카이브가 있는 파일을 선택

  

 

 10. 복구할 백업 파일 (아카이브) 선택

 

 

 

 11. 아카이브 안에 있는 백업 개수 중에 복구할 날짜의 파일을 선택

 

 

 12. 백업 개수를 선택하면 밑에 백업 내용에서 복구할 디스크를 선택하여 체크

 

 

 

 ABR11 복구 위치 선택

 

 13. 복구할 위치 선택

 

 

 14. 복구할 디스크의 파티션 지정

  

  시스템 복원 시 항상 MBR을 포함하여 지정하고 복구를 하여야 정상복구 됩니다.

  디스크1에 있는 MBR을 복원할 위치 지정 (하드디스크지정)

  NTFS (C:) 를 복구할 디스크와 용량을 지정

 

15. 디스크를 지정하고 난 후 속성 메뉴에서 파티션 크기 조절 가능(Windows만 정상 동작)

  

 

 

 

  UR(이기종 복원)을 구매 하지 않은 경우 기본 복원 설정은 복구 파일 선택과 복구 위치 설정까지 하여

  복원을 시작하면 됩니다.

 

 ABR11 Universal Restore

 

 16. Universal Restore (이기종 복원) - 사용함으로 변경

      

 

   

   ABR11로 부팅미디어를 꺼내고 머신의 드라이버 CD를 삽입, 새로 설치할 머신의 드라이버 파일을 지정

 

 17. Universal Restore - 새로 설치할 머신의 드라이버 파일들을 지정

 

  -  폴더 지정

  

 

 - 파일 지정

   

 

 - 저장 완료한 후 복원 시작

 

 

ABR 11 복구 진행

 

18. 복구를 진행

 

 

 

 

 복구 완료

 

 19. 작업 완료 후 닫기를 누르고 재부팅

  

 

 20. OS가 복원되면 로그인 후 추가 드라이버들을 설치한다.

 

   

'Backup & Restore' 카테고리의 다른 글

Oracle 서비스 확인 내역(Windows)  (0) 2013.03.11
posted by 은이종 2013. 1. 9. 14:29
 
 CPU, Mem, Traffic, Disk 등  임계치를 설정하여 효율적인 자원 모니터링을 진행할 수 있다.

(1) Disk %로 걸기

Console -> Threshold Templates

Data Template:Host MIB - Hard Drive Space

Data Source: hdd_used

High Threshold: 90 (your choice)

Data Type: Percentage 

 

'Monitor > Cacti' 카테고리의 다른 글

Cacti Plugin  (0) 2014.02.12
Cacti 0.8.8a (2014-02-06 수정)  (0) 2012.09.13
posted by 은이종 2013. 1. 9. 12:17

WAS는 웹 프로그램(혹은 웹 시스템, 웹 사이트, 웹 서비스 등)을 실행할 수 있는 기초적인 환경을 제공


종류로는 WebLogic, WebShpere, tomcat, Jeus, JBoss 등이 있다.

 



Web Application ?  웹을 기반으로 실행되는 프로그램을 의미.


웹브라우저            1.요청

웹서버                 2.처리를 요청

웹어플리케이션서버 3.처리를 수행

DB                     4.처리를 수행

웹어플리케이션      5.서버(처리결과 웹서버로 돌려보낸다)

웹서버                 5.응답

웹 브라우저 

 
 

Web Server

대표적으로 Apache, WebtoB 등이 있다. 
웹서버는 말그래도 작성된 html페이지 등을 네트워크망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션이라고 생각하면 간단하다.

HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다

 

WAS는 이름에서 알수있듯이 web application을 수행할 수 있는 환경을 제공해주는 서버입니다.


 

Web Server 와 Web Application Server의 차이는 ??

웹서버의 아파치나 IIS와 같은 소프트웨어는 HTML/CGI나 기타 웹 문서들을 HTTP규약에 따라 웹 클라이언트와 주고받으며 통신하는 것이 주 역할입니다.

웹애플리케이션서버는 우선 규모가 크고 엔터프라이즈 환경에 필요한 트랜잭션, 보안, 트래픽관리, DB커넥션 풀, 사용자 관리 등등의 다양하고 강력한 기능을 제공하는 s/w를 의미합니다.

 

웹서버에 화면을 동적으로 보여주기위해 여러가지 로직이 들어가게되는데 한서버에 로직이 집중되어 있다보니 무거워지고 속도및 보안에 문제가 생긴다. 그래서 화면에 뿌려주는 로직(Presentation Logic)은 웹서버(Servlet Engine)에 실제돌아가는 로직(Business Logic)은 WAS에서 일을 나누어 역할 분담 시키는 것입니다.

[출처] WAS 란?|작성자 러브

'Web/WAS' 카테고리의 다른 글

각 M/W conf 백업  (0) 2015.06.30
cronolog symblic log 설정  (0) 2015.04.24
Advanced Rest Client (크롬 플러그인)  (0) 2014.11.26
posted by 은이종 2012. 12. 26. 17:48

무인설치 + Windows Update 및 서버들의 Driver 자동화 작업

< 준비과정 >
Windows Update 및 필요한 Dirver
OS Image 
nlite

가. Windwos Update 파일 구하기

1. Windows Updates Downloader
http://www.windowsupdatesdownloader.com/ProgramFiles.aspx 
설치 후,
C:\Program Files\Windows Updates Downloader\WUD.exe 실행
Update List는
http://www.windowsupdatesdownloader.com/UpdateLists.aspx
에서 확인

2. WSUS 에서 파일 구하기



 

'Windows' 카테고리의 다른 글

Windows Network error 확인 방법  (0) 2013.01.24
Windows Dump (Widbg, BlueScreenView)  (0) 2013.01.21
윈도우즈 NTP 서버 및 Client 구성  (0) 2012.12.21
Windows 기본 보안 설정표  (0) 2012.11.12
cwRsync client 설치 및 사용법  (0) 2012.10.12