이번 포스팅은 Red Hat 의 지원 서비스에 대해서 입니다.

Log Reaper 라고…
쉽게 얘기하면 Log 분석 툴??? 정도 될까요? ( 해결 방법까지 제시를 해 줍니다. )

해당 툴은 아래의 로그 포멧을 지원 합니다.

  • Syslog (/var/log/messages)
  • Log4j logs (JBoss, RHEVM, ect..)
  • LSOF output
  • Apache access
  • VDSM logs

Link : https://access.redhat.com/labs/logreaper/

Link : https://access.redhat.com/labsinfo/logreaper

해당 툴은 서브스크립션 고객에 한하여 제공되는 서비스 입니다.

문득?

이메일로 파일을 전송할때? 파일 사이즈 제한등으로 전달이 안 되는경우가 자주 발생되면서?

뭔가 대안을 고민하게 됨…

 방식은 요렇게?

1. ftp(upload) – 관련자가 파일을 올릴 수 있도록

2. web(download) – 관련자가 파일을 받을 수 있도록

마지막으로  google URL shortener 을 연동

Source :

#!/bin/bash

export indexf="/dir path/index.html"

echo "<table><tr><td colspan=3> <center><h2>Anonymous DownLoad Site </h2></center></h2></center> </td></tr>" > $indexf
echo "<tr><td> FileName </td><td> FileSize(Byte) </td><td> DownLoad Link </td></tr>" >> $indexf

for i in $(find ./down) 
do 
 if [ -f $i ] 
 then 
 export filen=$(echo $i|sed 's/\.\/down\///')
 export filen2="http://example.com/down/$filen"
 export filess=`ls -al $i|awk '{print $5}'`
 export sitea=`/usr/bin/python -c 'import googl; print googl.Googl("AIzaSyBP1sh9r-xxxxxx").shorten("'$filen2'")[u"id"]'`
 echo "<tr>" >> $indexf
 echo " <td> $filen </td><td> $filess </td><td> <a href="$sitea" target="_BLANK">$sitea</a> </td></tr> " >> $indexf
 echo "</tr>" >> $indexf
 fi 
done


echo "</table>" >> $indexf

위 스크립트를 일정 주기로 실행 ( cron )

google URL shortener 은 아래의 사이트에서 참고 하시기 바랍니다.
Link : http://www.commandlinefu.com/commands/view/10820/google-url-shortener

google api key 는 구글링해서 받으시기 바랍니다.

 

160406_cap1

위 스크립트 기반으로 작성된 html 을 웹에서 표시.

80 포트를 사용하다 무료 SSL 페이지 인증 기관을 발견하고 443 포트를 셋팅 하였다.

무료 SSL 인증서를 제공해 주는 업체 https://www.startssl.com/ (1년만 무료)

그리고 기존 http://blog.seabow.pe.kr 을 접속 하게되면 https://blog.seabow.pe.kr로

Redirect 설정을 하였다.

우선 Apache 에 mod_rewrite 모듈을 올려주고 apache.conf or httpd.conf 의 http://blog.seabow.pe.kr 설정에 아래의 내용을 추가해 준다.

Redirect permanent / https://blog.seabow.pe.kr/

여기서 중요 포인트는 http://blog.seabow.pe.kr 과 https://blog.seabow.pe.kr 2개의 VirtualHost 설정이 존재 한다는 것이다.

 

 

apache 환경에서 SSL 사이트를 작업 하던중 apache restart 시 아래와 같은 메시지가 출력 될때가 있다.

 [warn] _default_ VirtualHost overlap on port 443, the first has precedence

확인해야 될 부분은

 NameVirtualHost *:443

으로 되어 있는지 확인해 본다…

만약

 _default_:443

형식으로 되어 있어도 위의 메시지가 출력 될 수 있다.

내가 블로그를 운영 하면서… 궁금했던 부분은…
실제로 접속되는 IP 주소와 블로그에 달려있는 Counter 이 일치하는지 여부였다…
물론… 대부분의 IP 는 검색 로봇이라는걸 알고 있다.
그리하여… 특정일 “4/Jul/2012” 날짜의 유니크한 접속 IP 및 갯수를 추출해보기로 하였다.

1.
# grep “4\/Jul\/2012” /var/log/apache2/blog_acc.log|awk ‘{print $2}’ > ./blog_ip.txt;sort -u ./blog_ip.txt > ./blog_uniq_ip.txt;wc -l blog_uniq_ip.txt

 2.
