반응형
Linux 환경의 경우, fluentd native나 td-agent 모두 stable 버전으로 제공되는데,
Windows 환경의 경우는 공식홈에서 밀고 있는 td-agent 조차 베타버전으로 제공이 되고 있는 상황이고,
Document를 샅샅히 뒤져보다보면, nxlog 라는 놈을 하나 소개해준다. (http://docs.fluentd.org/v0.12/articles/windows)
실제로 테스트를 해봐도 tg-agent랑 nxlog 둘다 써봤지만, 제대로되는 게 nxlog 뿐인것 같다.
하지만, nxlog에서는 fluentd의 forward protocol을 지원하지 않아, tcp를 이용해서 전송을 해야 했다.
1. 서버 설치 (docker)
### docker-compose.yml version: '2' services: fluentd-recv: container_name: 'fluentd-recv' image: fluent/fluentd volumes: - ./conf:/fluentd/etc ports: - 5170:5170
### conf/fluent.conf # Input <source> @type tcp # tcp 프로토콜로 데이터를 받는다. port 5170 tag testlog # testlog라는 식별자를 추가한다. format json # json 포맷만 받음. </source> # Output <match testlog> # testlog tag를 가진 데이터만 처리함 @type file # 파일로 저장 path /fluentd/recv/* </match>
2. nxlog (Client) 설치
link : http://nxlog.co/products/nxlog-community-edition/download
위 링크에서 다운받아서, 설치하고 나면 C:\Program Files(x86)\nxlog 경로에 있는 nxlog.conf를 아래와 같이 수정한다.
### nxlog.conf define ROOT C:\Program Files (x86)\nxlog Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data LogFile %ROOT%\data\nxlog.log <Input in> Module im_file # fluentd의 input tail plugin의 역할을 함 File 'D:\fluentd_test\send\\*.json' # 해당 경로에 있는 파일들을 감시한다. (와일드카드를 사용하려면 \를 하나 더 붙여줘야 된다.) SavePos TRUE # 파일의 position 관리 enable / disable InputType LineBased # 파일 내용의 라인 단위로 파싱한다. </Input> <Output out> Module om_tcp # in으로 들어온 파일을 tcp형태로 전송한다. Host 192.168.0.10 # 전송할 서버 정보 입력 Port 5170 </Output> <route 1> # 위에 설정한 내용들을 어떻게 동작시킬지 지정한다. Path in => out # in으로 받아서 out으로 보낸다. </route> ### 전송이 됬는지 안됬는지 판단이 어려우므로 테스트 시 추가한 설정 (선택사항) ### # 파일을 tcp로 보내고 난 뒤, 내용을 지정한 경로에 파일로 저장한다. <Output outfile> Module om_file File 'D:\fluentd_test\send\backup.log' </Output> <route 2> # Route 1과 마찬가지로 동작방식 지정 Path in => outfile </route>
반응형
'개발 > Fluentd' 카테고리의 다른 글
[nxlog] Batch Script를 활용한 nxlog 설치 자동화 (0) | 2017.12.06 |
---|---|
[Fluentd] Linux 환경에서 로그 전송하고 받기 (0) | 2017.05.31 |