Syslog 서버개발예제 1. New project new.bat 파일을 d:\kraken\examples 에복사하고명령프롬프트에서다음과같이실행 new [artifact id] [package]..or.. mvn archetype:generate -DarchetypeG

Similar documents
8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

슬라이드 1

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

Spring Data JPA Many To Many 양방향 관계 예제

슬라이드 1

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

Spring Boot

MySQL-Ch10

Microsoft PowerPoint - 10Àå.ppt

슬라이드 1

단계

MySQL-.. 1

Social Media and Social Computing

Windows 8에서 BioStar 1 설치하기

Microsoft Word - src.doc

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

문서의 제목 나눔고딕B, 54pt

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

10.ppt

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

DocsPin_Korean.pages

Apache Ivy

쉽게 풀어쓴 C 프로그래밊

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Dialog Box 실행파일을 Web에 포함시키는 방법

ETL_project_best_practice1.ppt

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

제11장 프로세스와 쓰레드

DBMS & SQL Server Installation Database Laboratory

Network Programming

Microsoft Word - CPL-TR OM2M.doc

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

교육2 ? 그림

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

JUNIT 실습및발표

PowerPoint Presentation

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

빅데이터분산컴퓨팅-5-수정

The Self-Managing Database : Automatic Health Monitoring and Alerting

OnTuneV3_Agent_Install

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

PowerPoint Presentation

DE1-SoC Board

JDBC 소개및설치 Database Laboratory

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint 프레젠테이션

gnu-lee-oop-kor-lec06-3-chap7

untitled

No Slide Title

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

PowerPoint Template

Interstage5 SOAP서비스 설정 가이드

TTA Journal No.157_서체변경.indd

PowerPoint 프레젠테이션

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

슬라이드 1

Secure Programming Lecture1 : Introduction

슬라이드 1

슬라이드 1

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

슬라이드 1

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

PowerPoint Presentation

PowerPoint 프레젠테이션

thesis

FileMaker 15 ODBC 및 JDBC 설명서

untitled

TITLE

MasoJava4_Dongbin.PDF

윈도우시스템프로그래밍

FileMaker ODBC and JDBC Guide

PowerPoint 프레젠테이션

목 차

JMP_guide.pdf

rmi_박준용_final.PDF

Table of contents 1. 구성도 Maxgauge For MySQL 설치정보... 6 설치파일정보... 6 포트정보... 6 주요디렉토리... 6 소프트웨어기동 / 종료... 7 기동... 7 종료 Maxgauge For MySQ

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

4S 1차년도 평가 발표자료

제8장 자바 GUI 프로그래밍 II

Transcription:

Syslog 서버개발예제 1. New project new.bat 파일을 d:\kraken\examples 에복사하고명령프롬프트에서다음과같이실행 new [artifact id] [package]..or.. mvn archetype:generate -DarchetypeGroupId=org.krakenapps -DarchetypeArtifactId=kraken-template -DarchetypeVersion=1.0.1 -DgroupId=org.krakenapps -DartifactId=syslog-server -Dversion=1.0.0 -Dpackage= org.krakenapps.examples.syslogserver 2. eclipse 에서 File > import

Sources 설명 1. Workspace 모델클래스와세부사항을구현하고있는구현클래스를각각다른패키지로구분한다. 2. Source details org.krakenapps.examples.syslogserver 1) SyslogServerApi: 각 Script 메소드에서호출될메소드에대한인터페이스 2) SyslogServerLog: DB 스키마에매핑될 JPA 엔터티클래스

@Entity: JPA 엔터티를정의한다. 또한 OSGI-INF/kraken-jpa/classes 설정파일 에클래스이름을적어줘야한다. @Table: 테이블이름을지정할수있다. 여기에서는 syslog_server_logs 로한다. @Id, @GeneratedValue: 각 row 가생성될때마다 Id 를자동으로부여한다. @Column: 자동설정되는것외에직접컬럼이름을지정하거나, 컬럼속성을지정 하려고할때사용한다. NULL 허용여부는 nullable 속성으로지정할수있다. org.krakenapps.examples.syslogserver.impl 1) SyslogServerImpl : SyslogServerApi 인터페이스의구현 @Component: syslog-server-api 이름으로 ipojo 컴포넌트를정의한다. metadata.xml 파일에서컴포넌트인스턴스를생성할때동일한이름을쓰게된다. 만약 name 을지정하지않으면클래스이름으로등록된다. @JpaConfig: syslog-server 라는이름으로등록된 JPA Entity Manger Factory 를 사용한다는의미이다. 만약해당이름으로 JPA Entity Manager Factory 가등록되지 않으면이컴포넌트인스턴스는무효화되어동작하지않는다. @Provides: 이컴포넌트가구현하는인터페이스를 OSGi 서비스로등록한다. @Provides(specifications = { Runnable.class }) 와같이쓰면 specifications 에명시된인터페이스만노출한다. @Provides만쓰면해당컴포넌트가구현하는모든인터페이스가 OSGi 서비스로노출된다. @Transactional: 선언적트랜잭션으로, 메소드가시작될때트랜잭션이시작되고,

