Linux2008/09/27 20:25
이번 포스팅에서는 hddtemp 패키지와 mrtg를 이용한 하드디스크 온도 모니터링 방법을 소개합니다.

- 전제조건 : mrtg가 셋팅되어 정상작동 하고 있을 것

순서가 반대로 되었지만 나중에 mrtg와 snmp에 대한 포스팅도 작성할 예정입니다.

● hddtemp 패키지
하드디스크의 온도를 알려주는 패키지입니다. 메인보드에서 반드시 S.M.A.R.T를 지원해야 한다는 전제조건이 있네요. 설치는 Fedora의 경우 yum 으로 간단하게 설치할 수 있습니다.

# yum list hddtemp
hddtemp.i386                             0.3-0.15.beta15.fc9    installed


저의 경우엔 이미 설치를 하였기 때문에 위처럼 나오지만 설치가 안되신 분들은 아래 명령을 이용하여 설치할 수가 있습니다.

# yum install hddtemp

특별한 의존성 패키지도 없기 때문에 hddtemp만 설치될 것입니다. 명령은 "hddtemp"이고 아래와 같은 옵션으로 간단하게 온도를 체크할 수 있습니다. 저의 경우엔 SATA 하드디스크 3개가 장착되어 있기 때문에 디스크 디바이스가 "/dev/sda, /dev/sdb, /dev/sdc"이므로 디바이스 명을 인수로 주었습니다.
IDE방식은 /dev/hdx 형식으로 되어 있는 경우도 있으니 해당 머신의 디스크 디바이스를 확인해 주세요.

# hddtemp /dev/sda
/dev/sda: Hitachi HDP725032GLAT80: 35°C
# hddtemp /dev/sdb
/dev/sdb: WDC WD10EACS-00D6B0: 31°C
# hddtemp /dev/sdc
/dev/sdc: ST31000340AS: 31°C

제 리눅스 박스의 하드디스크는 디스크 장착베이에 팬이 달려있는 놈이라서 그런지 온도가 그렇게 높지 않네요!!
이제 mrtg에서 계산 하기 편하도록 하드디스크 모델명이나 단위는 빼고 숫자만 출력해보도록 하겠습니다.

# hddtemp -n /dev/sda
35

-n 옵션을 주니 간단하게 해결되네요.

아래는 mrtg의 환경설정 부분입니다. mrtg.cfg 파일을 수정하기 전에는 백업을 꼭 잊지마셔요;;
mrtg.cfg 파일은 yum을 이용하여 설치하였을 경우 디폴트로 /etc/mrtg/mrtg.cfg 에 존재합니다.

Target[hddtemp_sda]: `/usr/sbin/hddtemp -n /dev/sda`
WithPeak[hddtemp_sda]: my
MaxBytes[hddtemp_sda]: 100
Title[hddtemp_sda]: IDE HDD Temperature(/dev/sda)
Options[hddtemp_sda]: absolute,gauge,nopercent,noinfo
YLegend[hddtemp_sda]: Temperature
LegendI[hddtemp_sda]: Temperature:
LegendO[hddtemp_sda]:
Legend1[hddtemp_sda]: HDD Temperature in Degress Celcius
Legend2[hddtemp_sda]:
ShortLegend[hddtemp_sda]: C
PageTop[hddtemp_sda]: <H1>IDE HDD Temperature(/dev/sda)</H1>

위 내용을 추가해주시면 됩니다.
mrtg에 지식이 있으신 분은 자세한 설정을 바꾸셔도 되고 자신 없는 분들은 위 설정을 복사해서 쓰시면 될 겁니다. 하드디스크가 여러개이신 분들은 "hddtemp_sda" 부분을 수정하셔서 디스크의 갯수만큼 복사해주시면 됩니다.
설정이 끝났으면 인덱스 페이지를 새로 만들어 주어야죠 ?

# indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html

인덱스 파일의 경로등은 적절하게....

사용자 삽입 이미지


