Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 국세청 해외주식 양도세 신고방식
- recursion example
- katalon
- katalon xpath
- java.sql.SQLSyntaxErrorException
- 해외주식 양도세 신고
- 피보나치함수
- 주식 양도세 신고방법
- tomcat log
- 재귀 예제
- 한국투자증권 양도세 신고
- katalon 사용법
- js 자동완성
- 톰캣 실시간 로그
- 피보나치 예제
- 피보나치함수 예제
- oracle group by
- 테스트 자동화
- 재귀함수 예제
- CSTS 폭포수 모델
- javascript 자동완성
- 해외증권 양도세 한국투자증권
- katalon 자동화
- 홈택스 해외주식 양도세
- git 연동
- bfs 미로탐색 java
- 최대공약수 예제
- katalon 비교
- Katalon Recorder 사용법
- 한국투자증권 해외주식 양도세
Archives
- Today
- Total
엄지월드
Logstash 설치 본문
1. Elastic GPG 키 임포트
sudo apt-get update && sudo apt-get install -y apt-transport-https # HTTPS를 통해 저장소에 접근하기 위함
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
2. Elastic 저장소 추가
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
3. 패키지 목록 업데이트
sudo apt-get update
4. Logstash 설치 시도
sudo apt-get install logstash
5. 설치 확인
/usr/share/logstash/bin/logstash --version

/etc/logstash/data 디렉토리 생성 및 소유권 설정 (다시 한번 확실하게!)
# 디렉토리가 이미 있든 없든, 안전하게 생성하고 소유권을 설정하는 명령어
sudo mkdir -p /etc/logstash/data
sudo chown logstash:logstash /etc/logstash/data
sudo chmod 755 /etc/logstash/data # 디렉토리에 대한 일반적인 읽기/실행 권한 + 소유자 쓰기 권한
기존 .logstash_jdbc_last_run_job_mst.yml 파일 삭제 (혹시 있다면!)
만약 이전에 권한 문제 등으로 빈 파일이 잘못 생성되어 접근이 안 되던 경우를 대비해서 삭제하는 거야. 이 파일은 Logstash가 없으면 자동으로 다시 생성한단다.
sudo rm -f /etc/logstash/data/.logstash_jdbc_last_run_job_mst.yml
mariaDB 설정
sudo vi /etc/logstash/conf.d/logstash-mariadb-job_mst.conf
# Logstash JDBC Input Plugin을 사용하여 MariaDB에서 데이터 동기화 설정
input {
jdbc {
jdbc_driver_library => "/etc/logstash/mariadb-java-client-3.1.2.jar" # <-- 이 경로가 드라이버를 둔 실제 경로여야 해!
# MariaDB JDBC 드라이버 클래스 이름
jdbc_driver_class => "org.mariadb.jdbc.Driver"
jdbc_connection_string => "jdbc:mariadb://domain:30121/travel?autoReconnect=true&serverTimezone=Asia/Seoul"
jdbc_user => "id" # MariaDB 사용자 이름
jdbc_password => "pw" # MariaDB 비밀번호
# Logstash 스케줄: */5 * * * * (매 5분마다 실행)
schedule => "*/5 * * * *"
# 동기화할 데이터를 가져올 SQL 쿼리
# 'job_mst' 테이블에 'updated_at' 컬럼이 있다는 전제로 증분 동기화 쿼리를 작성했어.
# 실제 job_mst 테이블의 컬럼 이름과 매핑될 JobMstDocument의 필드 이름을 잘 확인해서 쿼리를 구성해줘.
# 예: id, company_cd, anno_id 등 모든 필요한 컬럼을 명시해주는 것이 좋아.
statement => "SELECT id, company_cd, anno_id, class_cd_nm, emp_type_cd_nm, anno_subject, sub_job_cd_nm, sys_company_cd_nm, job_detail_link, end_date, personal_history, personal_history_end, insert_dts, updated_at FROM job_mst WHERE updated_at > :sql_last_value ORDER BY updated_at ASC"
# 'updated_at' 컬럼 값을 추적해서 :sql_last_value를 업데이트해.
use_column_value => true
tracking_column => "updated_at"
tracking_column_type => "timestamp"
# 초기 풀 로드: 처음 실행 시 'true', 이후 증분 동기화 시 'false'
clean_run => true
# 마지막 실행 시간과 추적 컬럼 값을 저장할 파일 경로
last_run_metadata_path => "/etc/logstash/data/.logstash_jdbc_last_run_job_mst.yml" # <- 이 경로가 쓰기 가능한지 확인
# 필드 이름 변환: DB 컬럼명이 엘라스틱서치 필드명과 다를 경우 대문자->소문자, 언더스코어->카멜케이스 등으로 변환 (선택 사항)
# statement_filepath => "/etc/logstash/conf.d/your_query.sql" # 쿼리가 길 경우 별도 파일로 관리할 수도 있음
}
}
# 데이터를 엘라스틱서치로 보내는 설정
output {
elasticsearch {
hosts => ["http://localhost:9200"] # 네 엘라스틱서치 서버 주소와 포트
user => "elastic"
password => "changeme"
index => "job_mst" # 엘라스틱서치에 생성할 인덱스 이름 (네 JobMstDocument와 동일하게)
document_id => "%{id}" # MariaDB `id` 컬럼 값을 엘라스틱서치 문서의 ID로 사용
# 이렇게 해야 MariaDB의 데이터 변경 시 엘라스틱서치에서도 해당 문서가 업데이트돼.
}
stdout { codec => rubydebug } # 개발 중에는 Logstash가 어떤 데이터를 처리하는지 터미널에 출력해서 확인
}
실시간 로그 확인
sudo tail -f /var/log/logstash/logstash-plain.log'Server&DevOps' 카테고리의 다른 글
| 재부팅 시 카프카 자동 실행(systemd) (0) | 2025.09.17 |
|---|---|
| 카프카 실행 명령어 (0) | 2025.09.17 |
| [홈서버] DNS 자동 매핑 처리 (0) | 2025.09.16 |
| 우분투(Ubuntu) 노트북 덮개를 닫아도 절전모드가 안되도록 하기 (0) | 2025.09.14 |
| ubuntu 절전 모드 처리 (0) | 2025.09.14 |
Comments