2010/09/30

ASP.NET 에서 Googlebot, msnbot, Yahoo slurp 같은 크롤러(Crawler) 체크

ASP.NET 에서는 Request.Browser.Crawler 를 통해서 Bool 값으로 체크가 가능합니다.
하지만, 체크할려면 어떤게 검색엔진인지 아닌지 구분할수 있는 데이터가 있어야 하는데, 그것을 지정하는 것이 web.config 에서의 browserCaps 섹션 입니다.
 
< configuration>
    < system.web>
        < browserCaps>
            < filter>
                < !--Google Crawler-->
                    < case match="Googlebot">browser=Googlebot crawler=true </case> 
< !-- Yahoo Crawler -->
                            <case
 match="http\:\/\/help.yahoo.com\/help\/us\/ysearch\/slurp">
browser=YahooCrawler crawler=true
 </case>
                            
< !--MSN Crawler-->
                                <case match="msnbot">
browser=msnbot crawler=true
 < /case>
 </filter>
 < /browserCaps>
 </system.web>
 < /configuration>

위와 같은 형식으로 지정후에 다음과 같은 방법으로

System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;

if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).Crawler)
{
    labelText = "크롤러.";
}
else
{
    labelText = "크롤러가 아님.";
}

검색엔진인지 아닌지 판별합니다.


 

2010/09/28

삭제되지 않은(시스템 예약명) 파일 삭제, rm.exe 가 아닌 ren.exe 이용

예전 리소스킷에 포함된 rm.exe 로 지워도 되는데,. 구하기도 어렵고 또 일부에서는 작동도 되지 않는 경우도 많음. 참고: http://support.microsoft.com/kb/120716 

그것 보다는,. 그냥 ren 을 이용해서 이름을 변경한후에 삭제를 하면 됩니다.
(이미 많이 알려진 내용으로, 새로운 팁이 아니라 급할때 써먹기 위한....^^) 

ren \\.\c:\con.com file.txt


2010/09/19

rdpdr / ID: 54

이벤트 ID( 54 )(원본 ( rdpdr )에 있음)에 대한 설명을 찾을 수 없습니다. 로컬 컴퓨터에 원격 컴퓨터에서 보낸 메시지를 표시하기 위해 필요한 레지스트리 정보 또는 메시지 DLL 파일이 없을 수 있습니다. 이 설명을 검색하는 데 /AUXSOURCE= 플래그를 사용할 수 있습니다. 자세한 정보는 도움말 및 지원을 참조하십시오. 다음 정보는 이벤트의 일부입니다. \Device\RdpDrDvMgr.

2010/09/17

Netsh IPSec

명령별 자세한 도움말은 "명령어 ?" 와 같이 하면 사용법이 자세하게 나옴

netsh ipsec dump           - 구성 스크립트를 표시합니다.
netsh ipsec dynamic add            - 새 정책 및 관련 정보를 만듭니다.
netsh ipsec dynamic delete         - 정책 및 관련 정보를 삭제합니다
netsh ipsec dynamic dump           - 구성 스크립트를 표시합니다.
netsh ipsec dynamic set            - 기존 정책 및 관련 정보를 수정합니다
netsh ipsec dynamic show           - 정책 및 관련 정보의 세부 사항을 표시합니다

netsh ipsec static add            - 새 정책 및 관련 정보를 만듭니다.
netsh ipsec static delete         - 정책 및 관련 정보를 삭제합니다
netsh ipsec static dump           - 구성 스크립트를 표시합니다.
netsh ipsec static exportpolicy   - 정책 저장소에서 모든 정책을 내보냅니다
netsh ipsec static importpolicy   - 정책을 파일에서 정책 저장소로 가져옵니다
netsh ipsec static restorepolicyexamples - 기본 예제 정책을 복원합니다.
netsh ipsec static set            - 기존 정책 및 관련 정보를 수정합니다
netsh ipsec static show           - 정책 및 관련 정보의 세부 사항을 표시합니다

ex,
정책백업. netsh ipsec static exportpolicy c:\aaa.ipsec

필터추가. netsh ipsec static add filter filterlist=test  description="테스트"  srcaddr=192.168.0.1 dstaddr=127.0.0.1 srcmask=32(255.255.255.255) dstport=80 protocol=TCP mirrored=yes