단.. 문제점이 있습니다. mrtg를 실행시켜 보면 아래와 같은 에러메시지가 출력됩니다. 뭐 특별히 신경쓰지 않아도 된다고 적혀있고 실제로 모니터링도 잘 되지만 문제는 cron에 등록된 mrtg가 실행될때마다 에러가 발생하니 메일박스에 아래 메시지가 계속 전송된다는 거죠.
2008-09-27 20:15:01: WARNING: Problem with External get '/usr/sbin/hddtemp -n /dev/sda': Expected a Number for 'out' but nothing' 2008-09-27 20:15:01: WARNING: Problem with External get '/usr/sbin/hddtemp -n /dev/sdb': Expected a Number for 'out' but nothing' 2008-09-27 20:15:01: WARNING: Problem with External get '/usr/sbin/hddtemp -n /dev/sdc': Expected a Number for 'out' but nothing' 2008-09-27 20:15:02: ERROR: Target[hddtemp_sda][_OUT_] ' $target->[2]{$mode} ' did not eval into defined data 2008-09-27 20:15:02: ERROR: Target[hddtemp_sdb][_OUT_] ' $target->[3]{$mode} ' did not eval into defined data 2008-09-27 20:15:02: ERROR: Target[hddtemp_sdc][_OUT_] ' $target->[4]{$mode} ' did not eval into defined data
전 5분 간격으로 mrtg로 체크하게 해놓았는데.. 이 에러메시지가 5분마다 메일박스에 차곡차곡 쌓여있습니다. ;ㅁ;
이 문제만 어떻게 해결한다면 좋겠는데.. 현재로는 뾰족한 해결방법을 찾지 못했습니다.

"2&>1 > /dev/null" 로 리다이렉트를 해보아도 소용없고.. crontab의 전송메일 주소를 바꾸어 보려 했지만 근본적인 해결책이 아니라 일단 그만두었습니다.

이 문제는 해결되는대로 다시 포스팅을 하던가 업데이트를 하도록 하죠.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Onedayth

TRACKBACK http://linuxwin.com/trackback/38 관련글 쓰기

댓글을 달아 주세요

Linux2008/09/18 14:21
yum은 콘솔에서 사용할 수 있는 리눅스 패키지 자동 업데이트 툴입니다.
이걸 이용하면 간편하게 패키지 업데이트들을 할수가 있죠.
단.. 컴파일 해서 설치한 경우는 제외입니다. ;ㅁ;

저도 이전에는 기본패키지만 설치하고 필요한 것들만 하나씩 컴파일 해서 사용했었는데 유지/보수를 생각한다면 yum을 이용한 패키지 관리를 추천합니다.

먼저 yum의 헬프 메시지를 볼까요.

>> yum 헬프메시지 보기 << 클릭


꽤 많네요... 그런데 옵션은 몇몇을 제외하고는 많이 쓰지는 않습니다. 명령어가 포인트이죠!!
yum에는 이외에도 설정파일 및 저장소에 대한 정보 등등 다양한 기능+셋팅이 있겠지만 여기서는 일반유저들(저를 포함한)을 위한 기본적인 사용법에 대해서만 체크하도록 하겠습니다.
사실 이 블로그에 있는 문서들은 나~중에 제가 참고하기 위해 작성하는 면도 없지않아 있습니다.

● 최신 업데이트 목록의 확인

# yum check-update

iwl4965-firmware.noarch                  228.57.2.21-1.1        updates-newkey
nss_compat_ossl.i386                     0.9.3-1.fc8            updates-newkey
selinux-policy.noarch                    3.0.8-115.fc8          updates-newkey
selinux-policy-targeted.noarch           3.0.8-115.fc8          updates-newkey
tomcat5-jsp-2.0-api.i386                 5.5.27-0jpp.2.fc8      updates-newkey
tomcat5-servlet-2.4-api.i386             5.5.27-0jpp.2.fc8      updates-newkey

"check-update" 커맨드를 이용하면 현재 시스템에 설치되어 있는 패키지들 중에서 업데이트 가능한 목록들을 쭈욱 보여줍니다. 보니 selinux와 tomcat도 업데이트가 되었네요. 자 그럼 위 패키지들을 실제로 설치를 해보겠습니다. 설치할때에는 하나씩 패키지를 지정해서 설치할 수도 있고 한꺼번에 모든 업데이트를 설치할 수도 있습니다.

● 패키지의 업데이트
업데이트된 패키지 중 일부만 지정해서 설치하는 경우
# yum [-y] update [패키지명1] [패키지명2] ....

업데이트 된 패키지들을 모두 설치 하는 경우
# yum [-y] update

이때 중간에 계속 진행할 것인지 물어보는 프롬프트가 뜨는데 프롬프트를 없애려면 "-y" 를 옵션을 하면 모든 프롬프트에 자동으로 "yes"를 입력해 줍니다.

● 패키지의 검색 및 인스톨
현재 시스템에 설치되어 있지 않은 패키지를 인스톨 하기 위해 먼저 아래와 같이 패키지를 검색합니다.
아래 명령은 검색어가 포함되어 있는 모든 패키지를 보여줍니다.

# yum search mc

