운영체제의 EOS로 업그레이드를 진행하는 경우 서버를 교체하며 EOS  프로그래밍 언어까지 업그레이드 하면 좋지만

여러가지 이유로 프로그래밍 언어는 유지하고 OS와 어플리케이션 버전만 업그레드 하는 경우가 있다

 

이번 경우도 운영체제를 업그레이드하며  apache 버전은 2.2 -> 2.4로 업그레이드 진행했지만 php 버전은 5.2 버전을 유지해야 하는 상황에 발생한 오류 처리 내용이다.

오류 내용
httpd: Syntax error on line 168 of /usr/local/apache/conf/httpd.conf: Cannot load modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: undefined symbol: unixd_config

 

조치 방법
apache 2.4로 버전업하면서 unixd_config 심볼이 ap_unixd_config 변경되어 발생하는 문제로 
php 소스 컴파일전 해당 내용을 수정하고 컴파일을 해야한다.

unixd_config -> ap_unixd_config  수정

vi /usr/local/srcphp-5.2.17/sapi/apache2handler/php_functions.c

>line 386

#if !defined(WIN32) && !defined(WINNT) && !defined(NETWARE)

        AP_DECLARE_DATA extern unixd_config_rec ap_unixd_config;

#endif

 

>line 417

#if !defined(WIN32) && !defined(WINNT) && !defined(NETWARE)

        snprintf(tmp, sizeof(tmp), "%s(%d)/%d", ap_unixd_config.user_name, ap_unixd_config.user_id, ap_unixd_config.group_id);

        php_info_print_table_row(2, "User/Group", tmp);

#endif

사내 개발 DB 구성 요청으로 작업 진행한 내역을 정리하려고 한다. 

 

요구사항.

- 운영서버와 동일한 버전 설치

- 운영 DB 스키마와 계정 정보 이관 요청

 

1. DB설치 

사내 DB는 MYSQL을 사용하고 있다.

설치 방법은 소스설치, 패키지 설치, 바이너리 파일 방식으로 편한 방법으로 설치하면 됩니다.

 

사내 DB는 소스설치, 개발 환경은 바이너리 파일로 구성하여 사용하고 있다.

바이너리 파일을 사용하는 이유는 mysql 홈페이지에서 다운로드 하여 압축하고 설정만 변경하여 신속하게 구성이 가능하기 때문이다.

 

DB 설치는 많은 블로그에서 확인 가능하기 때문에 별도로 기록하지 않으려고 한다.

 

2. 운영 DB 스키마, mysql db 백업 및 복구

<운영서버>

mysqldump -u root -p --single-transaction --no-data --all-databases > shema_backup.sql

mysqldump -u root -p mysql > mysql.sql

 

<개발서버>

mysql -u root -p < ./shema_backup.sql

mysql -u root -p mysql < ./mysql.sql

 

백업 완료 후 DB 접속 후 flush privileges;  진행

 

mysql -u root -p        DB 설치 시 설정했던 비밀번호

flush privileges; 

 

이후 mysql 재구동하여 운영DB에서 사용하던 비밀번호로 접속

 

 

<개발 DB 구성 참고>

서비스로 사용중인 운영 데이터는 일반적으로 개발 데이터를 사용할 수 없고 

시험 데이터를 생성해서 사용해야 한다. 

 

간혹 해당 내용을 모르는 개발자분들이 운영데이터를 이관 요청을 하는 경우가 있다

그럴 경우 위에 내용을 전달하고 그럼에도 운영 데이터 필요한 경우 개인정보 비식별화 처리 및 운영데이터 이관  승인 과정을 통해 이관 지원을 해야한다.

 

<ISMS-P_인증기준_세부정검항목> 관련 내용

 

 

'DB' 카테고리의 다른 글

innodb lock 확인 스크립트  (0) 2024.08.01
mysql 5.5 full dump 복구 후 원격 실패 오류  (0) 2024.02.29

elastic 7버전에서는 filebeat를 client 서버에 설치하고 elasticsearch 서버로 연동하여 로그 수집했습니다.

elastic 8버전을 사용하면서 로그 수집 서버를 업그레이드 하면서 elastic에서 권고하는 elast agent + fleet 방식으로 

사용하고 있으며 신규 서버 연동이 필요하여 연동 방법을 정리합니다.

 

사전 준비 내용

- elastisearch, kibana, fleet서버 설치 필요 

- 방화벽 허용 필요

client ip → fleet ip, 8220 port

client ip → elasticsearch ip, 9200 port

 

 fleet 서버 사용의 장점은 중앙관리 방식으로 client서버에 일일이 접속하여 설정할 필요 없이 fleet 서버에서 정책을 생성하고 배포가능하다는 점입니다. 그리고 다수의 client서버의 상태를 모니터링할 수 있어 연동 오류를 확인할 수 있습니다.

 

filebeat는 물론 대시보드를 만들어 상태를 체크할 수 있겠지만 다수 서버 사용 시 연동 오류 로그 수집 여부를 확인할 없는 부분이 단점이었습니다.

 

기본적인 ubuntu 서버에 elastic agent 를 설치하고 fleet 서버와 연동하는 방법입니다.

- elasticsearch, kibana, fleet 서버는 https://github.com/peasead/elastic-container elastic container project git hub를 통해 

손쉽게 설치하여 사용하고 있습니다.

 

1. add intergrations

kiban 접속 후 management 항목에서 'ingergrations' 선택하고 system 검색합니다.

 

system을 선택하면 intergration 구성 창이 나옵니다.

 

- collect log from system instances   (수집 시스템 로그 path)

- collect metrics from sytem instances (서버 리소스 메트릭 수집)

활성화 합니다. 

 

cahges defaults를 수집 영역에 대한 상세한 설정도 가능합니다.

ex)

 

 

agent policy name 입력하고 하단에 'save and continue'  누릅니다.

 

아래와 같은 창이 나오면 'Add Elastic Agent to your hosts' 선택합니다. 물론 나중에 Elastic agent 추가 작업도 가능합니다.

 

elastic agent 설치 및 fleet서버 연동 가이드 창이 나옵니다.

 

client 서버에 접속하여 설치 명령어를 입력합니다. elastic 권고사항은 tar 파일 사용입니다.

- 외부 방화벽 오픈이 필요하며 내부 서버의 경우 사전에 elastic agent 다운로드 후 서버에 업로드 해야합니다.

Y를 입력하면 설치 됩니다. 

 

[참고] SSL 인증서 적용이 안된 경우  '--insecure' 문구를 추가해야 합니다.

 

설치가 완료되면 clinet 서버와 fleet서버간 연동이 완료됩니다

 

키바나에서 management → fleet에 접속하면 agent 상태를 확인할 수 있습니다.

 

초기 연동시에 agent logging level 이 info로 설정되어 있어 과도하게 로그 발생 및 수집 되기 때문에 error 로그 레벨을 조정합니다. (선택사항)

 

fleet →해당 agent 선택 후 → logs 메뉴 선택 하단에 Agent logging level 'error' 선택하고 Apply cahnages 선택

 

이제 로그수집이 잘 되는지 확인합니다.

키바나에서 Analytics → Discover 메뉴에서 Data View 선택에서 logs-* 선택합니다.

다수의 서버가 있을 경우 host.name으로 필터링하여 수집된 데이터를 확인합니다.

 

intergrations 메뉴에는 다양한 다양한 어플리케이션 연동 방법 제공되고 있으며 

저는 system과 db, web서버의 로그를 수집하여 대시보드를 만들어 다양한 용도로 활용하고 있습니다.

 

 

 

+ Recent posts