netsh ipsec static add filter filterlist="OUT->IN" description="" srcaddr=ANY dstaddr=me dstport=5500 protocol=TCP mirrored=yes

2010/09/15

2010년 9월 Microsoft 보안 공지

Microsoft IIS(인터넷 정보 서비스)의 취약점으로 인한 원격 코드 실행 문제점(2267960)
http://www.microsoft.com/korea/technet/security/bulletin/ms10-065.mspx

이 보안 업데이트는 IIS(인터넷 정보 서비스)에 대해 비공개적으로 보고된 취약점 2건과 공개된 취약점 1건을 해결합니다. 이 중 가장 심각한 취약점으로 인해 클라이언트가 특수하게 조작된 HTTP 요청을 서버로 전송할 경우 원격 코드 실행이 허용될 수 있습니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다.


원격 프로시저 호출의 취약점으로 인한 원격 코드 실행 문제점(982802)
http://www.microsoft.com/korea/technet/security/bulletin/ms10-066.mspx

이 보안 업데이트는 비공개적으로 보고된 Microsoft Windows의 취약점을 해결합니다. 이 보안 업데이트의 심각도는 지원 대상인 모든 Windows XP 및 Windows Server 2003 에디션에 대해 중요입니다. 지원 대상인 모든 Windows Vista, Windows Server 2008, Windows 7 및 Windows Server 2008 R2 에디션은 이 취약점의 영향을 받지 않습니다.

이 취약점으로 인해 공격자가 특수하게 조작된 RPC 응답을 클라이언트가 시작한 RPC 요청에 보낼 경우 원격 코드 실행이 허용될 수 있습니다. 이 취약점 악용에 성공한 공격자는 임의 코드를 실행하여 영향을 받는 시스템을 완전히 제어할 수 있습니다. 공격자는 사용자가 공격자에 의해 제어되는 악의적인 서버로의 RPC 연결을 시작하도록 유도해야 합니다. 공격자는 사용자 조작 없이 이 취약점을 원격으로 악용할 수 없습니다.


로컬 보안 기관 하위 시스템 서비스의 취약점으로 인한 권한 상승 문제점(983539)
http://www.microsoft.com/korea/technet/security/bulletin/ms10-068.mspx

이 보안 업데이트는 Active Directory, ADAM(Active Directory Application Mode) 및 AD LDS(Active Directory Lightweight Directory Service)에서 발견되어 비공개적으로 보고된 취약점 1건을 해결합니다. 이 취약점으로 인해 인증된 공격자가 특수하게 조작된 LDAP(Lightweight Directory Access Protocol) 메시지를 수신하는 LSASS 서버에 보낼 경우 권한 상승이 허용될 수 있습니다. 공격자가 이 취약점을 성공적으로 악용하려면 대상 Windows 도메인 내의 구성원 계정이 있어야 합니다. 그러나 Windows 도메인에 참가한 워크스테이션이 있어야 할 필요는 없습니다.


Windows CSRSS의 취약점으로 인한 권한 상승 문제점(2121546)
http://www.microsoft.com/korea/technet/security/bulletin/ms10-069.mspx

이 보안 업데이트는 비공개적으로 보고된 Microsoft Windows의 취약점을 해결합니다. 이 보안 업데이트의 심각도는 지원 대상인 모든 Windows XP 및 Windows Server 2003 에디션에 대해 중요입니다. 지원 대상인 모든 Windows Vista, Windows Server 2008, Windows 7 및 Windows Server 2008 R2 에디션은 이 취약점의 영향을 받지 않습니다.

이 취약점으로 인해 공격자가 중국어, 일본어 또는 한국어 시스템 로캘로 구성된 영향 받는 시스템에 로그온할 때 권한 상승이 허용될 수 있습니다. 취약점 악용에 성공한 공격자는 프로그램을 설치하거나 데이터를 보고 변경하거나 삭제하고 모든 사용자 권한이 있는 새 계정을 만들 수 있습니다.


IIS MIME, docx pptx xlsx hwp

IIS 에서 다운로드(404 Not Found)가 안될경우 추가해줘야 하는 MIME Types...

.docx, application/vnd.openxmlformats-officedocument.wordprocessingml.document
.pptx, application/vnd.openxmlformats-officedocument.presentationml.presentation
.xlsx, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.hwp, application/unknown 또는  application/octet-stream  또는 application/hwp

