예전에 flume로 에러 로그들을 모으고 있었는데 fluentd로 갈아타려고 한다.
사실 모으는 목적이 아니라 모니터링이 목적
아래 사이트에 나오는 command만 실행해주면 chkconfig 등록까지 다 해준다.
참고 공식 사이트
http://docs.fluentd.org/articles/install-by-rpm#step-0-before-installation
구성은 flume와 비슷한것 같다
client -> server 구성으로 해놓고 client에서 수집된 로그를 server로 전달.
아래 커맨드 실행#
1
| curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
|
서비스 구동#
당연히 service td-agent stop
가 중지다
/etc/td-agent/td-agent.conf
파일이 설정 파일이다
1
| vi /etc/td-agent/td-agent.conf
|
simple하게 각 서비스들에 error.log들만 모아서 로그 서버에 파일로 기록 하도록 해보자.
우선 내가 구성하려고 하는 설정에 필요한 항목은 아래와 같다.
<source />
: 데이타 수집 경로, 또는 원격서버로부터 수신 받는다
<match />
: 수집된 로그들을 처리할 액션을 지정 (다른 서버로 전송을 하거나 로컬에 파일로 저장)
다른 설정값들은 아래 링크에서 확인 해보자 (많다..)
http://docs.fluentd.org/articles/config-file#2-ldquomatchrdquo-tell-fluentd-what-to-do
로그 수집 td-agent.conf#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <source>
@type tail
path /logs/error.log
tag xx.devwas.error
format multiline
format_firstline /\[[^\s]+\] .*/
format1 /\[(?<level>[^\s]+)\] (?<message>.*)/
</source>
<match xx.*.*>
@type forward
send_timeout 60s
recover_wait 10s
heartbeat_interval 1s
phi_threshold 16
hard_timeout 60s
<server>
name logserver
host log-server
port 24224
weight 60
</server>
</match>
|
로그 저장 td-agent.conf#
1
2
3
4
5
6
7
8
9
| <source>
@type forward
port 24224
</source>
<match xx.**>
@type file
path /logs/td/error
</match>
|
시작시 아래 오류가 나오면 저장 path에 td-agent의 권한을 주자
1
| Starting td-agent: 2016-06-22 14:13:53 +0900 [error]: fluent/supervisor.rb:359:rescue in main_process: config error file="/etc/td-agent/td-agent.conf" error="out_file: `/logs/td/~~~` is not writable"
|
아래 폴더에 error.시간 으로 저장되는걸 확인 할 수 있다
1
2
3
4
5
6
| [root@logserver td]# ls -al
합계 224
drwxr-xr-x. 2 td-agent root 4096 2016-06-22 15:02 .
drwxr-xr-x. 4 root root 4096 2016-06-22 15:16 ..
-rw-r--r--. 1 td-agent td-agent 220529 2016-06-22 15:38 error.20160622.b535d7aec407e9135
[root@logserver td]#
|
그런데 json형태로 저장되고 있다 아무래도 그냥 육안으로 확인은 불편할꺼 같다
아니면 plugin이 많으니 찾아보자.