# grep “4\/Jul\/2012” /var/log/apache2/blog_acc.log|awk ‘{print $2}’| sort -u|wc -l
>>awk 의 print 컬럼은 각 웹서버 로그에 맞게 IP가 포함된 컬럽을 입력하면 된다.

본인의 블로그는 Debian 6.0.5 (squeeze) 버전이다.

특별히 leap second 이슈에 대해서는 신경도 안 쓰고 있었는데 오늘에서야 확인했다…ㅎㅎㅎ

air-video 목적으로 실행 시켜놓은 java 프로세스가 아래와 같은 cpu 사용률을 보이고 있었다.

 


2349 root      20   0 1312m  41m 3628 S  112  1.1   6128:37 /usr/bin/java -jar /usr/local/air-video/AirVideoServerLinux.jar /usr/local/air-video/airvideo.properties
58380 root      20   0 19120 1312  948 R    0  0.0   0:00.02 top -c
1 root      20   0  8404  608  564 S    0  0.0   0:06.64 init [2]
2 root      20   0     0    0    0 S    0  0.0   0:00.06 [kthreadd]

 

해결 방법은 스크린샷 화면에도 나와 있지만… 아래와 같이 입력 한다.

#export LANG=C

#date -s “`date`”

 

 

58382 root      20   0 19252 1388 1020 R    1  0.0   0:02.50 top -c
1817 mysql     20   0  732m 114m 3400 S    0  2.9 226:48.38 /usr/sbin/mysqld –basedir=/usr –datadir= –user=mysql –log-error=/–pid-file=/var/run/mysqld/mysqld.pid –socket=/var/run/my
1949 Debian-g  20   0  287m 9764 4252 S    0  0.2  17:39.63 /usr/lib/gdm3/gdm-simple-greeter
2349 root      20   0 1312m  41m 3516 S    0  1.1   6134:13 /usr/bin/java -jar /usr/local/air-video/AirVideoServerLinux.jar /usr/local/air-video/airvideo.properties

 

현재 관리하고 있는 서버가 RHEL 6 또는 Debian 6.0.x 버전인데 특정 process 가 사용률과 관련 없이 100% 이상의

사용률을 보인다면 leap second 상황을 검토해 보길 바란다.

 

[120724]

leap second 이슈가 지나간게 아닌가?

나의 블로그 서버를 재부팅 시켰는데… 이상하게 CPU 사용률이 높았다…

그래서 mysql 로그를 확인해본 결과… wordpress 관련 timestamp 를 계속 찍고 있는게 아닌가???

헐… 혹시나 하는 마음에…

#date -s “`date`”

를 입력하는 순간… CPU 사용률이 잦아들기 시작했다…

재부팅 순간… ntp 와 sync 되기 전에 이런 문제가 발생 되는것일까???

흠… 이상하다…

올해가 윤초(Leap Second) 가 발생되는 2012년 이라고 한다.

ex)

—————————————————————————-

Sat Jun 30 23:59:60 2012 <== 6월30일 23시59분60초 발생

Sun Jul  1 00:00:00 2012

—————————————————————————-

해당  상황이 되면 기존 59 초로 마무리되는 시간에 60초라는 1초의 값을 추가(또는 삭제도 되려나?)

시켜서 태양력과 원자력의 시간 간격을 조정한다고 한다.

@ 윤초(Leap Second)란?:

Link 1 : http://www.bek.me/index.php?document_srl=333668&mid=news

Link 2 : http://www.meinberg.de/english/info/leap-second.htm

 

해당 내용을 보면… 일반적인 경우엔…
————————————–
2005-12-31 23.59.57
2005-12-31 23.59.58
2005-12-31 23.59.59
2006-01-01 00.00.00
2006-01-01 00.00.01
2006-01-01 00.00.02
————————————–

 

이런식으로 시간이 지나 가지만… 해당 윤초가 발생되면
————————————–
2005-12-31 23.59.57 2
2005-12-31 23.59.58
2005-12-31 23.59.59
2005-12-31 23.59.60 <– leap second
2006-01-01 00.00.00
2006-01-01 00.00.01
2006-01-01 00.00.02

————————————–

 

위처럼 59분 60초 라는 결과까지 카운트가 되면서 1초가 추가되는 현상 생기는것 같다.
이 이슈는 time zone 에 따라서 발생되는걸로 보이며 아래의 명령어로 언제 Leap Second 가
발생될지 확인 가능 하다.

 

#zdump -v right/UTC

 

@ 한국 시간 확인

#zdump -v right/Asia/Seoul

 