당장 생각나는게 위에것 밖에는....
또 뭐가 있을까요?..^^

2010/09/10

W3SVC / ID: 1120

The World Wide Web Publishing Service failed to obtain cache counters from HTTP.SYS. The reported performance counters do not include performance counters from HTTP.SYS for this gathering. The data field contains the error number.

2010/09/09

DNS / ID: 6004

DNS 서버거 없거나 권한이 없는 영역에 대한 영역 전송 요청을 xxx.xxx.xxx.xxx 으로 부터 받았습니다.

2010/09/08

Intel(R) AMT / ID: 2002

[UNS] Failed to subscribe to local Intel(R) AMT.

kernal-power / ID: 41

시스템이 비정상적으로 종료된 후 다시 부팅되었습니다. 이 오류는 시스템이 응답을 멈추었거나 손상되었거나 예기치 않게 전원 공급이 중단되면 발생할 수 있습니다.

2010/09/03

ASP.NET sessionState SQL Server 설정 및 관리

ASP.NET 에서의 상태(세션)값 관리 모드로는 다음과 같은 것을 제공합니다.

InProc - 이건 작업자 프로세스에 세션을 저장하겠다는 것. 일반적인 방법.
StateServer - 이건, ASP.NET State 서비스인 별도의 프로세스에서 관리하는것.
SQLServer - 요건 DB 레코드에 저장 관리 하겠다는것.

작업자 프로세스가 장애나, 관리목적의 재생이 발생하는 경우 InProc 는 세션값을 잃게 됩니다. 그래서 세션 기반 로그온 상태 관리를 한다면 StateServer 나 SQLServer 가 효과적인데요,,

StateServer 는 간단합니다.
그냥, ASP.NET State Service 서비스 실행하고,. sessionState 를 StateServer 로만 변경해 주면 끝납니다.

SQLServer 의 경우에는, SQL Server 에다가 먼저 Database 를 만들어야 합니다. 생성 스크립느는 버젼별 닷넷 프레임워크가 설치된, C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 폴더에 보면 InstallSqlState.sql 쿼리문을 실행하면 됩니다.

위 쿼리문은, ASPState 라는 DB와, 관련 프로시져, Job 등이 자동 생성됩니다. 삭제는 같은 폴더에 있는 UninstallSqlState.sql 쿼리문 입니다.

실제 세션상태 관리 정보는 tempdb 에 저장을 하므로, SQL Server 가 재시작되면 역시 tempdb 특성상 세션값을 잃게 됩니다. 그래서, 잃지 않게 할려면 ASPState 에 테이블을 생성하여 관리하면 되는데요. 관련 쿼리는 InstallPersistSqlState.sql 입니다.

web.config 에서는 다음과 같은 형식의 노드가 있으면 됩니다.

<sessionState  mode="SQLServer" sqlConnectionString="Password=pwd;Persist Security Info=True;User ID=ASPState;Data Source=xxx.xxx.xxx.xxx"  timeout="60" cookieless="false" />

ASPState 에 dbo 권한을 가지고 있는 계정을 생성후에 실제  웹페이지를 호출하게 되면, 아마도 tempdb 의 ASPStateTempSessions ASPStateTempApplications 두개 테이블에 대한 권한 오류가 날것입니다.

그럴경우, ASPState 계정에 대해서, 위 2개 테이블에 대한 적절한 권한을 주거나 또는 tempdb 에 대해서 data read/write 권한을 설정해 주면 됩니다.

ASPStateTempApplications 는 어떤 웹어플리케이션인지 구분값을 관리하는 테이블이고, ASPStateTempSessions 는 실제 세션값 정보가 저장되어 있는 테이블 입니다.

422619012 /lm/w3svc/1301884030/root

컬럼: SessionId Created Expires LockDate LockDateLocal LockCookie Timeout 
Locked SessionItemShort SessionItemLong Flags

데이터: vzodgrqw511wcr45b1gixmff1930a784 
2010-09-03 04:45:23.930 
2010-09-03 05:45:28.800 
2010-09-03 04:45:28.760 
2010-09-03 13:45:28.760 

60 

