IT 기술/Fluentd

IT 기술/Fluentd

[Fluentd] MySQL slow log 연동

Fluentd MySQL slow log 연동하기 MySQL slow log MySQL slow log 는 멀티라인입니다. 따라서, conf 를 꿍짞꿍짝 해서 나중에 수정불가한 conf 를 생성 하거나 open soruce 사용해서 연동을 하면 되는데 착하신 분이 미리 mysqlslowquery 라는 것을 만들어 놓아서 이걸로 연동 했습니다. 설치 및 사전 준비 gpasswd mysql -a td-agent apt install -y ruby ruby-dev libc6-dev # 현재 서버에서 사용중인 gem 레포지가 # td-agent-gem 인지 fluentd-gem 인지 gem 인지 먼저 확인하세요 td-agent-gem install fluent-plugin-mysqlslowquery설정 # IN..

IT 기술/Fluentd

[Fluentd] Php 연동

PHP 연동 PHP 7 이상 (https://github.com/fluent/fluent-logger-php) composer.json 추가 "fluent/logger": "1.0.*" PHP 7 미만 (https://github.com/DQNEO/php-fluent-simplelogger) 오픈소스 라이브러리 설치 샘플 use Fluent\Logger\FluentLogger; defined('BASEPATH') or exit('No direct script access allowed'); function f_log(string $label, array $data) { try { # TODO : Constants setting $logger = new FluentLogger('192.168.10.7', ..

IT 기술/Fluentd

[Fluentd] Python 연동

테스트 환경 : python3.7 라이브러리 설치 $ pip install fluent-logger 샘플 소스 def log(label: str, data: dict): try: from fluent import sender, event except ImportError: raise ImportError('Install fluent-logger. pip install fluent-logger') try: # TODO : Constants setting sender.setup(tag = 'apps', host = 'localhost', port = 24232) event.Event(label, data) except Exception as e: # TODO : 에..

IT 기술/Fluentd

[Fluentd] 8. Prometheus 연동

Prometheus 연동 https://github.com/fluent/fluent-plugin-prometheus Prometheus 플러그인은 총 6개를 제공 연동전 설치 CentOS 라 td-agent $ td-agent-gem install fluent-plugin-prometheus 샘플 input plugin 은 promethues 사용해서 server_ip:24231/metrics 를 리스닝 상태로 두고 output plugin은 prometheus_output_monitor 사용해서 10 초마다 promethues 에서 pull 해가도록 한다. @type prometheus bind 0.0.0.0 port 24231 metrics_path /metrics @type prometheus_ou..

IT 기술/Fluentd

[Fluentd] 7. Nginx 연동

Nginx 로그 연동 개요 리눅스 서버에서 nginx의 access log 와 error log 를 수집하려고 한다. 우선, Nginx 는 날짜별로 파일 로그를 생성하고 날짜가 지나면 압축시켜 버린다. 그렇다면 Input 시에는 현재 작성하고 있는 파일에 접근해서 데이터를 수집해야 하기때문에 Input 플러그인은 tail 을 사용할 것이고 tail plugin은 access.log, error.log 를 대상으로 수집을 진행 할것이다. 또, Nginx 폴더에 그룹 권한이 admin으로 되어 있다. fluentd 를 adm 그룹으로 추가해주자. # CentOS 7 $ gpasswd adm -a td-agent 연동 @type tail @label @NGINX_LOG @id NGINX_ACCESS_LOG t..

IT 기술/Fluentd

[Fluentd] 6. 서버간 연동

서버간 연동 aggregator 서버 @type forward @id input_forward port 24232 bind 0.0.0.0 @type stdout @id output_nginx @log_level debug forwarder 서버 @type tail @label @NGINX_LOG @id NGINX_ACCESS_LOG tag nginx.access path /var/log/nginx/access.log pos_file /var/log/td-agent/nginx-access.log.pos @type nginx @type tail @label @NGINX_LOG @id NGINX_ERROR_LOG tag nginx.error path /var/log/nginx/error.log pos_file..

IT 기술/Fluentd

[Fluentd] 5. Output plugin

Output Plugin https://docs.fluentd.org/output file file 은 이름처럼 데이터를 파일로 생성 @type file path /var/log/fluent/myapp compress gzip timekey 1d timekey_use_utc true timekey_wait 10m forward output 에서 forward 는 local fluentd 데이터를 external fluentd 로 전송해 줌 아래 보면 myserver1과 myserver2 로 local event data를 전송해주고 운영시에 장애가 발생해도 문제 없이 운영이 가능 하도록 2개의 서버로 데이터를 보내는 것 유추 쌉가능 @type forward send_timeout 60s recover_w..

IT 기술/Fluentd

[Fluentd] 4. Input plugin

Input Plugin https://docs.fluentd.org/input tail tail 은 꼬리로, 텍스트 파일의 꼬리를 쫓는다. 리눅스 커맨드 tail 과 비슷하다. 아래는 Nginx access log tail 샘플 @type tail @label @NGINX_LOG @id NGINX_ACCESS_LOG tag nginx.access path /var/log/nginx/access.log pos_file /var/log/td-agent/nginx-access.log.pos @type nginx @log_level debug forward forward 는 포트 열고 통신 대기한다고 생각하면 됨 fluentd -> fluentd fluentd -> prometheus @type forward ..

IT 기술/Fluentd

[Fluentd] 3. 설정 파라미터

설정 Common Parameter @type type 은 plugin 의 이름? 을 지정 @type my_plugin_type @type my_filter @id id 는 설정의 unique 값으로, buffer, storage, logging 등에서 사용 @type file @id service_www_accesslog path /path/to/my/access.log # ... @log_level log_level 은 log의 level 을 지정으로 system 선언에서 전체 log_level(default:info) 를 지정할 수도 있고, 특정 플러그인의 log level을 선언할 수도 있다. log_level info # ... @log_level debug # shows debug log on..

IT 기술/Fluentd

[Fluentd] 2. 설정 개요

설정 How Does Fluentd Works 우선 Fluentd 에서 모듈별로 어떻게 작동하는지 순서를 봐보자. 그렇다고 한다. Component Role Input Input 은 로그를 수집하는 Plugin. Input 플러그인은 외부에서 event log 를 pull 후 fluentd 로 전송 이외에도 착하고 똑똑한 애들이 미리 개발 해놓은 Extension Plugin 설치를 통해 사용할 수 있음. Parser (option) Parser 는 Input 으로 읽은 데이터의 포맷이 fluentd에서 지원하지 않는 경우에 파싱을 위해 선택적으로 사용. Filter (option) Filter 는 Output 으로 보내기 전에 뭔가를 한다. 필터링 데이터 필드 추가, 삭제, 마스킹 로그 데이터에서 라벨..

IT 기술/Fluentd

[Fluentd] 1. 설치

Before Installation Increase the Maximum Number of File Descriptors # 확인 $ ulimit -n 65535 # 서버마다 다른지 모르겠지만, CentOS는 1024가 default # 아래 파일 내용 추가 $ vi /etc/security/limits.conf root soft nofile 65536 root hard nofile 65536 * soft nofile 65536 * hard nofile 65536 systemd 서비스 사용중인 os는 'LimitNOFILE=65536' 추가, 이외 os 는 default 로 set 되어 있음 Optimize the Network Kernel Parameters $ vi /etc/sysctl.conf ne..

상쾌한기분
'IT 기술/Fluentd' 카테고리의 글 목록