[Pinpoint] Collector Starter, Web Starter, Agent 설치

Pinpoint 3.0을 활용하고 싶으면 Pinot, Kafka를 설치해서 Metrics을 수집할 수 있기에 매뉴얼은 위에 기록했다. Pinpoint 3.0에는 일반적인 Collector, Web도 있지만 Pinot와 Kafka를 붙여서 사용하는 Collector Starter, Web Starter라는 것이 있다. 여기서 크게 문제가 됐던 부분이 있어서…. 헤맨 기억이 있다. Collector Starter v3.0 설치하기 위경로에서 jar 파일을 다운 받고 기존에 설치했던 java를 통해 실행만 시켜주면 끝이다. … Read more

[Pinpoint] Pinot, Kafka 설치

Pinpoint 3.0을 사용하려면 Pinot, Kafka 설치 전 HBase를 설치하는 매뉴얼은 위에 기록했다. Pinpoint 3.0부터는 System Metrics를 수집하는 것이 하나의 특징을 보인다. 그렇다면 이러한 System Metrics를 수집해보는 것이 당연하다 느껴져서 이를 도전해보고자 했다. System Metrics 수집은 Pinot와 Kafka를 필요로 하기에 설치를 진행했다.(Pinot는 처음 들어보는…..) Kafka v2.13 설치하기 위 경로에서 2.13 버전을 다운받아 압축을 풀어준 후에는 zookeeper.properties에서 … Read more

[Pinpoint] HBase v2.5.10 설치하기

Naver에서 개발한 오픈소스인 Pinpoint… APM Tool이면서 성능 분석도구로 많이 사용하고 있다. 다른 APM 툴에 비해서 장단점은 명확히 존재하지만, 오픈소스기도 하고 따로 소스코드쪽 수정이 필요없기에 많은 선택을 받고 있다고 생각한다. Pinpoint는 여러가지 서비스(모듈)들이 합쳐지는데 각각의 버전 호환 여부가 중요하다. https://github.com/pinpoint-apm/pinpoint 위 링크를 통해 버전들을 확인해보면서 아직 정식출시되지는 않았지만 어느정도 개발이 완료된 것 같은 Pinpoint 3.0을 채택하였다.(실제 … Read more

[ERROR] k8s spec.initContainers[0].image: Required value

Kubernetes에서 반나절을 귀찮게 했었던 에러가 있었다…. deployment manifest파일을 작성하여 kubectl apply ~를 했지만 왜인지 pod가 계속 생성되지 않았었고, kubectl describe ~로 deployment와 replicaset을 확인한 결과 아래 에러가 계속 발생하고 있었다. 분명히 deployment.yaml에는 Container의 Image를 명시해줬는데 위 에러가 뜨길래 여러 삽질을 했었다….. 에러를 차근차근 분석해야한다. 에러를 확인해보면 일반 Container가 아닌 initContainer의 image를 찾고 있는 것 처럼 … Read more

[Linux] fstab 파일에 대한 이해

서버를 관리하는 엔지니어면 대부분 알고 있는 fstab에 대해서 기록하고자 한다. fstab은 한마디로 “서버 부팅단계에서 마운트되어야 할 볼륨 정보를 담은 파일”이다. 서버 부팅중 에러가 나는 경우의 절반은 fstab이 차지했던 것 같다.(이제는 별로 그럴 일은 없지만..) 먼저 간단하게 fstab에 예는 아래와 같다. fstab 파일 /etc/fstab에 존재하고 있으며 크게 6개의 정보로 이루어진다. 1번 – UUID 또는 /dev/vdb(장치명)으로 표현되는데 … Read more

[ERROR] GitLab Forbidden 에러 발생

갑작스레 호스팅중이였던 GitLab에 Forbidden 에러가 발생했다. 증상은 GitLab에 접속하게 되면 아래와 같이 Forbidden 문구가 출력됐다. 에러 추적 과정 Block IP 해제하기 GitLab Redis에서 Block IP를 해제하는 방법은 생각보다 쉬웠다. 위처럼 redis-cli를 통해 Gitlab Redis에 접속 후 ban되어있는 IP를 확인하여 해당 값을 삭제한다. 갑작스레 에러가 발생하면, 해당 에러의 증상부터 파악하는 것이 원인을 빠르게 찾는 답인 것 … Read more

[RabbitMQ] RabbitMQ에 대한 이해

사내 서비스들 중 대부분 RabbitMQ를 사용하고 있지만, 과연 우리가 RabbitMQ를 100% 활용하고 있는가에 대한 의문이 들었다. 내가 알고 있는 RabbitMQ에 대한 정보는 극히 적었다. AMQP를 통해 Producer와 Consumer 사이에서 메시지를 중계해주는 “메시지 브로커”라는 것이며, 크게 Standalone과 Cluster로 구성할 수 있으며, Standalone은 흔히 아는 단독으로 1개의 노드를 띄우며, Cluster는 3개 이상의 노드로 홀 수의 노드를 띄우는 … Read more

[Jenkins] Jenkins 설치

Linux 기반의 Jenkins를 설치했던 방법을 추후에도 참고할 것 같아 작성했다. Jenkins의 설치 방법은 여러가지(Docker, Kubernetes, Linux, Windows)가 있는데, 기본적인 Linux로 설치를 하였고 Rocky Linux 기반으로 진행했다. Jenkins는 최신 Release 또는 Long Term Support 둘 중 1개를 선택할 수 있는데, 아무래도 Long Term Support가 좀 더 안정적이기에 해당 버전을 설치했다. 설치 방법 위 내용은 아래 공식 … Read more

[Docker] Docker 디렉토리 구조

어느 날, systemctl start docker 명령어를 입력했더니 hang이 걸리는 사건이 있었다. dmesg와 journalctl, messages를 전부 확인해도 문제가 되는 부분이 없었고, docker.socket 또한 기동이 되고 있었다. 삽질을 하던 중 찾아낸 원인은…. docker의 기본 디렉토리인 /var/lib/docker 가 3TB 가까이 사용중이였으며, 하필이면 할당된 디스크가 성능이 안 좋은 SATA 디스크였기에 docker가 기동되면서 /var/lib/docker의 데이터들을 읽어오는 시간이 상상초월할 정도로 길었으며, … Read more

[Maven] Maven 명령어 및 옵션 정리

여러가지 Build Toole들이 있지만 업무상 Maven 3.6.x으로 작업하는 경우가 많아서 이에 대한 옵션을 정리하고자 한다. (업무할 때에 참조하기 편하도록 정리하기로 했다.) 공식 Docs를 최대한 생활화 하자. http://maven.apache.org/ref/3.6.3/maven-embedder/cli.html(Maven 3.6.3 공식 페이지이지며, 버전은 알맞게 변경해서 확인해야한다.) Maven 명령어 종류 Maven 옵션 종류