0x3C000000010002000000FFFFFFFF0B436F6D70616E794E616D650
C436F6D70616E79456D61696C0B000000220000000109ED959C
EBB984EBA19C01157765626D61737465724068616E6269726F2E636F6DFF 
NULL 
0

만료된 세션을 파기하기 위해서 Job 에는 ASPState_Job_DeleteExpiredSessions 이 등록되어 매 1분마다 체크하여 만료된 세션은 파기 됩니다.

Microsoft Security Essentials의 차기 버전의 베타

http://windowsteamblog.com/windows/b/bloggingwindows/archive/2010/07/20/beta-for-next-version-of-microsoft-security-essentials-now-available.aspx

데스크톱을 안전하게 지켜주는 든든한 무료 도구인 Microsoft Security Essentials의 차기 버전의 베타가 베일을 벗었습니다. 크게 네 가지가 기존 버전에 비해 강화되었습니다. 

1.윈도우 방화벽과 통합되어 보다 강력한 데스크톱 보안 체제를 갖추게 되었습니다. 
2. 웹 관련 보안 위협에 대한 보호 기능이 개선되었습니다. 
3. 맬웨어를 막는 엔진 역시 한 세대 진화하여 더욱 빠르고 정확한 보호를 약속합니다. 
4.  네트워크 침입에 다한 감지 기능의 지원입니다

2010/09/02

WMI를 이용한 MRTG - ProcessorLoad 예제

다음은, Win32_PerfRawData_Tcpip_NetworkInterface 클래스를 이용해서 BytesReceivedPersec,BytesSentPersec  값을 WMI를 통해 가져오는 예제 코드 입니다.

set oSvc = GetObject("winmgmts:root\cimv2")

wqlQuery = "select BytesReceivedPersec,BytesSentPersec
              from Win32_PerfRawData_Tcpip_NetworkInterface
              where Name = 'Realtek RTL8139 Family PCI Fast Ethernet NIC'"


for each oData in oSvc.ExecQuery(wqlQuery)
 for each oProperty in oData.Properties_
  if oProperty.Name = "BytesReceivedPersec" then
   bytesReceived = oProperty.Value
  elseif oProperty.Name = "BytesSentPersec" then
   bytesSent = oProperty.Value
  end if
 next
next

wscript.echo bytesReceived
wscript.echo bytesSent

BytesReceivedPersec,BytesSentPersec 는 각 원시 Raw 값을 가져옵니다.

이 값은 uint 타입인데 vbscript 특성상 형선언에 의미가 없으므로  맨 마지막에서 순서대로 echo 를 통해서 출력만 해주면 됩니다.  중요한것은 무조건 맨처음과 그 다음 출력되는 글자만 값으로 되며, 필히 숫자이어야 하며, 2개를 반환해야 합니다.

출력된값은 MRTG에서 LIne 별로 값을 읽어 들입니다. 다음 부분은 MRTG의 cfg 일부입니다.

Target[serverinfo_wmi]: `cscript //nologo D:\wwwroot\mrtg-2.14.3\bin\traffic.vbs`
Options[serverinfo_wmi]: growright,bits

SNMP에서는 다음과 같은 형식입니다.

Target[serverinfo_snmp]: 65539:public@211.234.xxx.xxx:
Options[serverinfo_snmp]: growright,bits

2개의 차이점은, 거의 없어 보이죠?.
(Options에서 bits 를 넣어주면, 계산된 값에 * 8 을 해줘서 bit/sec 로 계산을 해준다. Byte 단위로 챠트를 출력할려면 bit를 넣어주지 않으면 된다.)

지금까지 예제를 보면, 아주 쉽습니다. 그냥 vbscript를 통해서 2개의 값만 리턴을 해주는 명령어를 넣어주기만 하면 되니깐.. 관리도구에 있는 성능카운터에 있는 모든 클래스를 소스로 이용할수 있습니다. 그외 별도의 응용프로그램에서 리턴해주는 모든값도 가능합니다.

다만, MRTG가 perl 기반이라는 단점외에는...


MRTG(Multi Router Traffic Grapher) - 6. MIB