그런데 search 커맨드는 검색어가 포함되어 있는 패키지는 모두 보여주기 때문에 위 명령어처럼 mc(midnight commander)를 검색하면 tomcat 도 같이 출력됩니다. 그러므로 가능하다면 패키지명을 확인한 뒤 list 명령어를 사용하는 편이 깔끔합니다.

# yum list mc
Available Packages
mc.i386                                  1:4.6.1a-50.20070604cv updates-newkey

Available 패키지로 표시되네요. 인스톨 하기전에 조금 더 자세한 정보를 보고 싶으시면 info 커맨드를 사용합니다.

# yum info mc.i386

text console file manager and visual shell이라고 설명이 나오네요. 윈도우즈에서 사용하는 Total Commander와 같다고 보시면 됩니다. ^^ 꽤 편리하니 강추입니다. 자 그럼 이제 패키지를 인스톨 하기 전에 혹시라도 이미 시스템에 설치되어 있는지 확인해 보겠습니다.

# yum list installed mc
Error: No matching Packages to list

없네요! 그럼 이 편리한 툴을 설치하겠습니다.

# yum [-y] install mc.i386

.... 끝입니다. ;ㅁ; 간단하죠 ? 사실은 설치할때에도 여러가지 옵션을 이용하여 설치 디렉토리를 변경 하거나 하는것도 가능하지만 나중에 유지보수를 생각한다면 디폴트로 설치하는게 가장 편합니다.
그럼 이제부터 확인작업입니다.

# yum list installed mc
Installed Packages
mc.i386                                  1:4.6.1a-50.20070604cv installed
# yum list mc
Installed Packages
mc.i386                                  1:4.6.1a-50.20070604cv installed

● 패키지의 삭제
패키지를 설치했다면 삭제할 일도 있겠죠. 삭제 할때에는 의존성 때문에 주의가 필요합니다. "--force" 옵션을 이용하면 의존성 무시하고 강제로 삭제할 수도 있지만 언제 어디서 에러가 발생할지 모릅니다. 하도 이리저리 엮여 있어서요.. 그러니 의존성 에러가 발생한다면 왠~만하면 그냥 놔두시라고 권해드립니다.

# yum remove [패키지명]


● 파일의 해당 패키지 확인
가끔가다 보면 이 파일이 도대체 어느 패키지에 속해있는 것인지 확인해야 할 때가 있습니다. 그럴때 provides 커맨드를 사용하실 수 있습니다.

# yum provides libdb-4.6.so
db4-4.6.21-2.fc8.i386 : The Berkeley DB database library (version 4) for C
Matched from:
Other       : libdb-4.6.so

db4-4.6.21-1.fc8.i386 : The Berkeley DB database library (version 4) for C
Matched from:
Other       : libdb-4.6.so

db4-4.6.21-2.fc8.i386 : The Berkeley DB database library (version 4) for C
Matched from:
Other       : Provides-match: libdb-4.6.so

위 명령어를 입력하면 "libdb-4.6.so" 파일이 어느 패키지에 해당되는지 알려줍니다. 저 파일은 "db4-4.6.21-2.fc.i386" 패키지에 포함되어 있는 파일이군요! 그럼 info 커맨드로 더 자세한 정보를 알아보는 것도 가능하리라 생각됩니다. 또한 *도 사용할 수 있네요.

# yum provides /usr/sbin/vg*


와 같이 이용하는 것도 가능합니다.

다음에는 yum의 conf파일이나 환경설정에 대해서 조금 더 알아보는 포스트를 작성해보도록 하겠습니다.
요기까지...

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Onedayth

TRACKBACK http://linuxwin.com/trackback/36 관련글 쓰기

댓글을 달아 주세요

Linux2008/09/18 14:15
BIND의 또다른 메시지입니다.
역시 /var/log/messages에 기록된 내용이며 내부 네트워크에 물려있는 IP들에 대해서 동일한 메시지가 계속되어 출력되고 있네요.

이 문제는 구글에서 검색한 결과 바로 답이 튀어나오네요.
아래의 FAQ페이지에서 확인 하실 수 있습니다.

http://www.isc.org/index.pl?/sw/bind/FAQ.php

해결방법은 해당 네트워크 세그먼트에 대해서 파일설정을 empty로 설정하라고 하네요.
친절하게도 empty파일의 작성방법도 나와있긴 한데 /var/named/chroot/var/named 디렉토리를 보시면 named.empty라는 파일이 이미 존재하므로 다음과 같이 설정하도록 하겠습니다.

