# PostgreSQL을 우분투에 설치
sudo apt-get install postgresql postgresql-contrib
# PostgreSQL 설치확인
psql --version
psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
sudo -i -u postgres
psql #접속
\q #종료
# 슈퍼유저로 접속
sudo -u postgres psql
# 슈퍼유저 비번 변경
alter user postgres with password '1234';
# 유저생성
create user hyper;
# 유저 생성 및 역할부여
create role hyper superuser;
# 유저 로그인 부여
ALTER ROLE "hyper" WITH LOGIN;
# 유저 비번 변경
alter user hyper with password '1234';
# 유저확인
\du
# 샘플 데이터 넣기
-- Table: public.tn_test
-- DROP TABLE public.tn_test;
-- 테이블생성
CREATE TABLE public.tn_test
(
test1 character varying(100) COLLATE pg_catalog."default",
test2 character varying(100) COLLATE pg_catalog."default",
test3 character varying(100) COLLATE pg_catalog."default"
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
-- 테이블 소유자 변경
ALTER TABLE public.tn_test
OWNER to agens;
-- 테이블 생성 확인
select * from tn_test ;
-- 샘플 데이터 넣기
INSERT INTO public.tn_test(
test1, test2, test3)
VALUES ('테스트1', '테스트2', '테스트3');
INSERT INTO public.tn_test(
test1, test2, test3)
VALUES ('테스트1-1', '테스트2-1', '테스트3-1');
INSERT INTO public.tn_test(
test1, test2, test3)
VALUES ('테스트1-2', '테스트2-2', '테스트3-2');
INSERT INTO public.tn_test(
test1, test2, test3)
VALUES ('테스트1-3', '테스트2-3', '테스트3-3');
INSERT INTO public.tn_test(
test1, test2, test3)
VALUES ('테스트1-4', '테스트2-4', '테스트3-4');
commit;
jdbc 연결
https://jdbc.postgresql.org/download.html
# 아래 경로에 .jar 다운로드
~/prod/elk/lib/postgresql-42.3.3.jar
chmod 775 postgresql-42.3.3.jar
경로에 .conf 파일 생성
~/prod/elk/logstash-7.15.0/config/logstash-pg.conf
vi logstash-pg.conf
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
jdbc {
# jdbc_driver_library => "~/prod/elk/lib/ojdbc6.jar"
jdbc_driver_library => "~/prod/elk/lib/postgresql-42.3.3.jar"
jdbc_driver_class => "org.postgresql.Driver"
jdbc_connection_string => "jdbc:postgresql://127.0.0.1:5432/postgres"
jdbc_user => "hyper"
jdbc_password => "1234"
statement => "select test1, test2, test3 from tn_test"
# use_column_value => true
# tracking_column => idx
schedule => "* * * * *"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test-%{+YYYY.DD.dd}"
}
}
ELK 실행하기
Elastic Search 실행 및 확인
cd ~/prod/elk/elasticsearch-7.15.0/bin
./elasticsearch
curl localhost:9200
Logstash 실행, 설정 및 확인
### pipeline 설정 수정
vi ~/prod/elk/logstash-7.15.0/config/pipelines.yml
- pipeline.id: test
# pipeline conf파일을 지정.
# 하기는 위에서 정의한 logstash-pg.conf파일로 지정했음.
# 여기서 root폴더는 logstash root임.
path.config: "./config/logstash-pg.conf"
cd ~/prod/elk/logstash-7.15.0/bin
./logstash -f ../config/logstash-pg.conf
아래 에러 확인중!
Error: org.postgresql.Driver not loaded. :jdbc_driver_library is not set, are you sure you included the proper driver client libraries in your classpath?
Error: unable to load ~/prod/elk/lib/postgresql-42.3.3.jar from :jdbc_driver_library, file not readable (please check user and group permissions for the path)
Kibana 실행 및 확인
cd ~/prod/elk/kibana-7.15.0-linux-x86_64/bin
./kibana