■ Microsoft Exchange
microsoft_exchange_msg_queued_inbound_delivery
-1.3.6.1.4.1.311.1.1.3.1.1.3.1.0&1.3.6.1.4.1.311.1.1.3.1.1.3.1.0
microsoft_exchange_msg_queued_outbound_delivery
-1.3.6.1.4.1.311.1.1.3.1.1.3.14.0&1.3.6.1.4.1.311.1.1.3.1.1.3.14.0
microsoft_exchange_msg_received_from_internet
-1.3.6.1.4.1.311.1.1.3.1.1.3.15.0&1.3.6.1.4.1.311.1.1.3.1.1.3.15.0
microsoft_exchange_total_kb_received
-1.3.6.1.4.1.311.1.1.3.1.1.3.18.0&1.3.6.1.4.1.311.1.1.3.1.1.3.18.0
microsoft_exchange_total_kb_transmitted
-1.3.6.1.4.1.311.1.1.3.1.1.3.19.0&1.3.6.1.4.1.311.1.1.3.1.1.3.19.0
microsoft_exchange_total_msg_received
-1.3.6.1.4.1.311.1.1.3.1.1.3.20.0&1.3.6.1.4.1.311.1.1.3.1.1.3.20.0


■ Microsoft Windows Server
microsoft_win2k_cpu
-1.3.6.1.2.1.25.3.3.1.2.$INSTANCE&1.3.6.1.2.1.25.3.3.1.2.$INSTANCE
microsoft_win2k_disk_util
-1.3.6.1.2.1.25.2.3.1.6.$INSTANCE&1.3.6.1.2.1.25.2.3.1.6.$INSTANCE
microsoft_win2k_ftp-http_connections
-1.3.6.1.4.1.311.1.7.2.1.13.0&1.3.6.1.4.1.311.1.7.3.1.13.0
microsoft_win2k_number_of_processes
-1.3.6.1.2.1.25.1.6.0&1.3.6.1.2.1.25.1.6.0
microsoft_win2k_number_of_users
-1.3.6.1.2.1.25.1.5.0&1.3.6.1.2.1.25.1.5.0
microsoft_winnt_avgdisk_per_transfer
-1.3.6.1.4.1.311.1.1.3.1.1.6.1.11.$INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.6.1.11.$INSTANCE
microsoft_winnt_bytes_sent_per_second
-1.3.6.1.4.1.311.1.1.3.1.1.11.1.13.1&1.3.6.1.4.1.311.1.1.3.1.1.11.1.13.1
microsoft_winnt_bytes_total_per_second
-1.3.6.1.4.1.311.1.1.3.1.1.11.1.2.1&1.3.6.1.4.1.311.1.1.3.1.1.11.1.2.1
microsoft_winnt_cache_faults
-1.3.6.1.4.1.311.1.1.3.1.1.7.7.0&1.3.6.1.4.1.311.1.1.3.1.1.7.7.0
microsoft_winnt_cpu
-1.3.6.1.4.1.311.1.1.3.1.1.23.9.0&1.3.6.1.4.1.311.1.1.3.1.1.23.9.0
microsoft_winnt_current_sessions
-1.3.6.1.4.1.311.1.1.3.1.1.21.16.0&1.3.6.1.4.1.311.1.1.3.1.1.21.16.0

microsoft_winnt_currentdisk_queue_length
1.3.6.1.4.1.311.1.1.3.1.1.15.1.2.$INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.15.1.2.$INSTANCE
microsoft_winnt_disk_bytes_per_second
1.3.6.1.4.1.311.1.1.3.1.1.15.1.15.$INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.15.1.15.$INSTANCE
microsoft_winnt_files_open
1.3.6.1.4.1.311.1.1.3.1.1.21.15.0&1.3.6.1.4.1.311.1.1.3.1.1.21.15.0
microsoft_winnt_hdd
1.3.6.1.4.1.311.1.1.3.1.1.6.1.3.$INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.6.1.3.$INSTANCE
microsoft_winnt_login_errors
1.3.6.1.4.1.311.1.1.3.1.1.21.8.0&1.3.6.1.4.1.311.1.1.3.1.1.21.8.0
microsoft_winnt_mem_committed_bytes
1.3.6.1.4.1.311.1.1.3.1.1.7.2.0&1.3.6.1.4.1.311.1.1.3.1.1.7.2.0
microsoft_winnt_memory
1.3.6.1.4.1.311.1.1.3.1.1.7.1.0&1.3.6.1.4.1.311.1.1.3.1.1.7.1.0