위 명령으로 확인 하였을때 최신 버전의 tzdata 가 아니라면 Leap Second 관련
Time List 확인이 안 된다.

 

@ RHEL Leap Second Hang Issue

Link : https://access.redhat.com/knowledge/articles/15145 (RHN ID 필요)

 

#kernel Update
RHEL 4    kernel-2.6.9-89.EL         4.8    RHSA-2009:1024-1
RHEL 5    kernel-2.6.18-164.el5    5.4    RHSA-2009:1243-3
RHEL 6    RHEL 6 kernel is not affected by this problem

Please note that PPC and IA64 kernels may not insert the leap second properly.

For systems running on those architectures, the method below for systems not

running NTP should be used.

 

#tzdata Update ( 2012 Leap Second )
RHEL 3    tzdata-2011n-2.el3
RHEL 4    tzdata-2011n-2.el4
RHEL 5    tzdata-2011n-2.el5
RHEL 6    tzdata-2011n-2.el6

For additional information on the update to tzdata, please refer to RHEA-2012:0356-1 tzdata

 

업데이트 후 각 지역에 맞는 zoneinfo 파일을 아래와 같이 overwrite 한다.
한국 zoneinfo 파일은 /usr/share/zoneinfo/right/Asia/Seoul 이다.

*) tzdata 를 update 하게되면 Leap Second 가 List UP 되므로 kernel update 가 안 되어 있는 서버라면

해당 기간엔 tzdata update 를 자제하길 바란다.

 

#cp /usr/share/zoneinfo/right/Asia/Seoul /etc/localtime

 

@ Debian Leap Second Hang Issue

Link : http://lists.debian.org/debian-user/2005/12/msg03343.html

 

[2012/07/01]

찾아본 결과 java 쪽도 별도의 tzdata 를 가지고 update 를 하는걸로 보인다.

### Timezone Updater Tool for java
Link : http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html

 

RHEL 제품의 RPM 을 보면

tzdata-2012c-1.el5
tzdata-java-2012c-1.el5

이런식으로 java 용 tzdata 가 존재한다.

 

그 외… 이번 leap second 이슈는 OS 부분에서만 발생되는게 아닌것으로 보인다.

[java]
Link : http://forums.pentaho.com/showthread.php?98217-Java-leap-second-bug-how-to-fix-your-broken-servers
Link : http://remibergsma.wordpress.com/2012/07/01/high-cpu-load-on-cloudstack-management-servers-after-leap-second-3062012235959-utc/
Link : http://www.mail-archive.com/user@cassandra.apache.org/msg23462.html

[mysql]
Link : http://blog.mozilla.org/it/2012/06/30/mysql-and-the-leap-second-high-cpu-and-the-fix/
Link : http://planet.mysql.com/entry/?id=33709
Link : http://planet.mysql.com/

[amazone]
Link : https://forums.aws.amazon.com/thread.jspa?messageID=360449&tstart=0

 

그리고 아래의 링크에 leap second 조취 방법은 아래와 같다.

Link : http://pedroalves-bi.blogspot.kr/2012/07/java-leap-second-bug-how-to-fix-your.html

[RHEL]

/etc/init.d/ntpd stop;export LANG=C;date;date `date +”%m%d%H%M%C%y.%S”`;date

ntp daemon 을 stop 시키고 date 를 실행하여 시간 데이터를 초기화 시킨다.

 

[2012/07/02]

레드헷 커스터머포털 메인에 “Learn more about how Red Hat Enterprise Linux supports leap seconds. ( RHN ID 필요 ) ”

이란 내용이 걸리고 아래와 같은 이슈 사항들이 공유 되었습니다.

 

High CPU Usage after inserting the leap second.
– After the insertion of the leap second several processes, notably java, were reporting a High CPU usage.
Link : https://access.redhat.com/knowledge/solutions/154793 ( RHN ID 필요 )

해당 이슈를 보면 java 프로세스가 100% 이상의 사용률을 보입니다.

그리고 call trace 에 ktime_get 관련 내용도 발생 될 수 있습니다.

해결 방법은

#export LANG=C 
#date -s "`date`" >> 해당 내용은 수동으로 사간값을 초기화 하는 것 이라고 합니다. 위의 7월 1일 회피 방법과 비슷 하다고 보면 될듯 하다. 

Systems hang due to leap-second livelock.
– Systems repeatedly crash due to NMI Watchdog detecting a hang. There are two similar backtraces that appear to be related to this issue.
Link : https://access.redhat.com/knowledge/solutions/154713 ( RHN ID 필요 )

