catchv blog 135

ERROR: pg_stat_statements must be loaded via shared_preload_libraries

pg_stat_statements EXTENSION 을 설치 했는데 아래의 에러가 나옵니다. ERROR: pg_stat_statements must be loaded via shared_preload_libraries 해결 방법 CREATE EXTENSION IF NOT EXISTS pg_stat_statements; SELECT * FROM monitor.pg_stat_statements; -- ERROR: pg_stat_statements must be loaded via shared_preload_libraries ALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements'; 또는 PGDATA 에 postgresql.conf 파일에 shared..

Database/Postgresql 2024.03.27

jenkins docker 안에 docker 설치

jenkins를 테스트하기 위해서 docker를 설치해서 사용하는 docker가 plungin 설치만으로 동작하지 않았다. jenkins안에 docker가 설치 되어 있지 않아서 build 명령어를 사용할 수가 없다. docker-ce를 설치 해야 하는 sock 부분도 연결 시켜줘야 동작하게 된다. * dockerfile(mac - arch=arm64) FROM jenkins/jenkins USER root RUN apt-get update -qq \ && apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common RUN curl -fsSL https://download.docker.com/l..

Dev/docker 2024.03.15

golang sqlc query log print

golang에서 sqlc를 사용하는데 쿼리를 log에 출력하는 옵션이 없어서 찾아 보니 driver의 hook을 설정해서 쿼리의 실행전과 실행 후에 쿼리를 찍는 소소가 있었다. 그런데 sqlc는 쿼리를 prepared 형식으로 던지기 때문에 parameter와 쿼리가 분리되어서 출력 되는 문제가 있었다. 그래서 gorm의 쿼리를 출력하는 소스를 찾아 보니 logger 폴더에 parameter를 찾아서 찍어 주는 소스가 존재 했다. 두개를 합치면 다음과 같은 소스로 원하는 쿼리를 출력해 볼 수 있다. 1. database driver hook https://github.com/qustavo/sqlhooks GitHub - qustavo/sqlhooks: Attach hooks to any database/..

Dev/Go 2024.03.08

go 1.22 for loop 변경

go 1.22 에서 for loop의 변경 점이 몇 가지 있습니다. for 사용시 for문에서 선언된 변수가 한번만 생성되어서 내부의 goroutine 사용시 마지막 변수가 나오는 문제점이 있었습니다. 이번 1.22에서는 매번 생성되므로 문제가 해결 됩니다. 샘플 코드 package main import ( "fmt" "sync" ) func main() { numbers := []any{1, 2, 3, 4, 5} var wg sync.WaitGroup for _, number := range numbers { wg.Add(1) go func() { defer wg.Done() fmt.Println(number) }() } // // 1.22 이전 버전은 아래의 코드르 형태임 // var number a..

Dev/Go 2024.02.23

Kibana server is not ready yet.

kibana 설정 후 "Kibana server is not ready yet." 계속 나오는 현상이 있었다. 여러 원인이 있겠지만 나의 경우 kibana.yml에 elasticsearch.hosts는 설정 했지만 username, password를 설정 하지 않아서 계속 문제가 발생되었다. elasticsearch.hosts: ['http://es2:9200'] 다음과 같이 username, passowrd 를 더 설정해 주거나 아예 다 설정 하지 않으면 config UI가 나온다. elasticsearch.hosts: ['http://es2:9200'] elasticsearch.username: kibana_system elasticsearch.password: password

Dev/elasticsearch 2024.02.08

elasticsearch 8.x build-in user password change

es의 8.x 부터는 elasticsearch-setup-passwords 는 사용하지 말라고 나온다. 그리고 RPM 또는 dnf로 es를 설치 하면 elasticsearch-setup-passwords을 실행 할 수가 없다.(이건 처음 한번만 사용 가능) 그래서 계정의 패스워드를 변경하려면 elasticsearch-reset-password 를 사용해야 한다. # 자동 패스워드 생성 ./elasticsearch-reset-password -u apm_system ./elasticsearch-reset-password -u kibana_system ./elasticsearch-reset-password -u kibana ./elasticsearch-reset-password -u logstash_syst..

Dev/elasticsearch 2024.01.31

dotnet으로 Golang gin 로컬 개발(localhost) 인증서 만들기

Go gin으로 개발중 https를 테스트하는데 인증서가 없어서 문제가 되었다. 로컬 개발이라 도메인도 없는 상황!!! dotnet에 개발 인증서를 만드는 기능이 포함되어 있다.(localhost) 아래의 명령어로 인증서(pem, key) 파일을 만들 수 있다. dotnet dev-certs https -ep ./certificate.crt --trust --format PEM --no-password Go gin TLS 서버 실행 srv.ListenAndServeTLS("./cert/certificate.crt", "./cert/certificate.key") 크롬에서 접속시 안전한 사이트로 표시됨.

Dev/Go 2024.01.11

[postgresql] FATAL: Peer authentication failed for user

계정을 만들고 psql로 접속시 아래와 같은 에러가 발생할수 있습니다. psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "my_role" psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "my_role" * pg_hba.conf 파일에 local 속성이 peer로 되어 있는 것을 확인 할 수 있습니다. peer는 os의 계정과 사용자 계정..

Database/Postgresql 2024.01.02