만약 서버의 내부 네트워크가 172.16.1.0/24 이고 이 세그먼트에 대해서 위의 메시지가 계속해서 발생한다면 named.conf에 아래와 같은 내용을 추가하시면 됩니다. 참 배포판에 따라서 named.conf에 적을 수도 있고 아니면 named.conf내에서 불러들이는 파일(Fedora8에서는 /etc/named.rfc1912.zone 파일)에 적어주시면 됩니다.

zone "1.16.172.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

172.16.0.0/16 이라면 zone "16.172.in-addr.arpa" IN 이 되겠죠 ?
그리고 named를 아래와 같이 재시작해주세요~

/etc/init.d/named restart


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Onedayth

TRACKBACK http://linuxwin.com/trackback/35 관련글 쓰기

댓글을 달아 주세요

Linux2008/09/18 14:04
현재 서버에는 내부 네임서버로서 BIND를 운영하고 있습니다.

그런데 아래와 같은 메시지가 로그파일에서 계속 확인이 되더군요.
로그파일은 /var/log/message 입니다.

starting BIND 9.x.x-xx -u named -t /var/named/chroot
Sep 18 13:33:28 oneday named[6587]: found 2 CPUs, using 2 worker threads
Sep 18 13:33:28 oneday named[6587]: loading configuration from '/etc/named.conf'
Sep 18 13:33:28 oneday named[6587]: the working directory is not writable
Sep 18 13:33:28 oneday named[6587]: listening on IPv4 interface eth1, 192.168.x.xxx#53
Sep 18 13:33:28 oneday named[6587]: default max-cache-size (33554432) applies

"the working directory is not writable"

에러메시지는 아니지만.. 무엇인지는 잘 모르지만... 하여튼 작업디렉토리에 무언가를 쓸 수 없다는 겁니다. 뭐 Critical도 아니고 Fatal도 아니고.. 또한 네임서버도 잘 움직이고 있으니 특별히 문제가 되지는 않을 듯 하지만 찜찜하네요. 네임서버 환경설정 파일을 살펴볼까요.

less /etc/named.conf
options {
        listen-on port 53 { 192.168.x.xxx; };
#       listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
#       allow-query     { localhost; };
        allow-query     { any; };
        recursion yes;
};
.
.

네... 디렉토리 설정하는 곳이 있네요. /var/named 입니다.
그런데 /var/named 디렉토리를 보시면 중요 파일들은 모두 chroot 밑의 /var/named에 심볼릭 링크가 설정되어 있군요. 아하~ 그렇다면 /var/named 가 아니라 /var/named/chroot/var를 보겠습니다.

# ls -l /var/named/chroot/var
drwxrwx--- 2 named named 4096 2008-08-06 19:08 log
drwxr-x--- 5 root  named 4096 2008-08-06 19:08 named
drwxr-x--- 3 root  named 4096 2003-03-14 08:22 run
drwxrwx--- 2 named named 4096 2003-03-14 08:22 tmp

이런.. named 프로세스는 named유저에 의해 실행되는데... named유저의 소속그룹 named그룹에 대한 쓰기 권한이 설정되어 있지 않네요(아우.. 먼가 말이 복잡하다..)

자 아래와 같은 명령어를 실행하여 문제를 해결하시면 됩니다.

# chmod g+w /var/named/chroot/var/named
또는
# chmod 770 /var/named/chroot/var/named


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Onedayth

TRACKBACK http://linuxwin.com/trackback/34 관련글 쓰기

댓글을 달아 주세요

Japan2008/09/01 13:17
韓国には「김제동(キムゼドン)」という芸能人がいます。キムさんは TalkshowなどのMCかゲストとして
活動していますが、その中で美しい言葉で有名になった人です。

今日はそのキムさんの言葉で1つを紹介したいと思います。


皆さん。
四つ葉のクローバーの花言葉をご存知ですか。
「幸運」ですね。
われわれはその四つ葉のクローバーを取るため、数多くの三つ葉のクローバーを踏み荒らしていますね。
で、皆さん三つ葉のクローバーの花言葉が何なのか知っていますか?

「幸福」です。
われわれ近くにある多くの幸福の中で幸運だけを探しているのではないでしょうか。


あなたはどうでしょうか?
どこにあるかわからない幸運のため、近くの幸福を踏み荒らしていないですか?

※日本語でおかしいところがあれば指摘して頂ければと思います。

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Onedayth

TRACKBACK http://linuxwin.com/trackback/33 관련글 쓰기

댓글을 달아 주세요

  1. 일어공부 하기엔 너무 수준높은 일어다!

    2009/08/22 03:43 [ ADDR : EDIT/ DEL : REPLY ]