microsoft_winnt_output_queue_length
1.3.6.1.4.1.311.1.1.3.1.1.11.1.18. $INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.1.3.6.1.4.1.311.1.1.3.1.1.11.1.18.$INSTANCE
microsoft_winnt_pages_per_second
1.3.6.1.4.1.311.1.1.3.1.1.7.9.0&1.3.6.1.4.1.311.1.1.3.1.1.7.9.0
microsoft_winnt_percent_disk_time
1.3.6.1.4.1.311.1.1.3.1.1.15.1.3.$INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.15.1.3.$INSTANCE
microsoft_winnt_percent_privileged_time
1.3.6.1.4.1.311.1.1.3.1.1.17.1.4.1&1.3.6.1.4.1.311.1.1.3.1.1.17.1.4.1
microsoft_winnt_percent_processor_time
1.3.6.1.4.1.311.1.1.3.1.1.17.1.2.1&1.3.6.1.4.1.311.1.1.3.1.1.17.1.2.1
microsoft_winnt_percent_usage_peak
1.3.6.1.4.1.311.1.1.3.1.1.14.1.3.$INSTANCE&1.3.6.1.4.1.311.1.1.3.1.1.14.1.3.$INSTANCE
microsoft_winnt_percent_user_time
1.3.6.1.4.1.311.1.1.3.1.1.17.1.3.1&1.3.6.1.4.1.311.1.1.3.1.1.17.1.3.1

microsoft_winnt_pool_nonpaged_bytes
1.3.6.1.4.1.311.1.1.3.1.1.7.15.0&1.3.6.1.4.1.311.1.1.3.1.1.7.15.0
microsoft_winnt_processor_queue_length
1.3.6.1.4.1.311.1.1.3.1.1.23.15.0&1.3.6.1.4.1.311.1.1.3.1.1.23.15.0
microsoft_winnt_tcp_segments_per_second
1.3.6.1.4.1.311.1.1.3.1.1.24.1.0&1.3.6.1.4.1.311.1.1.3.1.1.24.1.0
microsoft_winnt_tcp_segments_retransmitted_per_second
1.3.6.1.4.1.311.1.1.3.1.1.24.9.0&1.3.6.1.4.1.311.1.1.3.1.1.24.9.0
microsoft_winnt_udp_datagrams_per_second
1.3.6.1.4.1.311.1.1.3.1.1.27.1.0&1.3.6.1.4.1.311.1.1.3.1.1.27.1.0
microsoft_winnt_unexpected_errors
1.3.6.1.4.1.311.1.1.3.1.1.21.1.0&1.3.6.1.4.1.311.1.1.3.1.1.21.1.0


■ Microsoft SQL Server

이 외에도 각 장비별로 수많은 MIB값들이 존재한다.

MRTG(Multi Router Traffic Grapher) - 5. CfgMaker

1. GUI MRTG Config Maker




기존에 command line 에서 이용했던, cfgmaker를 GUI로 만들어 놓은것이다. 비쥬얼하게 cfg파일을 생성할수 있는 아주 좋은 도구이다.

다운로드 -->> ConfigMaker.zip (*제작 사이트에서 최신 파일을 다운로드 하세요)


01-mrtg_ScriptMaker.png

MRTG(Multi Router Traffic Grapher) - 3. 스케쥴러

3-1. 스케쥴러를 이용한 체크

시스템 도구의 스케쥴러에 다음 실행 실행 코드를 5분마다 체크하도록 등록해 주면 된다.
체크 주기를 5분 이하나 이상으로 해도 좋으나, 5분마다 체크하는 것이 일반적이다.
또는 아래 실행코드를 배치파일에 넣어서 등록해도 된다.

*물론, perl은 System Path 에 등록되어 있는 상태이다. mrtg의 Path도 등록되어 있다면, 다음 실행 코드는 훨씬 간단해 질수 있는 등 설치 방법에 따라서 경로는 약간씩 달라질수 있다.

perl c:\mrtg\bin\mrtg c:\mrtg\bin\mrtg.cfg

2. Mr Daemon 을 이용한 체크

□ Mr Daemon 메뉴


□ Mr Daemon 설정화면


