본문 바로가기

전체 글

Linux - 프로세스 자동 재시작 설정 스크립트 서버에서 프로세스가 비정상적으로 동작하거나 중단되는 상황에 자동으로 재시작하는 방법이 필요했습니다.systemd와 스크립트를 조합하여 서비스가 중단되었을 때 자동으로 재시작되도록 설정할 수 있습니다.스크립트 구조kill_my_service.sh: 특정 프로세스를 강제로 종료하는 역할을 합니다.check_my_service.sh: 주기적으로 프로세스 상태를 점검하고, 필요시 프로세스를 재시작합니다. 이 스크립트는 crontab을 이용해 매 분마다 실행됩니다.kill_my_service.sh#!/bin/bashfunction killProcess(){ while : do if [ `ps -ef | grep $1 | grep -v grep | wc -l` -eq 0 ] ; .. 더보기
MariaDB - mysqldump 시 함수와 프로시저 누락 문제 해결 방법 데이터베이스 운영 시 주기적인 백업은 필수적입니다. 저 역시 mysqldump 명령어로 데이터베이스 전체를 백업해 왔습니다.백업 시 --all-databases 옵션을 사용하여 모든 데이터베이스를 백업하기 때문에 모든 객체가 백업될 것이라고 생각했습니다.그러나 최근 새로 추가된 데이터베이스에서 함수와 프로시저를 백업하는 과정에서 예상치 못한 문제가 발생했습니다.1. 백업 작업 중 발생한 문제저는 항상 다음과 같은 형식으로 전체 데이터베이스를 백업하고 있었습니다.mysqldump -uroot -p[password] --all-databases > DBBACKUP.sqlmysqldump -uroot -p[password] --all-databases --master-data=2 --single-transac.. 더보기
MariaDB - Replication 복구 (Error 1062 해결 및 Slave 상태 점검) MariaDB 복제(Replication) 환경에서 종종 발생하는 오류 중 하나가 Error 1062: Duplicate entry입니다.복제 과정에서 기본 키 중복 문제로 인해 발생하며 복제가 중단되는 상황이 발생할 수 있습니다.1. Error 1062: Duplicate Entry주로 Primary Key 값이 중복되어 발생하는 문제입니다. 복제 환경에서는 주로 mysql.gtid_slave_pos 테이블에서 중복된 키로 인해 에러가 발생하는데, 이로 인해 Slave SQL 스레드가 멈추고 동기화가 중단됩니다. 로그를 보면 다음과 같은 에러 메시지를 확인할 수 있습니다:Error during XID COMMIT: failed to update GTID state in mysql.gtid_slave_p.. 더보기
Monitoring Tools - Zabbix 로그 파일 모니터링 설정 시 "Accessible only as active check" 에러 해결 방법 Zabbix로 로그 파일 모니터링을 설정할 때, "Accessible only as active check"라는 에러 메시지를 만나는 경우가 있습니다.이 에러는 로그 파일 모니터링 항목이 Active 모드에서만 동작할 수 있다는 것을 의미하는데요, 이 문제를 해결하는 방법에 대해 알아보겠습니다.로그 파일 모니터링은 왜 Active 모드에서만 동작할까?로그 파일은 시스템에서 실시간으로 변경되며, 그 내용이 빠르게 쌓일 수 있습니다.Passive 모드에서는 Zabbix 서버가 주기적으로 에이전트에게 데이터를 요청하는 방식인데, 로그 파일처럼 빈번하게 변동되는 데이터를 이런 방식으로 관리하면 비효율적일 수 있습니다.그래서 Active 모드에서는 Zabbix 에이전트가 로그 파일의 변동을 감지하고, 그 데이터를.. 더보기
Monitoring Tools - Zabbix Agent 모드 비교와 호스트 자동 등록 설정 Zabbix Agent는 모니터링 대상 시스템에서 데이터를 수집해 Zabbix 서버로 전송하는 역할을 합니다.이때 Agent와 Zabbix 서버 간의 통신 방식에는 Active Mode와 Passive Mode가 있고, 상황에 따라 모드를 선택하시면 됩니다.Zabbix Agent의 통신 방식: Active Mode와 Passive Mode모드Passive (Default)Active통신 흐름서버 → 에이전트 → 서버에이전트 → 서버설명Zabbix 서버가 에이전트에 접속해 데이터를 요청에이전트가 주기적으로 데이터를 서버로 전송장점서버에서 통신 제어 가능, 실시간 데이터 요청 가능서버 부하 감소, NAT/방화벽 환경에서 설정 간편단점대규모 환경에서 서버 부하가 커질 수 있음 방화벽 설정 복잡함실시간 데이터 .. 더보기
Linux - 일반계정으로 1024이하 포트 사용방법 (setcap / getcap) 리눅스에서 1024 이하의 포트는 일반적으로 root 권한이 있어야만 사용할 수 있습니다.하지만 보안 이유로 인해 일반 사용자 계정으로 웹 서버(Apache 또는 Tomcat)를 실행해야 하는 경우가 많습니다.이때 capabilities 기능을 사용하여 일반 사용자도 root 권한 없이 1024 이하의 포트를 사용할 수 있습니다.Capabilities란?root 계정은 모든 권한을 갖고 있지만 일반 사용자 계정에게 root 권한을 부여하지 않으면서 특정 작업을 허용하려면 capabilities 기능을 사용할 수 있습니다. root 권한을 나누어 특정 작업(예: 포트 바인딩)을 수행할 수 있게 해 줍니다.특히 cap_net_bind_service라는 권한을 사용하면 일반 사용자도 1024 이하의 포트(“p.. 더보기
Monitoring Tools - Zabbix UserParameter를 이용한 금액 모니터링 UserParameter는 Zabbix 에이전트에서 사용자 정의 스크립트를 실행하여 그 결과를 Zabbix 서버에 전송하는 방법입니다.curl과 jq를 사용하여 API로부터 JSON 데이터를 가져와 Zabbix 트리거로 사용할 수 있도록 하는 예제를 설명합니다.[OS/Linux] - Linux - jq 명령어란? (JSON 데이터 처리기) 설정 과정1. Zabbix UserParameter 설정Zabbix 에이전트 설정 파일(/etc/zabbix/zabbix_agentd.d/userparameter.conf)에 사용자 정의 파라미터를 추가합니다. 이 파라미터는 Zabbix 서버가 해당 키로 요청을 보냈을 때 실행할 스크립트를 지정합니다.UserParameter=check_bizm_balnace,"/etc.. 더보기
Linux - jq 명령어란? (JSON 데이터 처리기) 1. jq란 무엇인가?jq는 JSON 데이터를 처리하고 파싱 할 수 있도록 도와주는 유틸리티입니다. 마치 sed나 awk처럼 사용되며, JSON 포맷의 데이터를 필터링하고 변환하는 데 특화되어 있습니다. 복잡한 JSON 데이터 구조에서 특정 값만 추출하거나 데이터를 재구성하는 데 매우 유용합니다.2. jq 설치하기 # aptsudo apt-get updatesudo apt-get install jq# apt(select version)sudo apt-get install jq=1.5*# yumsudo yum install jq# yum(select version)sudo yum install jq-1.5# dnfsudo dnf install jq# source codegit clone cd jqautor.. 더보기