메소드를빠져나갈때자동으로커밋된다. 만약도중에예외가발생하면롤백된다. 만약이어노테이션없이 EntityManager 를사용한다면쿼리를요청할때예외가발 생한다. 2) SyslogServerScriptFactory: ScriptFactory 인터페이스를구현하고 Script 객체 를생성한다. @ServiceProperty(name = alias, value = syslog-server ) alias 라는이름으로서비스프로퍼티를정의한다. alias 는명령어의접두어로사용 된다. ( 예 : syslog-server.list) 3) SyslogServerScript : Script 인터페이스를구현한다. 각메소드이름은명령어 로사용된다.

@ScriptUsage: 필수적으로사용해야하는어노테이션은아니지만명령어의사용방 법을설명하거나, 매개변수의타입이나개수를강제하려고할때사용한다. @ScriptArgument: Script 와함께입력받을매개변수의명세를적어준다. 만약 arguments 에정의된필수매개변수개수만큼입력되지않으면스크립트가실행되지 않고 description 에기술된사용방법이출력된다. 4) SyslogServerLogHandler: syslog 로들어오는메시지를처리한다. ipojo 컴포넌트로 LogHandler 가생성되고유효화되면서 start() 메소드가호출된 다. 위에서는 SyglogServerRegistry 에 LogHandler 를 EventListener 로등록하고,

만약 SyslogServerRegistry 에 syslog-server 라는이름의서버가있으면, LogHandler 가 Syslog 를수싞할수있도록자기자싞을 SyslogServer 에콜백으로 등록한다. 컴포넌트가무효화될때 stop() 메소드가호출된다. 레지스트리와 Syslog 서버에 등록했던콜백을해제한다. 레지스트리에서 syslog-server 라는이름의서버가등록 / 해제되었다는이벤트가젂달 되었을때 Syslog 수싞에사용되는콜백을등록하거나해제한다.

syslog 를받아파싱하고저장하는메소드이다. handle() 메소드는 Syslog 를 SyslogServerLog 모델에맞게변홖해서 DB 에저장한다. @Validate: 번들이시작되면서해당클래스가 ipojo 의인스턴스로정상적으로등 록되면, Validate 어노테이션이붙어있는메소드가호출된다. @Invalidate: 번들을정지하면 ipojo 에등록되어있던인스턴스가무효화되면서 해당어노테이션이붙어있는메소드가호출된다. 설정파일및빌드 1. OSGI 설정파일 src/main/resources/osgi-inf/kraken-jpa 폴더를만들고 config, classes 파일생성 - classes: Entity Class 추가 org.krakenapps.examples.syslogserver.syslogserverlog

- config: connection 정보등추가 hibernate.connection.driver_class = com.mysql.jdbc.driver hibernate.connection.url = jdbc:mysql://localhost/syslog_server??useunicode=true&chara cterencoding=utf8 hibernate.connection.username = syslog_server hibernate.connection.password = password hibernate.dialect = org.hibernate.dialect.mysqldialect hibernate.current_session_context_class = thread hibernate.cache.provider_class = org.hibernate.cache.nocacheprovider hibernate.show_sql = false hibernate.hbm2ddl.auto = update hibernate.autoreconnect = true hibernate.autoreconnectforpools = true hibernate.is-connection-validation-required = true 2. pom.xml 파일수정 <Import-Package> javassist.util.proxy, org.hibernate.proxy, org.hibernate.exception, org.hibernate, org.hibernate.dialect, javax.persistence,* </Import-Package> <Export-Package> org.krakenapps.examples.syslogserver </Export-Package> <Private-Package> org.krakenapps.examples.syslogserver.impl </Private-Package> 3. metadata.xml 설정 <ipojo xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/current/core.xsd" xmlns="org.apache.felix.ipojo"> <instance component="syslog-server-api"/> <instance component="syslog-server-factory"/> <instance component="syslog-server-log-handler"/> </ipojo>

4. Build Ctrl + F11 > Maven Package 빌드가성공하면 target 폴더에 syslog-server-1.0.0.jar 파일이생성된다. 5. 배포하기 1) pom.xml 수정 <distributionmanagement> <repository> <id>local</id> <url>file:///d:/kraken/examples/syslog-server/repo/</url> </repository> </distributionmanagement> pom.xml 설정에서배포파일을저장할폴더를배포 url 로지정한다. Ctrl+F11을누르고 mvn build 를선택하면 Edit Configuration 대화상자가출력된다. 여기에서 Goals에 deploy를입력하고 Run을클릭하면, url로지정된로컬경로하위에 groupid/artifactid 형식으로 org/krakenapps/syslog-server 디렉터리가생성되고배포파일이저장된다.

- 또는명령프롬프트에서다음과같이실행 mvn deploy:deploy-file -Durl=file://d:/kraken/examples/syslog-server/repo -Drepositoryid=test -Dfile=target/syslog-server-1.0.0.jar -DgroupId=org.krakenapps -DartifactId=syslog-server -Dversion=1.0.0 -Dpackaging=jar

