'2012/08'에 해당되는 글 4건

  1. 2012.08.29 zabbix 2.0.2
  2. 2012.08.07 dnstop 설치
  3. 2012.08.07 DNS Log log 설정
  4. 2012.08.03 리눅스 CPU 확인 스크립트
posted by 은이종 2012. 8. 29. 04:11

- 준비 과정 -


00. 서버 내 캐릭터셑 변경

LANG="ko_KR.euckr"

SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko:ko_KR.UTF-8"


01. mbstring 설치

yum -y install php-mbstring 

(실제 설치해보면 이넘의 라이브러리가 꼬이는 경우가 많다. PHP버전에 민감. 제일 먼저 설치)



02. php, mysql 및 라이브러리 설치

yum -y install ntp php php-bcmath php-gd php-mysql httpd mysql gcc mysql-server mysql-devel net-snmp net-snmp-utils net-snmp-devel net-snmp-libs curl-devel mak php-xml


 

03. 시간 동기화

rdate -s time.bora.net

/etc/init.d/ntpd start



04. fPing 다운로드 및 설치

wget http://dag.wieers.com/rpm/packages/fping/fping-2.4-1.b2.2.el5.rf.i386.rpm

rpm -Uvh fping-2.4-1.b2.2.el5.rf.i386.rpm

chmod 755 /usr/sbin/fping



05. Zabbix의 Server와 Agent의 포트를 /etc/services에 추가해준다.

zabbix_agent 10050/tcp # zabbix

zabbix_trap 10051/tcp # zabbix



06. php.ini 설정 (바꿔줘야할 부분)

date.timezone = Asia/Seoul

post_max_size = 16M

max_execution_time = 300

max_input_time = 300


service httpd start



07. mysql 시작 및 패스워드 설정

/etc/init.d/mysqld start

mysqladmin -u root password '비밀번호'

mysql -u root -p

use mysql;

set storage_engine=INNODB;

create database zabbix CHARACTER SET = 'UTF8';

GRANT ALL ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘패스워드’;

SET PASSWORD FOR 'zabbix'@'localhost' = PASSWORD('패스워드');

flush privileges;

exit




- 실제 설치 -

01. 난 /usr/local/ 밑에다가 설치

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.2/zabbix-2.0.2.tar.gz/download

tar -zxvf zabbix-2.0.2.tar.gz



02. zabbix_server 설치

mkdir /etc/zabbix

groupadd zabbix

useradd -g zabbix zabbix


./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

make install



03. zabbix_server 설정

mkdir /etc/zabbix

cp /usr/local/zabbix-2.0.2/conf/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf

cp /usr/local/zabbix-2.0.2/conf/zabbix_server.conf /etc/zabbix/zabbix_server.conf


 

05.zabbix 실행파일을 /etc/init.d/ 로 copy

cp /usr/local/sbin/zabbix_agentd /etc/init.d/zabbix_agentd

cp /usr/local/sbin/zabbix_server /etc/init.d/zabbix_server


06. 실행부분 설정

cd /etc/init.d/

chkconfig --level 345 zabbix_server on

chkconfig --level 345 zabbix_agentd on

chkconfig --level 345 httpd on

chkconfig --level 345 mysqld on


chkconfig zabbix_server on

chkconfig zabbix_agentd on

chmod +x /etc/init.d/zabbix_server

chmod +x /etc/init.d/zabbix_agentd

service zabbix_server restart

service zabbix_agentd restart




07. mysql 설정

cd /usr/local/zabbix-2.0.2/database/mysql

mysql -u root -p zabbix < schema.sql

mysql -u root -p zabbix < images.sql

mysql -u root -p zabbix < data.sql



08. 웹설정


cp -r /usr/local/zabbix-2.0.2/frontends/php /var/www/html/zabbix

/etc/init.d/httpd restart


mv /var/www/html/zabbix/conf/zabbix.conf.php.example /var/www/html/zabbix/conf/zabbix.conf.php

chmod 755 /var/www/html/zabbix/conf/


vi /var/www/html/zabbix/conf/zabbix.conf.php

알맞게 변경


13. 


Admin // zabbix

'Monitor > Zabbix' 카테고리의 다른 글

zabbix userparameter  (0) 2013.12.26
zabbix system.run 막기  (0) 2013.12.26
Zabbix Agent 재시작 배치파일  (0) 2013.10.29
zabbix agent  (0) 2012.04.09
zabbix 설치  (0) 2012.04.09
posted by 은이종 2012. 8. 7. 17:52