□ Mr Daemon 각 명령창마다 체크 시간이 다를 경우


Mr Daemon의 장점은 스케쥴러를 이용시 perl 로드될때마다 cmd 창이 깜빡인다는 것이는 불편함을 없애준다는 것이다. Mr Daemon는 실행시마다 깜빡이는 cmd창의 hide기능이 있다.

꼭 mrtg체크 뿐만 아니라, 다른것에도 응용이 가능할것으로 보인다.

다운로드 --> http://www.fixitdave.pwp.blueyonder.co.uk/files/mrDaemon-v2.zip



01-mrdaemon_b.JPG
01-mrdaemon.JPG
01-mrdaemon_a.JPG

MRTG(Multi Router Traffic Grapher) - 4. 5mrtg.exe

3-2. 5mrtg.exe 서비스를 이용한 체크



5mrtg.exe 는 MRTG 프로그램의 \mrtg-2.14.3\contrib\nt-services 디렉토리를 보면, 윈도우 서비스 형태로 등록을 해서 매 5분마다 배치파일 같은 명령어를 실행해 주는 유틸입니다. NT 서비스 형태로 등록되어 실행되므로 매우 안정적이겠죠.

install.cmd 를 실행하면, exe파일을 서비스 형태로 자동으로 등록해 줍니다. 매 5분마다 mrtg 명령어 실행은 레지스트리에서 수정을 해줘야 합니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\MMM\mrtg5]
"MrtgKick-PathName"="C:\\MRTG\\Run\\MrtgKick.Cmd"
"Debug"=dword:0

가면, MrtgKick-PathName 부분에 실행해줄 배치파일을 지정해 주고 그 배치파일에 실행할 mrtg를 목록으로 넣어주면 됩니다.



위 3가지 각 방법을 통해서 다음과 같이 각 체크항목마다 7개의 파일이 생성된다. 이 파일은 매 5분마다 업데이트 된다. 체크하는 장비가 많거나 항목이 많은 경우 매 5분마다 생성하는데 필요한 로드가 있다.



*.log 및 *.old는 text 형식의 로그파일이며, 각 png 파일은 일/주/월/년 별로 생성된 챠트이다. 이러한 파일을 매 5분마다 삭제후 재생성이 된다. 로그파일의 경우 가장 마지막 체크한 파일이 *.log 이며, 다음번 체크된 경우 이전 로그파일이 *.old로 저장된다. old가 필요한 이유는 이전값과 현재 체크값 사이의 값 계산에 필요하기 때문이다.

1149428101 402769386 89003097
1149428101 269 171 269 171
1149427801 297 239 297 239
1149427800 297 239 375 298
1149427500 374 297 375 298
1149427200 348 189 349 214
1149426900 348 213 349 214

(*맨 처음 숫자는 Unix Time 이며, 가장 마지막 원시값이 맨 첫줄이며, 두번째 줄부터는 계산된 값으로 실제 챠트에 표시되는 값이다.)


01-5mrtg.gif
01-mrtg_log.gif

MRTG(Multi Router Traffic Grapher) - 2. Configuration

1.cfg 파일생성
MRTG의 Config파일은 트래픽 모니터링의 경우 자동으로 생성해주는 cfgmaker 툴을 이용한다.

예: perl cfgmaker public@10.0.0.2 --global "WorkDir : d:\www\mrtg" --output mrtg.cfg

위 내용은 10.0.0.2번 ip를 갖는 장비의 SNMP 커뮤니티가 public이며,
cfg파일명은 mrtg.cfg로 지정. mrtg가 생성하는 html 및 png파일의 생성폴더를 d:\www\mrtg로 한다는 것이다.

위 예의 경우는 트래픽모니터링만 가능하며, Cpu,Ram.. 등은 MIB값을 이용해서 cfg파일을 직접생성해야 한다.