Kraken 실행 1. kraken-core 실행 java jar C:\kraken\kraken-core\target\kraken-core-1.7.0-package.jar 2. kraken 에접속 Kraken 이시작되면 putty 를열고 localhost:7004, telnet 으로접속

MySQL DB 및 User 생성 1. mysql 접속 - root 로로그인 mysql uroot p[password] - use [Database name] use mysql; show tables; 2. 새사용자계정추가 - insert into [tablename](field1, field2, field3..) values( value1, value2, value3..);

desc user; insert into user(host, user, password, ssl_cipher, x509_issuer, x509_subject) values('localhost', 'syslog_server', PASSOWRD('password'), '','',''); 3. 새 DB 추가 desc db; insert into db values ('localhost', 'syslog_server', 'syslog_server, 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); 4. DB 접근권한등록 flush privileges; 5. 새 DB 생성 create database syslog_server; 6. Mysql 종료 quit 7. 새로생성한 syslog_server(db) 접속 mysql u[userid] p[password]; mysql usyslog_server ppassword

jpa 에 syslog-server 를아직등록해주지않았기때문에어떤 table 도없다

Syslog 서버동작화면 1. Syslog Server 패키지파일생성 - Syslog Server 실행에필요한번들을패키지로설치하기위해, 패키지저장소루트디렉 터리에패키지이름으로된디렉터리를만들고다음과같은 kraken.package 파일생성 [description] Syslog Server [version] 1.0.0 2010-12-24 15:22:00 [maven repository] http://download.krakenapps.org/ file:///d:/kraken/examples/syslog-server/repo/ description: package 파일정보를기술한다. version: 버젂, 변경시각으로구성된다. 버젂이여러개있으면변경시각이최근인버젂 을다운로드한다. maven repository: maven artifact 들을검색할저장소 URL 을쓴다. deploy 로만들어 짂 syslog-server 배포폴더도추가한다. - 패키지디렉토리하위에버젂과일치하는디렉터리를생성하고 kraken.package 파일 생성 [bundle] org.krakenapps.examples.syslogserver 1.0.0 org.krakenapps.syslog 1.3.0 org.krakenapps.filter 1.3.0 org.apache.felix.ipojo [1.2.0, 1.4.0] org.krakenapps.ipojo 1.0.0 org.krakenapps.jpa 1.5.0 com.springsource.com.mysql.jdbc 5.1.6 com.springsource.org.apache.commons.pool 1.4.0 com.springsource.org.apache.commons.codec 1.3.0 com.springsource.org.apache.commons.collections 3.2.1 com.springsource.org.apache.commons.logging 1.1.1 [start] org.krakenapps.examples.syslogserver org.apache.felix.ipojo org.krakenapps.ipojo org.krakenapps.syslog org.krakenapps.filter org.krakenapps.jpa com.springsource.com.mysql.jdbc com.springsource.org.apache.commons.pool com.springsource.org.apache.commons.codec com.springsource.org.apache.commons.collections com.springsource.org.apache.commons.logging [maven]

org.krakenapps syslog-server 1.0.0 org.apache.felix org.apache.felix.ipojo 1.4.0 org.krakenapps kraken-ipojo 1.0.0 org.krakenapps kraken-syslog 1.3.0 org.krakenapps kraken-filter 1.3.0 org.krakenapps kraken-jpa 1.5.0 com.mysql.jdbc com.springsource.com.mysql.jdbc 5.1.6 org.apache.commons com.springsource.org.apache.commons.pool 1.4.0 org.apache.commons com.springsource.org.apache.commons.codec 1.3.0 org.apache.commons com.springsource.org.apache.commons.collections 3.2.1 org.apache.commons com.springsource.org.apache.commons.logging 1.1.1 bundle: 번들버젂요구사항을기술한다. Bundle-SymbolicName과 Bundle-Version으로구성되고, 버젂의범위는 [ ] 으로지정한다. start: 설치후기본적으로시작시킬번들의 SymbolicName을지정한다. maven: maven 저장소에서다운로드할아티팩트의 groupid artifactid version의순서대로기입한다. - 패키지파일경로지정 pkg.addrepository [alias] [url] pkg.addrepository tutorial file:///d:/repo/ 2. syslog-server 패키지인스톨 pkg.install syslog-server

- 번들설치및상태확인 bundle.list - JPA 에 syslog-server 등록 jpa.register [bundleid] [Entity Manager Factory Name] jpa.register 1 syslog-server - 등록된 syslog-server 스크립트사용 syslog-server.list

3. Syslog 서버등록 syslog.load syslog receiver name: syslog-server bind address (default to localhost): bind port (default to 514): charset (default to utf-8): - receiver 가등록되었는지확인 syslog.list 4. Syslog 수싞및저장테스트 - syslog 를젂송한다. syslog.send localhost 514 message syslog.send localhost 514 <PRI>message syslog.send localhost 514 <133>hello syslog server test - syslog 로보낸메시지가 syslog-server DB 에저장된다.