1. 라이브러리 준비


libcap 라이브러리가 미리 설치되어있는지 확인 (기본적으로 centos 개발tool에 포함)


 rpm -qa |grep libcap



2.설치

http://pkgs.repoforge.org/dnstop/


맞는 버전 확인후 wget으로 떙겨서 rpm설치


wget http://pkgs.repoforge.org/dnstop/dnstop-0.0.20080502-1.el5.rf.i386.rpm


rpm -Uvh dnstop-0.0.20080502-1.el5.rf.i386.rpm


3. 사용방법


 실행하기

# dnstop -4 -l 3 eth1


Queries: 2 new, 17 total                                              

 

Sources            Count      %

-------------- --------- ------

208.94.20.62           2   11.8

121.138.224.2          1    5.9

220.73.29.3            1    5.9

210.113.99.5           1    5.9

211.195.237.3          1    5.9

210.113.99.6           1    5.9

210.94.0.77            1    5.9

.

.

-4 : Ipv4 packet 만 보이기

-l : 도메인 레벨 3까지 보이기

eth0 : NIC eth0으로부터 오는 패킷만 캡쳐.

위 화면은 기본으로 IP count 만 보인다아래와 같이 레벨을 변경하면 좀 더 자세히 출력된다.

3)     레벨변경 및 기타옵션

1>   레벨변경 type 1

위와 같이 실행한 뒤 숫자 1에서 ~ 3까지 누르면 Query Name 부분이 바뀌면서 출력된다.

위에서 실행한 -l 3 옵션의 숫자 범위까지 적용된다만약 4를 줬으면 레벨 4까지 캡쳐가 되므로 4까지 적용이 된다.

2>   레벨변경 type 2

위와 같이 실행한 뒤 숫자 Shift + 1에서 ~ 3까지 누르면 Source IP가 보이고 Query Name 부분이 바뀌면서 출력된다.

위에서 실행한 -l 3 옵션의 숫자 범위까지 적용된다만약 4를 줬으면 레벨 4까지 캡쳐가 되므로 4까지 적용이 된다.

3>   필터옵션

dnstop 3가지 필터 옵션을 제공한다.

 unknown-tlds

- kr, jp, com, net 등 등록되지 않은 최상위 코드에 대한 질의를 필터링한다.

명령어 : /usr/sbin/dnstop -4 -l 3 -f unknown-tlds eth0

위 와 같이 필터링 했을 때 출력되는 값은 메일 주소를 잘못 입력했거나 네트워크 설정의 오류로 인한것이므로

해당 서버의 네트워크 설정 등을 점검해야된다.

 A-for-A

도메인이 아닌 IP 주소에 대한 A record를 질의하는 것을 필터링

명령어 : /usr/sbin/dnstop -4 -l 3 -f A-for-A eth0

이 역시 잘못된 DNS 질의이므로 원인을 찾는다.

③ rfc1918-ptr

- rfc 1918에 정의된 사설 ip에 대한 PTR 질의를 필터링한다.

명령어 : /usr/sbin/dnstop -4 -l 3 -f rfc1918-ptr eth0

사설 IP에 대한 질의는 내부 네트워크 사이의 트래픽이므로 DNS와 같은 외부 네트워크에서 보이지 않아야 한다.

만약 출력값으로 보인다면 해당 소스 IP tcpdump로 패킷캡쳐를 하여 원인을 찾아본다.

) tcpdump host 215.44.53.22

해결 방법으로는 각각의 서버에서 /etc/hosts 파일에 내부 IP를 등록해 두는 방법이 있다.

4>   기타옵션

ctrl + r : 출력 초기화

ctrl + x : 프로그램 종료

4)     질의 점검 하기

1>   과도한 질의

만약 접속이 많지 않은데도 특정 도메인에 대한 질의가 많다면 DNS에서 TTL 설정값이 너무 낮지는 않은지 확인

2>   비정상적인 특정 도메인 질의

sample.com.sample.com 또는 sample.com.localdomain 등의 경우

zone 파일에서 .을 입력하지 않았다거나 설정파일의 오류로 인해 발생하는 경우가 대부분이므로

tcpdump로 해당 질의의 소스 IP를 확인해햐 된다.

) tcpdump host 215.44.53.22

 

