ZAMONG 소개및설치가이드 Author 박성현 Creation Date 2018-03-14 Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved Version 변경일자변경자 ( 작성자 ) 주요내용 1 2018-03-08 박성현초안작성
Contents 1. Zamong 소개... 3 Key Features... 3 Using direct memory access method... 3 No load on oracle db and server at all... 3 Stats and Session details can be extracted in hang state... 3 You can analyze oracle instance and sessions at a certain point in the past... 4 Intuitive dashboard for real time monitoring, web-based user interface for analysis... 4 Other Features... 5 It's Simple, DBA can build the system on his own... 5 All character set supported... 5 Just Free... 5 Compared with other solutions... 5 Query-based DB monitoring solutions... 5 Oracle Automatic Workload Repository (AWR)... 6 Platforms Supported... 6 2. 사용가이드... 7 2.1. URL 접속... 7 2.2. Zamong_Dashboard... 8 2.3. Zamong_Clues... 12 2.4. Zamong Architecture... 16 2.5. Zamong Agent install... 16 2.5.1. 자몽 Agent 설치...17 2.6. Zamong Server install... 18 2.6.1. Mysql Install...18 2.6.2. Apache & PHP Install...22 2.6.3. Zamong Install...25 2.7. 프로세스기동확인... 26 3. ETC... 28 3.1. 파일다운로드... 28-2
1. Zamong 소개 Key Features Using direct memory access method Oracle DB 에액세스하지않고직접메모리액세스방식을사용하여 Oracle DB 내부상태 (v$sysstat, v$system_event) 및엑티브세션세부사항 (v$session, sql-text..) 을수집합니다. Zamong 에이전트는 SQL 쿼리를사용하지않습니다. 메모리에서매초통계및세션세부정보를읽습니다. No load on oracle db and server at all DB 서버에연결하지않으며 SQL 쿼리를사용하지않습니다. Direct memory access 방식을사용함으로써 DB 서버 에부하없이 Oracle DB 내부상태및엑티브세션세부정보를추출할수있습니다. Direct memory access 방식 은초당 100 번이상수행할수있을정도로빠르고가볍습니다. Stats and Session details can be extracted in hang state Oracle DB 가 HANG 상태이거나서버에심각한성능저하가발생하여 DB 에연결된각세션에서쿼리결과를 받을수없는경우에도 zamong 은메모리주소를참조하기때문에 DB 에영향을미치지않고세부사항을추출 할수있습니다 - 3
You can analyze oracle instance and sessions at a certain point in the past 추출된데이터는 db (mariadb 또는 mysql) 에저장되며 ORACLE DB 내부상태와 Active Session 상태는 언제든지 1 초간격으로분석할수있습니다 Intuitive dashboard for real time monitoring, web-based user interface for analysis 실시간모니터링을위한대시보드, 분석을위한웹기반사용자인터페이스가제공되어 DB 상태를직관적으로식 별합니다. - 4
Other Features It's Simple, DBA can build the system on his own 시스템에 mariadb ( 또는 mysql), apache http server + php 가설치되어있으면매우빠르게모니터링시스템을구축할수있습니다. zamong 설치파일을다운로드하여특정디렉토리에복사하십시오. 또한기존 UI 에관리웹페이지를추가할수있습니다. zamong 웹기반사용자인터페이스의전체구조는매우간단하므로 DB 모니터링환경을직접구축하고, 이를사용하지않고이점을확인하는데사용할수있습니다. 그리고약간의웹개발기능이있다면 zamong 웹기반사용자인터페이스에서자신만의웹페이지를추가할수있습니다. All character set supported Zamong 프로그램은 Chrome 브라우저에서만작동합니다. Zamong 프로그램은엑티브세션의 SQL 쿼리를바이너리로저장하고 SQL 쿼리문자열을브라우저를통해봅니다. 따라서문자인코딩 - 디코딩은크롬브라우저에서수행되며화면에표시됩니다. Chrome 브라우저에 Chrome Set Character Encoding 확장자를추가하면언어문자집합이포함된 SQL 문을올바르게볼수있습니다. ( 예 : 한국어, 중국어, 일본어...) Just Free 이제품의라이센스는무료입니다. 매년초제품키를홈페이지에서다운로드하여무료로갱신하실수있습니다. Compared with other solutions Query-based DB monitoring solutions 쿼리기반 DB 모니터링솔루션은예상치못한오류의위험을증가시킵니다. 쿼리를수행하여오라클인스턴스 상태정보와액티브세션정보를추출하는방법은하나의쿼리를수행하기위해 DB 에서내부적으로많은재귀 쿼리를수행함으로써수행됩니다. 이러한재귀쿼리는공유풀에서래치경합을일으킬수있습니다. 서버의쿼리응답시간, CPU 사용량, 엑티브세션수등과같이이러한지표가정상적인경우쿼리기반 DB 모니터링솔루션이좋은아이디어일수있습니다. 그러나 DB 응답시간이증가함에따라엑티브세션수가증가하고쿼리기반 DB 모니터링방법을사용하면공유풀에서래치경합을더높일수있기때문에위험합니다. - 5
Oracle Automatic Workload Repository (AWR) oracle db 가정지상태이고 db 서버성능이쿼리에대한응답을신속하게수신하지못하면시스템관리자가 서버를재부팅하거나데이터베이스를다시시작하여이러한문제를해결했습니다. 이상황에서 AWR 데이터를 분석하여실패의원인에대한단서를찾으면해당시점의데이터가저장되지않는경우가많습니다. 먼저 DBA 는 AWR 기능을사용할때 Diagnostics Pack 라이센스를구입했는지확인해야합니다. 이것은 LMS 문제의중요한부분입니다. Oracle Diagnostics Pack license includes the following features DBMS_WORKLOAD_REPOSITORY package DBMS_ADDM package DBMS_ADVISOR package V$ACTIVE_SESSION_HISTORY dynamic performance view All views beginning with DBA_ADDM_ All data dictionary views beginning with the prefix DBA_HIST_ (Only Exception List) DBA_HIST_SNAPSHOT DBA_HIST_DATABASE_INSTANCE DBA_HIST_SNAP_ERROR DBA_HIST_SEG_STAT DBA_HIST_SEG_STAT_OBJ DBA_HIST_UNDOSTAT Oracle AWR 기능을사용하려면구두기업라이센스와별도로 oracle database diagnostics pack' 라이센스를구매해야합니다. oracle database diagnostics pack 은 'oracle database enterprise edition' 라이센스로만구입할수있는추가라이센스항목이며, DBA 는 AWR 기능을사용할때진단팩라이센스를구입했는지확인해야합니다. 이것은미래에발생할수있는비용이많이드는문제를피하는방법입니다. 그리고오라클스텐다드에디션제품을사용하는경우 AWR 기능을사용하지않아야합니다. Platforms Supported - 6
2. 사용가이드 2.1. URL 접속 자몽모니터링은크롬에서만지원합니다. URL 접속방법 -- http:// 자몽서버 IP 주소 실시간모니터링 (Zamong Dashboard) 과추적 (Zamong Clues) 기능지원 사용방법 1. DB Alias : 화면상으로보여질 Database 이름. ( 오라클서버 Zamong.conf 에등록한 db_alias 와동일하게입력 ) 2. Description : 추가코맨트설정 3. Add -> 하단 List 에입력한 Database 리스트추가 - 7
2.2. Zamong_Dashboard 실시간모니터링을지원하는화면으로써 13 개의항목에대한실시간성능모니터링을지원합니다. Session Count 토글기능을지원하며, Total Session 과 Active Session 추이를보여줍니다. CPU Util 시스템에서사용하는 SYS, 일반유저가사용하는 USER, I/O 발생량을나타내는 IO 로구성되어있습니다. - 8
User Calls & Execute Count User Calls 는 Oracle Call Interface 를통해오라클외부로부터들어오는 Call 을말하며, Peek 시간대의시스템확장성을떨어뜨리는가장큰요인입니다. 과도한 User Calls 발생시, 맨하단의 Session Monitoring 혹은수집된데이터로해당시점을선택하여문제원인의세션을추적할수있습니다. Execute Count 는 DML 실행한횟수로써 CPU I/O, Latch 와밀접한관련이있는필수적인모니터링항목입니다. 갑작스런 Execute Count 의증가는 CPU 의부하를줄수있으며, 모니터링화면에서의 Logical Read, CPU Util 과관련지어분석할수있습니다. Session Logical Read & Phycal Reads Logical Read 는버퍼캐시를통해읽은모든데이터블록을의미하며 CPU usage 관련가장유사한모니터링포인트입니다. Physical Reads 는 Disk I/O 를수행한블록개수로써종류로는 Conventional Path, Direct Path 가있습니다. 보통 100 ~ 200 blocks/sec 속도로읽기때문에지속적인 Physical Reads 는시스템의성능저하를야기할수있으며, 실시간모니터링으로 Physical Reads 를유발하는문제의 SQL 을추적할수있습니다. Full Scan & Log File Sync Full Scan 항목에서는 Full table scan 의대표적 wait event 인 DB File Scattered Read, SGA 를거치지않고바로 PGA 로직접읽어들이게하는 Direct Path Read, 정렬작업시발생하는대표적 wait event 인 Direct Path Read Temp 를보여줍니다. 이항목은 I/O 와밀접한관련이있습니다. Log Flie Sync 는일반적으로 User Commit 또는 Rollback 시에수행되는 LGWR 프로세스의 sync write 에의해발생되며, 주로과다한 Commit 또는 LGWR 프로세스의 I/O 처리속도의문제로인해발생합니다. 이또한 I/O 와관련이있는모니터링항목입니다. - 9
DB Wait Time (Active Session History) v$active_session_history 를통하여 I/O, DB Link, RAC, Latch, Enqueue, Undo, Redo, Hot Block 등 8 개로 Class 화하 였으며, DB Wait Time 기반으로모니터링할수있습니다. Active Session History By wait Type v$active_session_history 를통하여 I/O, DB Link, RAC, Latch, Enqueue, Undo, Redo, Hot Block, Other 등 9 개로 Class 화하였으며, Wait Type 별 Session 추이를모니터링할수있습니다. Active session history v$active_session_history 의 wait_class 을참조하여 Session 추이를보여줍니다. I/O : 유저 I/O 대기 (ex. db file sequential read) Configuration : 데이터베이스또는인스턴스부적절한구성 (ex. shared pool size, 부족한 logfile size) Application : application code 에대한대기 (ex. Row lock, 혹은 explicit lock) Cluster : GC 관련대기 (ex. gc cr block busy) Commit : 커밋후대기 (ex. Log file sync) Administrative : DBA 명령으로인한대기 (ex. index rebuild) - 10
Parse Count Hard Parse Count 는새로파싱된문장의수를의미하며, I/O cost 가많이드는작업입니다. 만약, 과도하게 parse count 가증가했다면, 맨하단 Session 모니터링과연계하거나, Clues 기능으로과거시간을추적하여어느세션의 SQL 이 hard parsing 을발생시켰는지확인할수있습니다. 대표적인예로 Literal SQL 로인한 Parse Count 증가가있습니다. Session monitoring 및 Session Detail 분기 Active Session 을실시간으로모니터링할수있으며, 원하는세션을더블클릭하여세션의 Stat 정보들과 SQL Full text 를볼수있습니다. - 11
2.3. Zamong_Clues Mysql 서버에저장된정보를조회하여원하는시간대의오라클 database 성능정보를추적할수있습니다. 오라클 DB 에어떤문제가발생되었었다면그문제가발생했던시점 ( 시분초 ) 을기준으로시간을초단위로이동시키면서분석할수있습니다. 특히 Active 세션의 Wait event 와 Sql, 그리고 V$session 에나오는대부분의정보가 1 초단위로저장되어있기때문에오라클성능이슈나장애가발생되었을때, 사후에그원인을가장상세하게분석할수있는툴입니다. 오라클의 AWR, ASH 는모니터링된정보를오라클내부 DB 에기록하지만그부하를줄이기위해우선메모리 (v$ 뷰에 ) 에성능정보를가지고있다가주기적으로디스크 (DBA 뷰 ) 에기록하는방식입니다. 그래서서버가갑자기재부팅되거나혹은 DB 가다운되거나 Restart 되었을때, 그원인을분석하려고 AWR, ASH 를조회해보면데이터가나오지않아장애분석하는데어려울때가많습니다. Zamong Clues 는바로사후분석을위한툴입니다. 사용방법 1. DB Alias, Date 선택, From, To 선택후파란색버튼클릭 DB Date 항목은일반적일때는사용하지않지만아래케이스에서는 DB Date 값이필요합니다. 오라클데이터베이스서버의 time 과 Zamong 서버의 time 이 ntp 로동기화되어있지않다면, 날짜가바뀌는시점전 / 후로데이터가차트에보이지않을수있습니다. 이때 Date 와 DB Date 를사용합니다. Date 는 Zamong 서버의시간이며와 DB Date 는오라클서버의시간입니다. 예를들어오라클서버에서 2018 년 3 월 15 일 23:59:01 초에스캔된정보가바로 Zamong 서버에전송돼서기록되는데, 그시점의 Zamong 서버시간이다음날인 2018 년 3 월 16 일 00:00:01 초라라고가정한다면 - 12
Date 를 2018 년 3 월 15 일으로선택해서 Zamong clues 를조회해보면 23:59:00 까지만차트에나타납니다. 이때 Date 를 2018 년 3 월 15 일으로선택하고 DB Date 를 2018 년 3 월 16 일으로선택해서조회해보면나머지 1 분데이터를차트에서보실수있습니다. 2. 분석을원하는시간간격 ( From, To 항목 ) 을선택할때, 그시간간격을 30 분이하로선택하면차트의 X 축이 초단위로변합니다. 초단위의그래프로변화추이를상세하게볼수있습니다. 시간간격을 30 분이상으로선택하면차트의 X 축이분단위로변하고, 각분에서최대값이차트로그려집니다. 3. 차트에서분석하고싶은범위를마우스로 drag 하면오른쪽 range 부분에 drag 로선택된시간간격이 보이고, 이때 Zoom 버튼을클릭하면 drag 한부분이확대되게됩니다. 이렇게하면서시간간격을 30 분이하로 drag 하게되면 X 축이초단위로변하면서상세분석이가능해집니다. [ Drag : 범위선택 ] [ 초단위로차트가확대됨 ] - 13
4. 아래그림처럼차트의라인을클릭하면그시점이선택되어집니다. 그리고 RUN 버튼을클릭하면 그선택된시간에서 0 초 ~ 59 초사이의 Aactive 세션수가 ACTIVE SESSION DETAILS( 60 seconds ) 차트 영역에표시됩니다. 아래그림에서는 19 시 05 분이선택되었습니다. 그리고 Active session detail 항목에는그시점 (19 시 05 분 0 초 ) 의 Active 세션리스트가보여집니다. 선택된시간부분을해제할때는그선택된부분을더블클릭합니다. ( 클릭은선택, 더블클릭은해제 ) 이렇게세션분석을하기위해분석할시간을선택할때는 Active session 차트나 Cpu Usage(%) 차트에서 차트가튀는부분을찾아내어그부분을 drag 한후, 점점확대하면서찾아들어가는방법이좋습니다. 5. 그리고아래그림처럼 ACTIVE SESSION DETAILS( 60 seconds ) 차트를보면서가장부하가많았던시점을찾아냅니다. 아래그림에서는 28 초시점이 Active 세션이많은것을확인할수있는데, 28 초를클릭하면그시점의 Active 세션을볼수있습니다. 이런방식으로시간을앞 / 뒤로이동시키면서 Active 세션의움직임을직접확인하면서원인을분석해나갈수있습니다. 6. Active 세션리스트에서상세정보를보고싶은 row 를클릭하면세션상세정보를볼수있는화면이팝업됩니다. 선택한 Session 에대하여 Module, SQL Full Text, Wait detail 등모든 stat 에대한정보를제공합니다. - 14
[ 현재까지 Zamong Clues 는 MAIN 탭까지만들어진상황이며, 카테고리별로지표를모아놓은여러탭의내용 까지개발이끝난다면, 이툴은장애분석에상당한도움이될것입니다 ] - 15
2.4. Zamong Architecture 2.5. Zamong Agent install 서버환경 ( 예 ) 자몽서버 오라클서버 OS, DB Version CentOS 7.2 / Mysql 5.5 RHEL 6.5 / Oracle 11204 Hostname mysql oracle IP 172.40.40.199 172.40.40.191 자몽포트 17531 17531 DB 포트 3306 1521 설치항목 MySQL 5.5, PHP, httpd, 자몽서버프로세스 자몽 Agent 설치파일 mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz zamong_server_v03.tar.gz zamong_web.tar.gz linux_zamong_agent_1120400.tar - 16
방화벽오픈 List From To 포트 오라클서버 자몽서버 17531 사용자 PC 자몽서버 80 2.5.1. 자몽 Agent 설치설치파일전송및압축해제 $tar -xvf linux_zamong_agent_1120400.tar $cd zamong/ zamong.conf zamong_as zamong_gs zamong_ms zamongctl zamonglic.dat $pwd /home/oracle/zamong zamong.conf 파일수정 home_dir /home/ora11204/zamong -- 자몽경로 collector_ip 172.40.40.199 -- 자몽서버 (MySQL) IP collector_port 17531 -- 자몽서버와의통신포트 db_alias zamongdb -- 화면출력 DB 이름 ( 숫자부터시작하면안됨 ) os_number 2 -- 오라클서버종류 / AIX : 1, Lunux : 2 oracle_version_number 1120400 -- 오라클서버버전 / ex) 11204 : 1120400 instance_name ORA11204 -- select Instance_name fron v$instance db_name ORA11204 -- select name from v$database OS 가 Linux 일때수정사항 OS 가 Linux 인경우 memory_target 을사용해서는안됩니다. 확인방법 : SQL> show parameter memory_target memory_target=0 으로설정되어있어야자몽서비스를이용할수있습니다. 만약 Memory_target 이설정되어있다면, memory 용량을고려하여아래예시와같이설정해주세요 ex) memory_target 이 4294967296 (4g) 일경우 SQL> alter system reset memory_target scope = spfile; SQL> alter system set sga_target = 3g scope = spfile; SQL> alter system set pga_aggregate_target = 1000m scope = spfile; SQL> shutdown immediate ; SQL> startup - 17
2.6. Zamong Server install 2.6.1. Mysql Install 유저생성및설치파일전송 # userdel -r mysql # useradd mysql -d /mysql # passwd mysql >>Mysql 설치파일전송 필수디렉토리생성및정리 - ROOT 유저 # export DBNM=MySQL # mkdir -p /mysql/$dbnm # mkdir -p /mysql/$dbnm/scripts # mkdir -p /data/$dbnm/ # mkdir -p /data/$dbnm/datadir # mkdir -p /data/$dbnm/tmpdir # mkdir -p /data/$dbnm/logdir # mkdir -p /data/$dbnm/logdir/oldlog # mkdir -p /data/$dbnm/binlog # mkdir -p /data/$dbnm/relaylog # chown -R mysql:mysql /mysql # chown -R mysql:mysql /data 설치파일압축해제및심볼릭링크생성 su - mysql $ ls MySQL mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz zamong_server_v03.tar.gz zamong_web.tar.gz $ tar -xvf mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz -C /mysql/mysql/ $ ln -s /mysql/mysql/mysql-5.5.59-linux-glibc2.12-x86_64 /mysql/mysql/instance - 18
my.cnf 편집 $ vi /data/mysql/my.cnf [mysqld] port = 3306 socket = /tmp/mysql.sock basedir = /mysql/mysql/instance datadir = /data/mysql/datadir tmpdir = /data/mysql/tmpdir key_buffer_size = 120M join_buffer_size = 1M max_allowed_packet = 32M concurrent_insert = 2 skip-name-resolve ### Logging options ### skip_log_bin general_log = 0 slow_query_log = 1 long_query_time = 2 log_error = /data/mysql/logdir/error.log slow_query_log_file = /data/mysql/logdir/slow.log general_log_file = /data/mysql/logdir/general.log expire_logs_days = 15 bash_profile 수정 export DBNM=MySQL echo '' >> ~/.bash_profile echo export DBNM=$DBNM >> ~/.bash_profile echo export PATH=/mysql/$DBNM/instance/bin:/mysql/$DBNM/xtrabackup/bin:/mysql/$DBNM/toolkit/bin:'$PATH' >> ~/.bash_profile echo alias cdmy="'cd /mysql/$dbnm/instance'" >> ~/.bash_profile echo alias cdsp="'cd /mysql/$dbnm/scripts'" >> ~/.bash_profile echo alias cddt="'cd /data/$dbnm/datadir'" >> ~/.bash_profile echo alias cdlog="'cd /data/$dbnm/logdir'" >> ~/.bash_profile echo alias showerr="'vi /data/$dbnm/logdir/error.log'" >> ~/.bash_profile source ~/.bash_profile - 19
cdmy MySQL 데이터베이스초기화./scripts/mysql_install_db --defaults-file=/data/$dbnm/my.cnf 데이터베이스접속, 기동, 중지스크립트작성 cat > /mysql/$dbnm/scripts/conn.sh << EOF #!/bin/sh source ~mysql/.bash_profile cd /mysql/$dbnm/instance./bin/mysql -h localhost -u root -p EOF cat > /mysql/$dbnm/scripts/startup.sh << EOF #!/bin/sh source ~mysql/.bash_profile cd /mysql/$dbnm/instance./bin/mysqld_safe --defaults-file=/data/$dbnm/my.cnf & EOF cat > /mysql/$dbnm/scripts/shutdown.sh << EOF #!/bin/sh source ~mysql/.bash_profile cd /mysql/$dbnm/instance./bin/mysqladmin shutdown -u root -p EOF cdsp sh startup.sh 데이터베이스기동 사용자, 스키마, 권한초기설정 cdmy./bin/mysql -h localhost -u root << EOF update mysql.user set password=password('mysql123'); create database zamong default character set ascii; grant all privileges on zamong.* to 'mong'@'%' identified by 'aaaaa' ; grant all privileges on zamong.* to 'mong'@'localhost' identified by 'aaaaa' ; grant all privileges on zamong.* to 'mong'@'mysql' identified by 'aaaaa' ; flush privileges; - 20
commit; exit EOF 자몽유저접속확인 mysql -u mong -p Enter password: aaaaa Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 Server version: 5.5.59-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> - 21
2.6.2. Apache & PHP Install Apache Http Server 설치 - 설치패키지 : httpd-tools, httpd 설치 rpm 이없는경우 yum 으로설치 # yum install httpd PHP 설치 - 설치패키지 : libzip-0.10.1-8.el7.x86_64.rpm ( 없는경우온라인에서다운 ), php-common-5.4.16, php-cli-5.4.16, php-pdo-5.4.16, php-mysql-5.4.16-36 [root@mysql mysql]# rpm -Uvh libzip-0.10.1-8.el7.x86_64.rpm 경고 : libzip-0.10.1-8.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY 준비중... ################################# [100%] Updating / installing... 1:libzip-0.10.1-8.el7 ################################# [100%] [root@mysql Packages]# pwd /run/media/root/centos 7 x86_64/packages [root@mysql Packages]# rpm -Uvh php-common-5.4.16-36.el7_1.x86_64.rpm 경고 : php-common-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY 준비중... ################################# [100%] Updating / installing... 1:php-common-5.4.16-36.el7_1 ################################# [100%] [root@mysql Packages]# rpm -Uvh php-cli-5.4.16-36.el7_1.x86_64.rpm 경고 : php-cli-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY 준비중... ################################# [100%] - 22
Updating / installing... 1:php-cli-5.4.16-36.el7_1 ################################# [100%] [root@mysql Packages]# rpm -Uvh php-pdo-5.4.16-36.el7_1.x86_64.rpm 경고 : php-pdo-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY 준비중... ################################# [100%] Updating / installing... 1:php-pdo-5.4.16-36.el7_1 ################################# [100%] [root@mysql Packages]# rpm -Uvh php-5.4.16-36.el7_1.x86_64.rpm 경고 : php-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY 준비중... ################################# [100%] Updating / installing... 1:php-5.4.16-36.el7_1 ################################# [100%] [root@mysql Packages]# rpm -Uvh php-mysql-5.4.16-36.el7_1.x86_64.rpm 경고 : php-mysql-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY 준비중... ################################# [100%] Updating / installing... 1:php-mysql-5.4.16-36.el7_1 ################################# [100%] /etc/php.ini php.ini 수정 allow_url_fopen = Off display_errors = Off magic_quotes_gpc = Off file_uploads = Off log_errors = On error_log = php_errors.log date.timezone = Asia/Seoul /etc/hosts 설정 172.40.40.199 mysql /etc/selinux/config 수정 # vi /etc/selinux/config SELINUX=disabled ( 재기동필수 ) - 23
/etc/httpd/conf/httpd.conf 수정 (remove "#" and add IP ) #ServerName www.example.com:80 ---> ServerName 172.40.40.199:80 (Don't set 'AddDefaultCharset' parameter, add "#" ) AddDefaultCharset UTF-8 ----> #AddDefaultCharset DocumentRoot "/var/www/html/zamong " User apache Group apache Zamong 디렉토리추가 mkdir -p /var/www/html/zamong apachectl start Start HTTP daemon ps -ef grep httpd root 16935 1 0 14:07? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 16945 16935 0 14:07? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 16946 16935 0 14:07? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 16947 16935 0 14:07? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 16948 16935 0 14:07? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 16949 16935 0 14:07? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 16953 7436 0 14:07 pts/0 00:00:00 grep --color=auto httpd 방화벽해제 # firewall-cmd --permanent --zone=public --add-port=80/tcp -- Apache 포트 # firewall-cmd --permanent --zone=public --add-port=3306/tcp -- MySQL 포트 # firewall-cmd --permanent --zone=public --add-port=17531/tcp -- 자몽 Server 포트 # firewall-cmd --reload -- 방화벽오픈적용 # firewall-cmd --list-ports -- 오픈된방화벽확인 3306/tcp 80/tcp 17531/tcp * 3 개의방화벽포트오픈확인 - 24
Check test web page ( php + MySQL ) # vi /var/www/html/zamong/test.php <?php define(' HOST ', '172.40.40.199'); define(' DATABASE ', 'zamong') ; define(' PORT ', 3306 ); define(' USER ', 'mong'); define(' PASSWORD ', 'aaaaa'); $conn = mysqli_connect( HOST, USER, PASSWORD, DATABASE, PORT ); if (!$conn ) { echo "db connection fail: ERROR ". mysqli_connect_error() ; exit ; } else { echo "db connection success" ; exit ; }?> 접속 URL : http://172.40.40.199/test.php db connection success 출력확인 *selinux 적용후서버재기동을했다면, MySQL, httpd 다시기동해야합니다. 2.6.3. Zamong Install zamong_server_v03.tar.gz 파일전송, 압축해제, zamongservet.conf 수정 [MySQL 계정 ] $ tar -xvf zamong_server_v03.tar.gz home_dir /mysql/zsvr -- 자몽홈경로 zamong_listen_port 17531 -- MySQL 포트넘버 db_server_ip 172.40.40.199 -- MySQL IP db_connect_user mong -- MySQL string_for_connection aaaaa -- MySQL 비밀번호 db_connection_port 3306 -- MySQL Port database_name zamong -- MySQL db name table_check_interval 180 -- 테이블체크빈도 (sec) / default = 180-25
zamong_web.tar.gz 파일전송, 압축해제, config.php, connectdb.php 수정 [Root 계정 ] tar -xvf zamong_web.tar.gz -C /var/www/html -- /var/www/html 경로압축해제 vi /var/www/html/zamong/config.php <?php define(' HOST ', '127.0.0.1'); -- 자몽서버 IP define(' DATABASE ', 'zamong') ; -- 자몽서버이름 define(' PORT ', 3306 ); -- Mysql 포트 define(' USER ', 'mong'); -- 자몽유저 define(' PASSWORD ', 'aaaaa'); -- 자몽유저패스워드 define(' SOCKET ', '/tmp/mysql.sock' ); -- MySQL 소켓경로 -- 주석해제?> vi /var/www/html/zamong/connectdb.php // $conn = mysqli_connect( HOST, USER, PASSWORD, DATABASE, PORT ); -- 주석처리 $conn = mysqli_connect( HOST, USER, PASSWORD, DATABASE, 0, SOCKET ); -- 주석해제 2.7. 프로세스기동확인 프로세스기동확인 자몽서버 Mysql 기동확인. [mysql@mysql zsvr]$ ps -ef grep mysql mysql 1981 1 0 14:18 pts/0 00:00:00 /bin/sh./bin/mysqld_safe --defaults-file=/data/mysql/my.cnf mysql 2268 1981 0 14:18 pts/0 00:00:03 /mysql/mysql/instance/bin/mysqld --defaultsfile=/data/mysql/my.cnf --basedir=/mysql/mysql/instance --datadir=/data/mysql/datadir --plugindir=/mysql/mysql/instance/lib/plugin --log-error=/data/mysql/logdir/error.log --pid-file=mysql.pid -- socket=/tmp/mysql.sock --port=3306 * mysql 기동중지스크립트위치 : /mysql/mysql/scripts 자몽서버프로세스기동확인 [mysql@mysql zsvr]$./zamongsvrctl start Starting zamong_svr process. Please refer to the zamong_server.log file for detail USER PID PROCESS mysql 7158 zamong_svr * 하나의프로세스출력되면정상 - 26
자몽서버 httpd 서비스기동확인 [mysql@mysql zsvr]$ ps -ef grep httpd root 1812 1 0 14:17? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 1863 1812 0 14:17? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 1864 1812 0 14:17? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 1865 1812 0 14:17? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 1866 1812 0 14:17? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 1867 1812 0 14:17? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 1916 1812 0 14:18? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 2286 1812 0 14:18? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 2287 1812 0 14:18? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 2288 1812 0 14:18? 00:00:00 /usr/sbin/httpd -DFOREGROUND 오라클서버자몽 Agent 기동확인 [ora11204@ora11204 zamong]$./zamongctl start Parameter home_dir is '/home/ora11204/zamong' Starting zamong_gs process. Please refer to the zamong_gs.log file for detail Wait.. Starting zamong_as process. Please refer to the zamong_as.log file for detail Wait for checking zamong_gs: process (pid) 7268 for ORA11204 zamong_as: process (pid) 7272 for ORA11204 zamong_ms: starting USER PID COMMAND ora11204 7272 zamong_as ora11204 7268 zamong_gs ora11204 7372 zamong_ms * 3 개의프로세스출력되어야정상 - 27
3. ETC 3.1. 파일다운로드 MySQL MySQL 공식홈페이지 : https://dev.mysql.com/downloads/mysql/5.5.html?os=src 자몽다운로드 자몽공식홈페이지 : http://www.zamongsoft.com/download.php - 28