cfgmaker에 의해 생성된 cfg파일 내용입니다. 거의 대부분 아래 내용과 비슷합니다.

                #
                 # Interface Traffic
                 #---------------------------------------------------------------
                 ### Interface 16777219 Traffic Analysis for 10.0.0.2 ###
                  Target[10.0.0.2_16777219]: 16777219:public@10.0.0.2: 
                SetEnv[10.0.0.2_16777220]: MRTG_INT_IP="10.0.0.2" MRTG_INT_DESCR="3Com..생략..
                 Options[10.0.0.2_16777219]: bits
                 XSize[10.0.0.2_16777219]: 380
                 YSize[10.0.0.2_16777219]: 100
                 MaxBytes[10.0.0.2_16777219]: 12500000
                 Title[10.0.0.2_16777219]: Traffic Analysis for 16777219 -- 10.0.0.2
                 PageTop[10.0.0.2_16777219]: Traffic Analysis for 16777219 -- 10.0.0.2
                  <TABLE>
                    <TR><TD>System:</TD>
     <TD>SERVERINFO in </TD></TR>
                    <TR><TD>Maintainer:</TD> <TD></TD></TR>
                    <TR><TD>Description:</TD><TD>NDIS 5.0 driver  </TD></TR>
                    <TR><TD>ifType:</TD>     <TD>ethernetCsmacd (6)</TD></TR>
                    <TR><TD>ifName:</TD>     <TD></TD></TR>
                    <TR><TD>Max Speed:</TD>  <TD>12.5 MBytes/s</TD></TR>
                    <TR><TD>Ip:</TD>
         <TD>10.0.0.2 (serverinfo)</TD></TR>
                  </TABLE>                 


2.indexmaker 를 통한 인덱스 페이지 생성

MRTG cfg 파일에서 체크하는 항목이 여러개인데, 그것을 통합해서 한개의 페이지에서 보고 싶다. 그럴때 바로 쉽게 작성을 해주는 툴이 바로 indexmaker 이다. 물론, 직접 보기 좋은 디자인으로 html로 작성해도 상관없다.

기본적인 사용법은 매우 쉽고 간단하다.

indexmaker mrtg.cfg --output=D:\wwwroot\mrtg\index.htm --columns=1

--output= 은 index.htm 파일명과 저장할 경로이고,
--columns 는 각 5분 이미지 파일을 한줄에 몇개씩 표시할것인지 정해주는 옵션이다.

위 옵션 말고도 상당히 많은 옵션을 제공하므로 help 를 참고해 보기 바란다.


3.각 장비의 MIB 값

해당 장비의 MIB값을 알아내기 위해서는 각 벤더에서 제공하는 OID를 알아야 한다. 각 벤더에서 제공하는 MIB파일 소스를 보면, OID 라는 구조로 작성되어 있다. OID구조를 잘 살펴보면, 체크하고자 하는 MIB값을 알아 낼수 있다.

다음은 각 벤더별로 MIB파일 모음 압축파일입니다. 아래 MIB값은 장비의 업그레이드 및 벤더사에서 변경할 경우 아래 값과 다를 수 있습니다.

3com - http://www.3com.com
Apache
Avaya - http://www.avaya.com
CISCO - http://www.cisco.com
Compaq - http://www.compaq.com
HP - http://www.hp.com
IBM - http://www.ibm.com
INTEL - http://www.intel.com
Linux
Microsoft - http://www.microsoft.com
Oracle - http://www.oracle.com
SUN - http://www.sun.com
Unisys - http://www.unisys.com
Veritas - http://www.veritas.com


MRTG(Multi Router Traffic Grapher) - 1. Install

1. ActivePerl 다운로드 및 설치.
Perl은 원래 Unix계열 스크립트 언어지만 Windows환경에서도 구동되도록 Win32용으로 포팅되어 있는 ActivePerl을 다운받아 설치한다.

-> 다운로드 사이트

설치완료후, 환경변수부분에 perl경로가 등록되어 있는지 확인한다.
만일 안되어 있으면, perl설치경로를 등록한다. 일반적으로 c:\perl\bin 이다.
*등록위치 : 컴퓨터관리 -> 등록정보 -> 고급 -> 시스템변수의 Path

2. MRTG 다운로드

아래 사이트에서 최신 버젼을 받되, 확장자가 zip으로 되어 있는 파일을 받으면 된다.

-> 다운로드 사이트

다운받은후, 압축을 풀어 mrtg를 운영할 웹 디렉토리등에 파일을 이동한다.
mrtg는 웹브라우져로 접속해서 보기 때문이다.
물론, 꼭 웹디렉토리에 안하고 IIS에서 가상폴더를 지정해도 좋다.

가장 많이 본 글