n  맺음말 :

DNS 쿼리에 대한 패킷을 tcpdump를 이용하여 패킷 캡쳐하여 볼 수도 있다하지만 DNS 쿼리만 따로 뽑아서 직관적으로 보기엔 쉽지않다. DNSTOP은 이러한 점을 해소해 줄 수 있는 유틸리티로서 잘 활용한다면 실시간 DNS쿼리 상황비정상적인 트래픽 등을 쉽게 모니텅링을 할 수 있다.

'Linux' 카테고리의 다른 글

리눅스 부팅과 커널 Fail시 대처방안  (0) 2013.02.06
sourceforge로 yum.repo 변경하기  (0) 2012.11.08
< iftop > 리눅스 Traffic 확인 프로그램  (0) 2012.10.26
DNS Log log 설정  (0) 2012.08.07
리눅스 CPU 확인 스크립트  (0) 2012.08.03
posted by 은이종 2012. 8. 7. 17:10

기존의 /var/log/message에 담기는 log를


DNS log 세분화를 위하여


      channel "update_syslog" {

            file "/var/named/log/update.log" versions 3 size 20m ;

            severity debug;

            print-category yes;

            print-severity yes;

            print-time yes;

      };


      channel "queries_syslog" {

            file "/var/named/log/queries.log" versions 3 size 20m ;

            severity debug;

            print-category yes;

            print-severity yes;

            print-time yes;

      };


과 같이 분할을 시켜놨더니.


queries_syslog가 20M를 넘어서

새로 생성 세개를 (versions 3)를 해야하는데


Aug  7 16:14:56 ns1 named[16385]: unable to rename log file '/var/named/log/queries.log.1' to '/var/named/log/queries.log.2': permission denied

NS1에 해당 로그를 뿜어냄



퍼미션 에러니까 chown chmod등을 확인해봤으나 아래와 같이문제 없음..

-rw-r--r-- 1 root named     164086  8월  7 17:09 queries.log


흐으으으으으음



named named로 소유권 권한을 변경했떠니 해결....






'Linux' 카테고리의 다른 글

리눅스 부팅과 커널 Fail시 대처방안  (0) 2013.02.06
sourceforge로 yum.repo 변경하기  (0) 2012.11.08
< iftop > 리눅스 Traffic 확인 프로그램  (0) 2012.10.26
dnstop 설치  (0) 2012.08.07
리눅스 CPU 확인 스크립트  (0) 2012.08.03
posted by 은이종 2012. 8. 3. 14:46

####################################

#### Counting of Physical CPUs ####

####################################

Processor Nums : 24

Core per Processor :  6

sibling (Logical CPUs) :  12

==================================

 Product Name :  Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz

 Core Nums(per Processor) :  6 

 Hyperthreding : Yes

 Total Physical Cpus : 2 


깔끔하게 출력!! 


======================================================


#!/bin/bash

#

# Counting of Physical CPU and Core, HT

#

Info="/proc/cpuinfo"


echo "####################################"

echo "#### Counting of Physical CPUs ####"

echo "####################################"


PName=$(grep name $Info | sort -u | awk -F: '{print $2}')

ProcNum=$(grep processor $Info | sort -u | wc -l)

PhysCPUs=$(grep "physical id" $Info | sort -u | uniq | wc -l)


echo "Processor Nums : $ProcNum"


CoreNum=$(grep cores $Info | sort -u | awk -F: '{print $2}')

echo "Core per Processor : $CoreNum"


sibling=$(grep "sibling" $Info | sort -u | awk -F: '{print $2}')

echo "sibling (Logical CPUs) : $sibling"


echo "=================================="


echo " Product Name : $PName"

echo " Core Nums(per Processor) : $CoreNum "

HT=$(expr $sibling / $CoreNum)


if [ "$HT" -eq 1 ]

then

    echo " Hyperthreding : No"

else

    echo " Hyperthreding : Yes"

fi


echo " Total Physical Cpus : $PhysCPUs "



exit


================================================



'Linux' 카테고리의 다른 글

리눅스 부팅과 커널 Fail시 대처방안  (0) 2013.02.06
sourceforge로 yum.repo 변경하기  (0) 2012.11.08
< iftop > 리눅스 Traffic 확인 프로그램  (0) 2012.10.26
dnstop 설치  (0) 2012.08.07
DNS Log log 설정  (0) 2012.08.07