Fluentd Use Case exec 플러그인 활용하기 in_exec 플러그인을 활용하면 사용자가 수집하고자 하는 정확한 정보를 만들어내서 수집할 수 있다. linux_free linux 모니터링 명령어인 free 의 결과를 주기적으로 수집해본다. 데이터 소스 스크립트 vi /app/fluentd/scripts/free.sh #!/bin/bash DATE=date "+%Y-%m-%d %H:%M:%S" DATA=free -k | grep "Mem:" | awk '{print $2,$3,$4,$5,$6,$7}' echo $DATA $DATE fluentd config # linux_free ## Input @type […]
[Fluentd] Usecase – rsyslog
Fluentd Use Case rsyslog 플러그인 활용하기 fluentd 는 기본적으로 rsyslog 를 수신하고 파싱할 수 있는 플러그인이 설치된다. rsyslogd 자체적으로 로그를 모을수 있는 기능이 있으므로 aggregator 서버를 통해 rsyslog 를 1차적으로 모은 다음, 몇 대의 aggregator 서버에서 fluentd 에게 로그를 전달해줄 수 있도록 한다. rsyslog data 흐름은 다음과 같다. 여러 대의 syslog 발생 서버 -> 몇 […]
[ElasticSearch] Configuration
ElasticSearch 설정/관리 elasticsearch.yml 아래는 엘라스틱서치 바이너리 내에 yml.template 로 기본 기재된 파라미터 Parameter Name Default Value cluster.name my-application node.name node-1 node.attr.rack r1 path.data /path/to/data path.logs /path/to/logs bootstrap.memory_lock true network.host 192.168.0.1 http.port 9200 discovery.zen.ping.unicast.hosts [“host1”, “host2”] discovery.zen.minimum_master_nodes gateway.recover_after_nodes 3 action.destructive_requires_name true cluster.name 클러스터 이름. 이 이름이 같아야 멤버 노드드들이 조인이 가능하다. 다른 엘라스틱서치 시스템 노드의 클러스터 […]
[ElasticSearch] Index Template
ElasticSearch Index templates Index template은 새로운 index가 생성될 때에, index 설정 또는 특정 필드의 데이터 타입을 정의해준다. ElasticSearch에 Logstash 등 수집기로 데이터 수집 전 index가 사전 생성될 필요가 없다. 그런데 그냥 수집하면 숫자나 날짜는 알아서 파싱을 하는데 나머지 대부분은 text로 해석한다. index template를 생성함으로써 index별로 Shard 갯수나 특정 필드에 대한 개별적인 관리를 할 수 있다. […]
[ElasticSearch] 실행 종료 스크립트
Elaticsearch 파라미터 변경해가며 테스트하는데, 실행 종료가 번거로워서 만들어본 스크립트 pid 파일을 남기는 프로세스에 응용해볼 수 있을 것 같다. 아래 스크립트를 이용하려면 어쨋든 $ES_PID 경로에 pid 파일을 남기도록 사전에 설정해주어야 한다. #!/bin/bash ES_HOME=/elastic/elasticsearch ES_PROC=$ES_HOME/bin/elasticsearch ES_PID=$ES_HOME/elasticsearch_pid if [ "$1" = "start" ];then if [ -e $ES_PID ];then echo "Start up failed, please check if ElasticSearch (PID:`cat $ES_PID`) […]
[ElasticSearch] ElasticSearch 6 버전에서 Head Plugin 설치
ElasticSearch Plugin Head Installation head plugin 을 이용해서 cluster 상태, index 정보, 간단한 쿼리 수행 등의 기능을 편리하게 사용할 수 있다. elasticsearch 6 버전에서는 plugin installer를 이용한 설치가 불가능하여 굳이 사용하기 위해서는 별도 웹 서비스가 필요하다. nodejs 를 통해서 웹서비스를 하고, 웹 소스는 github 에서 별도로 내려받는다. elasticsearch 6 버전부터는 X-PACK, Kibana 확장을 통해 인덱스 […]
[ElasticSearch] 2 nodes cluster 설치
Elasticsearch 설치 (2 node cluster) 사전 준비 시스템 사용자 생성 및 디렉토리 설정 시스템 사용자 생성 useradd elastic -g bigdata -u 9200 디렉토리 권한 설정 다음과 같이 엔진, 로그, 데이터파일 경로를 구분하여 설치를 진행한다. elasticsearch 엔진 경로 /app/elasticsearch elasticsearch 엔진 로그 경로 /logs/elasticsearch elasticsearch 데이터파일 (인덱스) 경로 /data/elasticsearch chown elastic:bigdata /app/elasticsearch chown elastic:bigdata /logs/elasticsearch chown […]
[Fluentd] Fluentd 설치
Fluentd 설치하기 Linux 시스템에 설치하는 것을 기준으로 진행. 패키지 설치 or 소스 컴파일 설치 모두 가능하지만 소스 컴파일 방식으로 설치 진행. 의존성 zlib-devel openssl ruby 설치 System User Profile export LD_LIBRARY_PATH=/app/fluentd/ssl/1.1.1-pre6/lib:$LD_LIBRARY_PATH export PATH=/app/fluentd/ssl/1.1.1-pre6/bin:$PATH export RUBY_HOME=/app/fluentd/ruby/2.4.4 export PATH=$RUBY_HOME/bin:$PATH Install openssl from source openssl archive 다운로드 wget https://www.openssl.org/source/openssl-1.1.1-pre6.tar.gz archive 압축해제 tar -xvzf openssl-1.1.1-pre6.tar.gz -C /app/fluentd/ssl 설치 경로로 […]
[Fluentd] Fluentd 소개
Fluentd 소개 with Fluentd 내부 언어 Cruby 로 작성. 루비는 객체 지향 인터프리터 언어 https://www.ruby-lang.org/ko/about/ Cruby vs. Jruby The default Ruby, the one people think of as "just Ruby," is CRuby. JRuby is a Ruby interpreter written in Java. It’s written and maintained by a different team. It focuses hard on performance – especially for […]
[MySQL] mysql 설치
사전 준비 mysql 시스템 유저 생성 mysql:x:3306:1000::/home/mysql:/bin/bash 디렉토리 생성 및 권한 부여 엔진 경로 mkdir /apps/mysql chown mysql /apps/mysql 데이터파일 경로 mkdir /data/mysql chown mysql /data/mysql 로그 경로 mkdir /data/mysql chown mysql /logs/mysql my.cnf 파일 생성 및 권한 부여 touch /etc/my.cnf chwon mysql /etc/my.cnf mysql 설정 vi /etc/my.cnf [mysqld] user = mysql port = 3306 […]