Submitted by J @ 05-08 [04:01 am]
24시간 돌아가는 서버 소음을 줄이기 위해 케이스와 쿨링시스템을 교체했다. 또 데이터 안정성과 용량 문제를 해결하기 위해 고용량 하드 디스크 두 개로 미러링했다.
방문을 열어두면 마루까지 컴퓨터 소음이 들렸는데, 이제는 컴퓨터 가까이 있어도 소리를 크게 느낄 수가 없다.
구입 부품
- 디스크 : WD SATA2 750G (7200/16M) WD7500AACS * 2
- 케이스 : Antec Solo
- 쿨링시스템
- CPU 냉각 수퍼챠저 - 바동D(규격 및 색상 / DS-70 노란색)
- 바동 팬앰프 80mm - 120mm(규격 및 색상 / 파란색)
- FAN : Noctua NF-P12
- 노스브리지 히트싱크 : 잘만 ZM-NB47J
디스크
쿨링시스템
- 케이스
- 방진, 방음 효과가 좋은 케이스로 교체 -> 디스크 소음이 획기적으로 감소
- 전면 92mm 팬 * 2 (1개만 가동)
- 노스브리지 쿨링
- 소음이 심한 노스브리지 쿨러와 히트싱크를 떼어냄
- 쿨러가 필요없는 잘만 ZM-NB47J로 교체 -> 노스브리지 온도는 조금 올라갈 수 있으나 케이스 전체 냉각효과가 나아져서 시스템 안정성에는 큰 무리 없음
- CPU 덕트
- 번들 AMD 쿨러에 Badong DS-70 덕트를 연결하고 공기유입을 위해 Noctua NF-P12 120mm 팬을 달아줌, 팬 속도는 최저인 800RPM으로 설정
- CPU 쿨러로 공기 유입이 원활해져, CPU 팬 속도가 획기적으로 떨어지고 팬 소음 감소
Submitted by JongYeob @ 03-01 [07:16 am]
- stable-supfile에서 tag를 RELENG_7로 변경
- rebuild 실행
- 각 포트 업그레이드
6.3 환경에서 7.0으로 변경하니 어떤 포트는 제대로 작동을 하지 않는다. 그래서 모든 포트를 업그레이드한다. 꼬박 하루 넘게 포트 업그레이드가 돌아갈 듯하다. 아직도 도는 중.
Submitted by JongYeob @ 01-08 [04:10 pm]
보안 등 이유로 내부망을 서버와 공유기로 분리해둔 채로 썼는데, XBOX에서 서버로 접속해서 영화를 보거나 파일 전송할 때 속도가 많이 떨어지는 현상을 참을 수 없게 되었다.
공유기의 NAT 기능 등을 제거하고 스위칭 허브로만 사용하게 전환했다. 그 대신 서버에서 dhcpd 기능이 추가했다.
네트워크 구성도 간단하지고 속도도 빨라졌다. 진작에 이럴 걸. 내부네트워크 IP가 192.168.10로 한 이유는 하나TV 셋탑박스가 반드시 192.168.10.2로 설정해야하기 때문.
+-------------+
| HANARO |
+-------------+
|
| dhcp, nve0
+------+------+
| FreeBSD |
+------+------+
| 192.168.10.1/24, rl0
|
+-----+-----+
| WRT54G |
+-----+-----+
|
|
|---Wired/Wireless LAN --|
192.168.10.
Submitted by J @ 04-27 [03:05 pm]
이삼일전부터 외부에서 서버 접속이 불안했다. 의심되는 것은 네트워크 카드와 하나로망 문제 두가지로 추정해 볼 수 있다.
FreeBSD 6.0 pre release에서 Asus A8N 관련 보드에서 nve0에 문제가 있었으나 그 뒤로 문제가 없어졌다. 오래된 RealTek 8139가 조금 의심스럽기는 하나 로그상 물리적인 문제점은 발견할 수 없었다.
로그에는 dhcp 서버로부터 주소를 다시 받아온 것만 보인다. 추정할 수 있는 것은 rl0에서 일시적인 문제 발생이거나 하나로망의 라우터/스위치 이상으로 인해 접속이 단절 되었다가 다시 살아나면서 dhcp에서 주소를 다시 받아 오는 것이다.
Apr 27 18:10:28 rebma dhclient: New Broadcast Address (rl0): 222.238.224.127
Apr 27 18:10:28 rebma dhclient: New IP Address (rl0): 222.238.224.110
Apr 27 18:10:28 rebma dhclient: New Routers (rl0): 222.238.224.65
Apr 27 18:10:28 rebma dhclient: New Subnet Mask (rl0): 255.255.255.192
일단, 네트워크 카드의 이상여부 확인을 해 보는 차원에서 rl0와 nve0를 바꿨다.
- 변경전 : 하나로--
rl0/nve0 -- 내부망
- 변경후 : 하나로--
nve0/rl0 -- 내부망
2-3일 뒤에도 같은 문제가 발생하면 하나로망 이상으로 간주하고 AS 요청해야겠다.
Subversion 으로 문서 저장 방식을 바꾸다 #
Submitted by J @ 03-16 [09:20 am]
집과 사무실에서 쓰는 노트북이 다르고 어디서든 내 자료를 사용할 수 있도록 문서와 자료를 저장하고 관리할 수 있도록 Subversion을 사용하기로 했다.
목적
- 어디서든 전체 자료를 사용할 수 있게 한다
- 자료를 일관성 있게 관리하고 동기화한다
- 안정적으로 자료를 보관한다
Server Reopsitory
- 저장소 /home/svn/repos/jongyeob
Client Repository
Win32 환경에서는 TortoiseSVN을 사용한다.
Submitted by J @ 03-09 [07:24 am]
xorg를 6.9에서 7.2로 전환했다.
전환을 위해 포트 관리를 cvs와 portsnap에서 git로 변경했다.
Submitted by J @ 01-17 [05:08 am]
initailJ.com이 선점되어 있어 "-"를 붙였다. initail-J 를 쓰는데 별 어려움이 없고 잠시 쉬었다 J가 나타나니 J가 강조된다.
어디에 써 먹을고?
ADSL Pro + 고정 IP 시대를 막내리다 #
Submitted by JongYeob @ 09-21 [03:18 pm]
2006년 9월 19일자로 몇 년간 ADSL에서 고정 IP 서비스를 추가하여 서버를 운영하던 방식을 끝냈다. 지금은 광랜으로 교체했다.
광랜으로 전환할 때, 고정 IP를 사용할 수 없는 문제점이 있지만 다음과 같은 이유로 교체를 단행했다.
- 느린 ADSL에서 좀 더 빠른 광랜 혜택을 보고자 함
- 외부 호스팅, VPN 등 대안이 있음
- 고정 IP 서비스가 다른 대안 대비 비용이 크고 좀더 경제적인 방법으로 호스팅을 고려함
비용 효과는 대략 이렇다. (VAT 별도)
- 변경 전 : 약 70천원
- 변경 후 : 약 29천원
- 광랜 : 약 26천원 : 교체 할인 16% + 기존 2년 약정 할인 승계 5%
- 전화 기본료 : 약 3천원
- 절감액 : 약 40천원
대안
4만원이면 얼마든지 호스팅할 수 있는 대안을 만들 수 있다.
- 해외 호스팅
해외 호스팅 업체에서 월 7~10불에 넉넉한 트래픽과 저장 공간을 제공하는 서비스를 사용할 수 있다. (단, 경로에 따른 속도 감소 고려)
- VPN/PPTP
VPN 서비스를 활용하면 터널링을 통해서 고유한 IP를 할당받을 수 있다.
우리나라에 월 만원 ~ 3만원 가격으로 이런 서비스를 제공하는 업체가 있다. ADSL 경우에 1만원대. 그 이상이면 2만원 이상을 염두해야 함.
또는, 외부에 VPN 서버를 설치하는 방법도 있다.
임시 방편으로 서버가 돌아갈 수 있게 하고, 안정적이고 지속적인 방법은 테스트하고 구현할 수 있는 충분한 시간이 있을 때 결정할 예정이다.
약 10시간 downtime 2006-08-07 08:30 ~ 18:40 #
Submitted by JongYeob @ 08-07 [02:20 pm]
10:00경 사무실에서 내 홈페이지에 접속을 해 보니 페이지를 찾을 수 없다고 한다. ssh로도 접속이 안 된다.
16:38 서버 사용자(익명 절대 보장!?)로 부터 서버가 죽었다는 메시지를 받았다. (18:30분경 메시지를 확인)
메시지 내용은 이렇다.
또 머피의 법칙이야?
서버죽었네. 집이셈?
2005년 9월 서버 이전 뒤에, HW나 SW 문제로 인해 서비스 중지가 된 적이 거의 없고 단전이나 전기적인 문제가 없었다. 게다가 집을 나오기전에 서버가 무사히 돌고 있음을 보고 나왔다.
다운타임 원인을 다음과 같이 예상하였다.
case 1) 청소하는 과정에서 ADSL 연결부위(전화)가 느슨해지거나 빠졌다.
case 2) 서버 LAN 선에 발이 걸린 적이 있어, 중간 연결 부위 또는 서버의 RJ45 잭부분이 빠졌다.
집에 들어와 진짜 다운타임 이유를 파악했다. 너무나 자명한 사실로 인한 서비스 중지였다.
ADSL 장비 전원이 연결된 멀티탭 스위치가 OFF로 되어 있었다.
이는 어머니와 같이 집을 나서면서 어머니가 이 스위치를 꺼 놓았던 것이었다!!!!
집에 돌아와 이 사실을 파악하고 전원을 넣고 사이트 접속이 되는지 확인하고 샤워를 하고 어머니에게 지나가는 말로 이렇게 말했다.
어머니, 우리 집은 그냥 전기 꽂혀 있는 거 그대로 두세요.
부모님댁처럼 나갈 때 끄지 마세요. plz~~~~
집에 컴퓨터가 돌아가고 있어서 전원 끄면 밖에서 컴퓨터에 접속할 수 없습니다.
그냥 두시면 감사하겠습니다.
쓸쩍, 어머니에게 집에 나가시면서 TV와 연결된 탭 전원 내리셨지요? 하고 물었더니, 글쎄 ... 하고 대답하신다. 거의 무의식적으로 눈에 보이는 전기를 끄신 것이었던 것이었다!!!
서비스를 정상으로 복구하고 서비스 이용자(역시 익명처리)에게 이 사실을 알렸더니. "나도 그 가능성이 의심스러웠는데. 역시. 어머니들은 다 똑같으시군." 이런 답신이 온다.
역시 어머니들이다.
아래는, 트래픽상에서 다운타임 시간을 볼 수 있는 로그이다. 5분 간격 그래프이고 접속이 되고 있더라도 트래픽이 0에 근접하는 경우가 있기에 추정할 수 있는 다운타임 시간은 대략 08:30 ~ 18:40 구간으로 10시간 정도로 볼 수 있다.
Submitted by JongYeob @ 06-30 [07:04 am]
extensions.ini 에서 다음 순서로 모듈이 나와야 apache 대몬이 정상으로 구동된다.
- recode.so 는 imap.so 와 mysql.so 앞에
- eaccelerator.so 는 session.so 뒤에
Submitted by JongYeob @ 02-25 [07:09 pm]
6년 가량 서버를 운영하고 있다. 지금까지 아주 사소한 실수를 뺀다면, 사고나 장비이상으로 시스템이 정지된 적이 없다. 120GB 디스크를 백업용으로 사용하고 있지만, 관리적인 실수와 고의적인 삭제로 인해 일어날 수 있는 사고에 대해서는 대응이 안 되고 있다.
물리적 보완을 위해서, 시스템이 운영되는 디스크를 미러링 - RAID 1 로 구성할 계획이다.
절차 #
- 자료 백업
- 기존 디스크(old disk)에 미러링 관련된 세팅
- 미러용 디스크 (new disk 1,2) 장착
- 미러링 : old disk - new disk1
- old disk를 데이터용으로 전환하고 new disk 1,2 를 미러링되게 함
- ST3250824AS 는 SATA II 임. 미러링은 동일한 스펙/속도의 제품을 사용하는 게 유리
- old disk는 혹시 모르니 안정화되기 전까지 데이터용으로는 전환하지 않음
Apache 2.0.x 에서 2.2.0 으로 업그레이드 #
Submitted by JongYeob @ 12-05 [02:44 pm]
대대적인(?) 업그레이드를 단행했다.
업그레이드 절차는 다음과 같다.
- 2.0.x를 삭제 : pkg_delete -f 패키지명
- 2.2.0 설치
- 의존성 변경 : pkgdb -F
- 관련있는 패키지 재 설치 : portupgrade -f 패키지명
- 설정 변경
2.2.0 으로 가면서 설정파일이 분리되었다.
httpd.conf 는 기본 사항만 관리하고 Include 형식으로 별도로 분리하여 설정할 수 있게 되었다.
분리된 설정 파일은 extra/ 디렉토리에 있다.
Submitted by JongYeob @ 12-05 [02:40 pm]
이전 서버에서 MRTG로 시스템 모니터링을 했다. 서버 교체와 FreeBSD 6.0으로 업그레이드하고 나서 시스템 모니터링 툴을 Cacti로 변경하였다. 일단은 기본적은 것만 해 놓았다.
추가할 모니터링 항목은 다음과 같다.
- M/B 온도/팬 상태
- httpd, mysqld 등 상태
Submitted by JongYeob @ 11-11 [06:17 am]
FreeBSD 6.0이 2005-11-04일자로 정식 릴리즈되었다. source tree로 당연히 커널 업그레이드 완료.
아래와 같은 메시지를 뿌리며 기능이 멈추던 nve0 도 제대로 돌아간다.
rl1 를 nve0 로 바꾸고 다시 가동~
Submitted by JongYeob @ 11-01 [03:14 pm]
Submitted by JongYeob @ 10-15 [12:23 pm]
Submitted by JongYeob @ 10-15 [07:49 am]
2005년 9월부터 10월까지 단계적으로 서버 이전을 하였다.
- 기존 시스템 : AMD Thunderbird 750
- 신규 시스템 : AMD Athlon64 Venice 3000+
절차 #
- 새 시스템 설치
- 파티셔닝
- FreeBSD 6.x 설치
- 패키지 설치
- 각종 대몬 설정
- 기존 시스템 백업
- 설정 파일
- 사용자 관련 (/home) 파일
- 각종 데이터/로그
- mysql dump
- 데이터 이전
- 설정 파일
- 사용자 데이터
- mysql restore
- 안정화
- 이전 완료와 시스템 대체
Package List #
현재 돌아가는 서비스를 유지하기 위해서 핵심적으로 설치해야할 패키지 목록이다.
주요 패키지만 설치하면 의존성에 따라 추가로 설치되는 패키지가 있어서 세부적인 패키지는 생략한다.
lang #
* php5
* php5-*
* perl5.8
* p5-*
* ruby18
* tcl84
database #
* mysql-client
* mysql-server
ftp #
* ncftp3
* proftpd
* wget
mail #
* courier-imap
* isoqlog
* mailgraph
* mutt
* postfix
* procmail
* tmda
security #
* courier-authlib
* courier-authlib-base
* cyrus-sasl-2
* cyrus-sasl-saslauthd-2
* openssh
* openssl
sysutils #
* pkg_remove
* pkg_tree
* portaudit
* portsnap
* portupgrade
Partitioning #
| PARTITION | Previous System Usage | New System Size | REMARKS |
| / | 100MB | 512MB | |
| /usr | 5,120MB | 10,240MB | 5GB 할당해도 용량 부족했었음 |
| /var | 1,024MB | 4,096MB | log, mysql db 용량부족으로 다른 파티션에 할당했음 |
| /tmp | | 1,024MB | |
| /home | all left | all left | |
| SWAP | 512MB | 1,024MB | |
버전 #
| - | Previous System Usage | New System Size | REMARKS |
| / | 3.22 | 4.1 | 추후 5.x로 이전 고려 |
이전 절차 #
- mysql dump
- 전체 database 덤프 (실제 일별 backup된 sql 파일 사용)
mysqldump -u root -p --all-databases > mysql-yyyymmdd
- 또는 각 database별로
mysqldump -u root -p database_name > databasename.sql
- mysql 4.0 설치
- dump_file을 mysql 4.0 으로 넣기
- 전제 dump 파일을 사용할 경우 mysql database을 덤프시에 key 값이나 스키마 차이로 인해 오류가 발생함.
- 따라서, 1.2. 에서 실사용자의 database만 선별하여 넣음
- mysql 4.1 설치
Submitted by JongYeob @ 09-12 [03:37 am]
서버를 새로 구입했다. OS는 FreeBSD 4.x 에서 FreeBSD 6.0 으로 바꿀 예정이다. FreeBSD 6.0 이 현재 Beta 상태라서 시스템이 안정화되면 제반 데이터를 옮기고 공개할 작정이다.
시스템 사양은 다음과 같다.
기존에 서버로 사용하는 AMD Thunderbird 750 MHz 시스템에서 다음과 같은 시스템으로 업그레이드를 단행할 예정이다.
2005-09-09 에 구입한 시스템 사양은 다음과 같다.
| 부품 | 사양 |
| CPU | AMD Athlon64 Venice 3000+ (1.8GHz/512KB/1GHz/939) |
| MAIN BOARD | ASUS A8N-E (nForce4 Ultra) (939/PCI-Express) |
| MEMORY | SAMSUNG 512MB DDR SDRAM (PC3200/DDR400) x 2 |
| HDD | SEAGATE SATA 7200.8 250GB 8MB/NCQ |
| VGA | 유니텍 라데온 X300SE SENSATION(센세이션) (128MB/64Bit) PCI-Express |
| POWER | 스카이디지탈 PowerStation2 450NF4 |
| CASE | ASUS TA-581 케이스(블랙/파워별매) |
아래는 이전에 고려했던 시스템 사양이다.
It's a wishlist
(unit:KRW, 2005-03-26)
| Category | Spec. | Desc. | Price | Ref. |
| CPU | AMD Athlon™ 64 Winchester 3000+ | | 160,000 | 3000+ 3200+ ? |
| MAIN BOARD | MSI K8N Neo4 Platinum | | 160,000 | link |
| MAIN BOARD | DFI LANPARTY UT nF4 ULTRA-D | | 140,000 | link |
| MEMORY | SAMSUNG 512M PC3200 x 2 | | 104,000 | link |
| VGA | TBA | | 150,000 | |
| HDD | N/A | | | |
| ODD | N/A | | | |
| FDD | N/A | | | |
| CASE | 마이크로닉스 A/S 9000 III 블랙 | | 115,000 | link |
| POWER | SEVENTEEM 400W ST-402HLP | | 108,000 | link |
| LCD | LG전자 L1740P | | 413,000 | link |
| KEY BOARD | ARON KB-A106S+ black nonclick | | 30,000 | link |
MoniWiki 1.1.0 으로 업그레이드 #
Submitted by JongYeob @ 09-01 [10:59 am]
2005-08-08 자로 릴리즈된 MoniWiki 1.1.0으로 업그레이드를 했다.
업그레이드를 한 이유로는 2005-09-01 부터 스팸 공격이 시작되어 이번 버전부터 적용된 안티스팸 기능이 필요해졌기 때문이다.
1.1.0을 설치하고 나니 다음과 같은 문제가 발견되어 CVS 에서 wiki.php 와 wikilib.php를 업데이트했다.
안티스팸 기능을 사용하기 위해서는 다음과 같은 조치가 필요하다.
- config.php 에서 $spam_filter='antispam';
- BadContent 에 리스트 등록
여전히 fullsearch action 에서 해당하는 스트링을 다 검색하지 못하는 버그는 여전하다. php 설정과 관련되었건데 건드리기가 싫다.
Apache MPM을 worker에서 다시 prefork로 변경 #
Submitted by JongYeob @ 08-08 [09:07 am]
MPM을 worker로 했더니 프로세스가 별로 안 뜨고 성능이 좀 나아진 듯하여 만족하고 있었다. 그런데 MoniWiki 의 특정 페이지 (plugin이나 특수한 파싱이 있는 경우)에 페이지 이동이 안 되는 버그가 있었다.
게다가 이런 경우 httpd-error.log 에 아래와 같은 에러 메시지가 생성되었다.
[Mon Aug 08 16:27:51 2005] [notice] child pid 53845 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:10 2005] [notice] child pid 53875 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:14 2005] [notice] child pid 53951 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:30 2005] [notice] child pid 53955 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:30 2005] [notice] child pid 53954 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:36 2005] [notice] child pid 53959 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:36 2005] [notice] child pid 53956 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:38 2005] [notice] child pid 53960 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:39 2005] [notice] child pid 53961 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:40 2005] [notice] child pid 53962 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:51 2005] [notice] child pid 53963 exit signal Illegal instruction (4)
[Mon Aug 08 16:29:18 2005] [notice] child pid 53965 exit signal Illegal instruction (4)
[Mon Aug 08 16:29:18 2005] [notice] child pid 53964 exit signal Illegal instruction (4)
FreeBSD 6.0 으로 시스템을 업그레이드하면 worker 를 다시 도전해 보기로 하고 일단 정신 건강을 위하여 다시 perfork 로 돌아간다.
Apache MPM을 prefork 에서 worker로 변경 #
Submitted by JongYeob @ 07-15 [10:45 am]
성능 개선이 있다 하여 Apache MPM 설정을 prefork 에서 worker 로 바꿨다.
변경한 사항은 다음과 같다.
바꾸고 나니 httpd가 10개에서 3개로 줄어있다. 성능은 어떨지 모르겠지만 한동안 두고 볼 일이다.
Submitted by JongYeob @ 04-30 [05:20 pm]
네트워크를 다음과 같이 재구성하였다.
Network Architecture
+-------------+
| HANARO |
+-------------+
| 218.50,164.1
|
+-------------+
| ADSL MODEM |
+-------------+
|
| 218.50.164.98/24, rl0
+------+------+
| FreeBSD |
+------+------+
| 192.168.0.1/24, rl1
|
|------LAN ----------+-------|
|
| 192.168.0.2/24, vlan0
+-----+-----+
| WRT54G |
+-----+-----+
| 192.168.1.1/24, br0
|
|------Wired/Wireless LAN ------|
192.168.1.101 ~ 192.168.1.150
/etc/rc.conf 추가
######
# Static Route
######
static_routes="wlan"
# WRT54G Wireless Gateway Route Setting
route_wlan="-net 192.168.1.0/24 192.168.0.2"
/etc/hosts 변경
127.0.0.1 localhost.jongyeob.com localhost
218.50.164.1 gw-hanaro
192.168.0.1 gw-default frodo
192.168.0.2 gw-wlan
218.50.164.98 frodo.jongyeob.com
192.168.1.10 xbox
WRT54G 설정
* Firmware Version: Alchemy-V1.0 v3.37.6.8sv upgrade
* Routing Table Entry List 추가
Destination LAN IP Subnet Mask Gateway Interface
192.168.0.0 255.255.255.0 192.168.0.1 WAN (Internet)
Submitted by JongYeob @ 03-21 [01:36 pm]
벼르고 벼르다가
LynkSysWRT54G 유무선공유기를 구입해서 집에 설치를 했다. (구입일은 3/9쯤 장착일은 3/19)
100M 4포트 스위칭 허브를 제거하고 AP를 설치했다.
유무선공유기가 GW 또는 Router 역할을 하게 됨에 따라서 네트워크 구성이 다음과 같이 바뀌었다.
Server rl0 (192.168.0.1) ---- (192.168.0.100) AP (192.168.1.1) --- 유무선랜
보안은 WEB으로 설정.
현재 서버(192.168.0.1)에서 192.168.1.0 망으로 연결이 안 된다. 좀더 세팅을 해 봐야겠다.
Submitted by JongYeob @ 02-24 [02:08 pm]
혹시나 하는 마음에 MoniWiki 미러링을 한다. 미러링은 종협이 알려준 rsync를 이용했다.
rsync -ruvtz -e ssh hanbyeol@jongyeob.com:/home/hanbyeol/public_html/moniwiki /home/hanbyeol/public_html/
단 한줄로 완벽 미러링.
Thx insel ~
방명록과 GuestBook을 Blog 방식으로 바꾸다 #
Submitted by JongYeob @ 02-12 [11:27 am]
WikiWiki 방식으로 방명록›을 만들었더니 쓰는 사람들 대개가 어렵다고 난리다. 내가 대중적이지 못한 인간이기에 그런 사람을 닮은 홈페이지도 그러하다.
방명록을 쓰는 사람이 많지 않겠지만 그래도 조금이나마 쉽게 사용할 수 있도록 Blog 방식으로 바꾸었다.
Submitted by JongYeob @ 02-10 [01:33 pm]
MoniWiki 1.0.7 에서 한글 메뉴와 설명이 깨지는 문제가 있다. 영어로 메뉴와 설명이 나오다가 검색이나 페이지 수정 따위의 어떤 작업을 하면 메뉴나 설명이 euc-kr로 바뀐다. 브라우저에서 UTF-8으로 설정되어 있으니 UTF-8 본분은 정상으로 보이지만 메뉴는 깨져 나오게 된다.
locale 디렉토리에서 euc-kr로된 po 파일 등을 utf-8으로 바꿔 보기도 했고 심지어 한글이 들어간 locale관련 파일을 삭제하기까지 했다. 곧 moniwiki 디렉토리에는 euc-kr로 된, 메뉴나 설명 따위와 관련된 파일은 하나도 없다. 그런데도 euc-kr로 된 메뉴나 설명을 어디에서 갖고와서 깨져 보이게 하는지 영문을 알 수가 없다. 혹시 moniwiki 사이트에서 가져올까?
config.php 설정은 다음과 같다
$lang='en';
$charset='UTF-8';
TurckMMCache 설치로 PHP 성능 향상 #
Submitted by JongYeob @ 01-16 [04:13 pm]
ZeroBoard, SquirrelMail 이 이상없이 돌아가는 게 확인되었고 성능도 조금 나아졌다. 오래간만에 서버 삽질을 하고 나서 좋은 결과가 나왔군.
Submitted by JongYeob @ 07-16 [10:53 am]
4월 10일 일어났던 일이 또 생겼다. 이노무 시키들 뭔 짓을 하는건지 ... 임의로 IP를 변경하고 내게 통보도 하지 않고, 게다가 엉뚱한 IP가 등록된 IP인양 그리고 제대로 세팅했다고 빡빡 우기고 ... 26시간 만에 복구. 배상받아야겠다.
Submitted by JongYeob @ 04-10 [02:52 pm]
사무실에서 서버에 접속을 하는데 인내심을 시험하듯이 속도가 느려졌다. 급기야 오후 6시 전후로 종엽닷컴에 접속이 불가능한게 아닌가.
집에 와서 서버를 점검해 보니 서버는 말짱 그자체다. 이상한 점은 MRTG에 저녁 정각 6시부터 트래픽이 전혀 없다. 하나로 통신에 장애 신고를 했다. 한번, 두번.두번째 폭발해버렸다. 혹시 구로지역에 작업 사실이 있는지 변경사항이 있는지 물었는데 그건 운영팀 소관이라 모른다고 발뺌만 해대지 않는가. 분명 뭔가 조치가 있었으니 그런 현상이 있을터.
노트북에서 XP로 부팅하여 연결을 시도했으나 마찬가지, 혹시나 하고 ADSL 프로그램으로 돌리니 유동IP로 접속. 이런.
짜식들 분명 어떤 작업을 했군.
반쯤 조져놨던 담당자에게 확인 연락이 왔다. 조치를 했다고 한다. 난 배상을 받아야겠고 분명 이런 일이 재발할 가능성이 있으니 운영팀의 공식적인 해명을 듣고 싶다고 했다. 그리고 다시 연락. 구로지역에 1.25 대란과 비슷한 지역장애가 발생해서 IP를 변경했다고 한다. 누구마음대로. 나만을 위해 임시로 IP를 열어줬다고 한다. 정상적으로 사용하려면 IP를 변경해야 한다고 한다. 누구마음대로. IP변경되면 NS도 바꿔야 하고 결국 2-3일 서비스를 못하게 되고 내게는 분명 장애인 셈이라고 못 박았다. 기사가 방문한다나 ... 올테면 와라 집에 없으니. 마음대로 IP 바꾸면 가만 있지 않겠다고 했다.
또 IP를 바꿔야 하나.... 망 관리 좀 잘 하지.
Submitted by JongYeob @ 04-06 [01:50 pm]
- 4.8 출시가 2주가량 연기되다가 4월 6일 출시되었다. 되자마자 CVS업데이트하고 make kernel ; make world ; mergemaster ; reboot
- 그러나 4.8로 업그레이드하고 나서 portupgrade -a 하면 make가 무한 생성되고 모든 메모리를 다 써버리고 swap까지 가득 채운 다음에 mysqld, httpd 등을 죽이는 상황까지 발생했다. 아마도 의존성 체크 과정에서 무한루프가 돌아서 생긴 현상 같았다. portsdb -uU 로 ports index를 갱신하고 나서 이 문제를 해결했다.
Submitted by JongYeob @ 02-25 [01:28 am]
서버를 회사, 기숙사 등에 전전하면 운영하다가 그냥 관리 편하게 집으로 옮겨 왔다.
ADSL Pro + 고정IP 방식으로 서버를 운영한다.
Lite 속도에 만족하지만 고정IP를 사용하기 위해서는 Pro로 업그레이드 해야 했다. 결국 5-6만원 추가 비용이 발생했다. 게다가 전기료까지 감안하면 ... 아 골아프다.
서버를 집에 갖고 오니 내 마음대로 관리할 수 있어서 좋다. 이참에 make kernel을 1년만에 시도해 봤다.
Submitted by JongYeob @ 02-17 [09:14 pm]
어제부터 노트북에서 리눅스로 부팅하니 커널 패닉 증상이 있더니 XP로 부팅 속도가 무지 느려졌다. 결국 하드를 쓰지 못할 상황이 되어버렸다.
40GB 하드가 18만원선에다 램까지 업그레이드하면 근 25-30만원이 깨지게 생겼구나.
Submitted by JongYeob @ 02-03 [02:36 pm]
Submitted by JongYeob @ 01-28 [02:07 am]
가이드겸해서 작성했다. 흠 이걸 보고 사용할 사람이 얼마나 될까?
Submitted by JongYeob @ 01-27 [03:35 am]
하드디스크로 일단 백업하고 다른 서버로 백업파일을 전송하게 했으니 여차해서 내 시스템에 문제가 생겨도 조금은 안심할 수 있게 되었다.
하루 가량 위키가 멈추다. 퍼미션 변경으로 인한 실수 #
Submitted by JongYeob @ 10-13 [06:59 am]
보안을 강화할 요량으로 다음과 같은 조치를 취했다.
- 개인 홈의 그룹소유권을 개인으로 변경, $HOME의 접권권한을 711로 변경
- /var 아래 일반 사용자 접근권한 제거
그런데 /var 을 잘 못 건드려서 MoinMoin 위키가 실행이 안 되었다. 또한 mysql을 재가동이 안 되었다. 아래는 jongyeob.com-error_log 내용이다.
[Sun Oct 13 04:09:48 2002] [error] [client 63.214.218.119] Client sent malformed Host header
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] Premature end of script headers: moin.cgi
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] Traceback (most recent call last):
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] File "/usr/local/share/moin/home/moin.cgi", line 32, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] cgimain.run()
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] File "/usr/local/lib/python2.2/site-packages/MoinMoin/cgimain.py", line 90, in run
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] import cgi, os, sys, string
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] File "/usr/local/lib/python2.2/cgi.py", line 39, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] import urllib
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] File "/usr/local/lib/python2.2/urllib.py", line 26, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] import socket
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] File "/usr/local/lib/python2.2/socket.py", line 41, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] from _socket import *
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] ImportError: Shared object "libssl.so.3" not found
원인은 /var 과 /var/tmp 권한 때문이었다. 한참을 헤매다가 접근 권한을 원상 복구했다.
- chmod 755 /var
- chmod 1777 /var/tmp
오늘의 교훈 1. 쓸데없이 삽질하지 말자! 2. 삽질하더라도 이전 정보는 남겨 두자.
''System Log'' - log rotationg code #
Submitted by JongYeob @ 10-02 [07:12 pm]
#!/bin/sh
# Rotate www logs. DON'T RUN THIS IF YOU AREN'T ROOT. IT WON'T WORK.
cd /home/web/www/server/logs/
today=`date "+%m%d%y"`
if ( test -f access_log ) then
if ( test -f error_log ) then
mv access_log access_log.$today ;
mv error_log error_log.$today ;
kill -1 `cat httpd.pid`
else
mv access_log access_log.$today ;
kill -1 `cat httpd.pid`
fi
else
if ( test -f error_log ) then
mv error_log error_log.$today ;
kill -1 `cat httpd.pid`
fi
fi
if ( test -f access_log.$today ) then
gzip access_log.$today
chown web access_log.$today.gz
fi
if ( test -f error_log.$today ) then
gzip error_log.$today
chown web error_log.$today.gz
fi
''Apache'' - 특정 HTTPd 프로세스 병목 현상 해결 #
Submitted by JongYeob @ 10-02 [02:49 pm]
Apache 문제는 대충 감이 잡힌다. MaxRequestsPerChild 세팅을 기본값 0으로 하면 process가 생성된 뒤에 소멸되지 않고 계속 남아 있는다. 적절한 값을 주면 그 숫자만큼 request를 처리하고 process가 소멸된다.
결국 MaxRequestsPerChild 문제였다. 해결 봤음. -- JongYeob 2002-10-03 06:33:10
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 10000
''Apache'' - 특정 HTTPd 프로세스 병목 현상 #
Submitted by JongYeob @ 10-02 [04:56 am]
Apache 한 프로세스에만 심한 로드가 걸린다. 왜 이렇지?
last pid: 60148; load averages: 1.05, 1.02, 0.95 up 20+23:38:29 04:51:33
64 processes: 2 running, 62 sleeping
CPU states: 99.6% user, 0.0% nice, 0.4% system, 0.0% interrupt, 0.0% idle
Mem: 48M Active, 338M Inact, 73M Wired, 22M Cache, 61M Buf, 20M Free
Swap: 512M Total, 504K Used, 511M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
55771 www 59 0 10556K 7360K RUN 90:36 98.44% 98.44% httpd
59900 www 2 0 10140K 6900K accept 0:00 0.00% 0.00% httpd
59901 www 2 0 9216K 5764K accept 0:00 0.00% 0.00% httpd
59896 www 2 0 9248K 5780K accept 0:00 0.00% 0.00% httpd
59906 www 2 0 9276K 5800K accept 0:00 0.00% 0.00% httpd
59891 www 2 0 9256K 5796K accept 0:00 0.00% 0.00% httpd
59892 www 2 0 9256K 5792K accept 0:00 0.00% 0.00% httpd
59903 www 2 0 9256K 5804K accept 0:00 0.00% 0.00% httpd
59893 www 2 0 9208K 5740K accept 0:00 0.00% 0.00% httpd
59902 www 2 0 9240K 5772K accept 0:00 0.00% 0.00% httpd
59897 www 2 0 9192K 5728K accept 0:00 0.00% 0.00% httpd
로그파일 커져서? 겨우 50MB도 안 된다. 특정 스크립트 오류? 일단 생각난김에 로그파일 로테이션이나 시켜 봐야겠다.
- 방법 1 : newsyslog 사용 - newsyslog(8) 참조
% cat /etc/newsyslog.conf
# Rotate and compress web logs at 10 megs, compress, and HUP apache.
# Keep 15 old logs around.
/var/log/httpd.log 644 15 10000 * Z /var/run/httpd.pid 1
- 방법 2 : rotatelogs 사용 - rotatelogs(8) 참조
CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
- 방법 3 : metalogs 사용 - 젠투리눅스로 인해 알게된 로그 시스템... - GriUn
메타로그는 자동으로 로그 로테이션을 지원함. 기타 여러가지 장점이 있으나, 나중에 다시 추가하기로...
이외에 syslog-ng라는 로그 시스템이 있는데, 이는 로그를 MySQL DB에 저장해서 분석할 수 있는 기능등이 있음. 가장 가볍고 머리 안 아픈 건 역시 메타로그라고 생각합니다.
이제 부터 종엽닷컴에서 관리하는 시스템에 대한 관리일지를 쓴다. #
Submitted by JongYeob @ 10-02 [04:56 am]
2년 가까이 FreeBSD를 관리하고 있다. 시스템 설정하고 새로운 툴을 설치할 때마다 인터넷을 뒤져서 각종 문서를 찾고 관련 사이트 게시판을 훑어 보고 뉴즈넷 Q&A를 찾아 본다. 결국 문제를 해결하지만 그 노하우는 머리에 남았다가 이내 사라져 버린다. 다시 세팅하려면 지난번 고생을 반복한다. 이제는 더 이상 그러지 말자. 내가 경험과 각종 정보를 일지 형식으로 정리해 보자.
|
|