위 이슈는 RHEL6 에 해당되는 이슈 입니다.

Apache 재단으로 넘어간 OpenOffice 가 3.4 버전을 발표 했네요…

혹시??? OpenOffice 와 LibreOffice 가 앞으로 어떻게 될지 아시는분 계시나요?

따로… 진행이 되는건지… 다시 통합이 되는건지 궁금하네요…

관련 일부 내용 첨부 합니다.

자세한 내용은 Original Source 를 참고해 주세요

 

www.OpenOffice.org —8 May 2012— The Apache OpenOffice Project today announced the availability of Apache OpenOffice™ 3.4, the first release of OpenOffice under the governance of the Apache Software Foundation.

 

Apache OpenOffice is the leading open source office productivity suite, with more than 100 million users worldwide in home, corporate, government, research, and academic environments, across 15 languages. Apache OpenOffice 3.4 is available for download free of charge. OpenOffice 3.4 features:

  • word processing, spreadsheets, presentation graphics, databases, drawing, and mathematical editing applications support for Windows, Linux (32-bit and 64-bit) and Macintosh operating environments
  • native language support for English, Arabic, Czech, German, Spanish, French, Galician, Hungarian, Italian, Japanese, Dutch, Russian, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese
  • improved ODF support, including new ODF 1.2 encryption options and new spreadsheet functions
  • enhanced pivot table support in Calc
  • enhanced graphics, including line caps, shear transformations and native support for Scalable Vector Graphics (SVG)
  • improvements in performance and quality

The complete list of new features, functions, and improvements is available in the Release Notes.

Apache OpenOffice users also benefit from a broad ecosystem of 3rd party products, including over 2300 templates and over 800 extensions.

 

Original Source : http://www.openoffice.org/news/aoo34.html

site link : http://httpd.apache.org/docs/2.0/ko/mod/mod_file_cache.html

설명: 메모리에 정적 파일들을 캐쉬
상태: Experimental
모듈명: file_cache_module
소스파일: mod_file_cache.c

그림 파일들이 많은 사이트에 적용하면 유용할듯?

### config

Include /etc/apache2/mmap.conf
LoadModule file_cache_module /usr/lib/apache2/modules/mod_file_cache.so

>> 모듈을 로드하고 apache conf 에 아래와 같이

———————————————–

MMapFile /usr/local/apache/htdocs/index.html
or
CacheFile /usr/local/apache/htdocs/index.html
———————————————–

를 하면 되지만 다수의 파일이 있을경우엔 Include 를 적용하여 특정 파일을 지정할수도 있다.
위의 예에선 mmp.conf 라는 파일을 지정하여 해당 파일들을 list 화 했다.

list 를 하는 방법은 위 apache 사이트에도 나와 있다.

find /www/htdocs -type f -print | sed -e ‘s/.*/mmapfile &/’ > /etc/apache2/mmap.conf
or
## 특정 확장자를 지정할경우
find /home/www/tc/attach/1/ -type f -print | grep -E “.jpg|.png|.bmp|.gif” | sed -e ‘s/.*/mmapfile &/’ > /etc/apache2/mmap.conf

해당 서버의 정보를 확인 한다.

curl –head http://xxx.xxx.xxx.xxx

HTTP/1.1 200 OK
Date: Fri, 25 Sep 2009 05:54:58 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Set-Cookie: PHPSESSID=aaukq8eb9kcfvnrucb4nt96ed3; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Last-Modified: Fri, 25 Sep 2009 05:54:58 GMT
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=UTF-8



위와 같이  apache 와 php 버전 정보를 확인 할 수 있다.

이 부분은… 쪼금 위험한??? 상태일수도 있으며, 되도록이면 버전 정보를 숨기기 바란다.

방법 …

# Apache

httpd.conf or apache2.conf 에 해당 옵션을 확인 후 없으면 추가 있으면 수정 한다.

ServerTokens Full
or
ServerTokens OS

부분을

ServerTokens Prod

처럼 수정 한다.

## PHP

php.ini 파일의 해당 옵션을 수정 한다.

expose_php = On

expose_php = Off
으로 수정 한다.

그리고 Apache 를 restart 후 curl 로 상태 확인

curl –head http://xxx.xxx.xxx.xxx

HTTP/1.1 200 OK
Date: Fri, 25 Sep 2009 06:05:33 GMT
Server:
Set-Cookie: TSSESSIONblogseabowpekr=44bbe0c968526d117180729b1e9e1e8a; path=/; domain=blog.seabow.pe.kr
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8



처럼 나오면 완료된 것 이다.