리눅스 SUPERUSER

블로그 이미지

뱀고기*

'분류 전체보기'에 해당되는 글 96건

제목 날짜
  • nfs nobody 문제 2016.01.22
  • 아파치 벤치마크 (ab) 사용방법 2016.01.20
  • uptime과 top 이용 시스템 부하 체크 2016.01.20
  • 리눅스 메모리슬롯,cpu정보,파워상태 확인방법 2016.01.20
  • The mysqli|mysql extension is missing. Please check your PHP configuration.오류 2016.01.19
  • 윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법 2016.01.11
  • mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication) 2016.01.08
  • 리눅스 mon mysql 모니터링 설정 2016.01.08
  • mysql mon 설치(http) 2016.01.08
  • nagios check_megaraid_sas 설정 (nagios megaraid) 2016.01.08

nfs nobody 문제

Linux 2016. 1. 22. 13:27

파일서버와


마운트할 웹서버의 passwd,shadow,group를 동기화해준후 마운트하였다


그런데 파일서버에선 소유자와 소유그룹이 정상으로 나오는데


마운트한 웹서버에서는 nobody로 나오는 문제가 있다


일단 3개 서버에서 작업을 해줘야한다


(3개서버 동일)

1.vi /etc/idmapd.conf


[General] 부분


domain = 파일서버 호스트명


[Mapping]

Nobody-User = test

Nobody-Group = test


(여기서 mapping 부분 설정의 의미는 파일서버에는 있는계정이 웹서버에는 없을때, 즉 마운트를 해서 사용하는 서버에 계정정보가 존재하지않을때 로컬에 있는 어떤 계정으로 매핑을 시켜줄지 정하는 것이다, test로 설정을 해놨는데 로컬 서버에 test계정이 없다면 오류가 난다 존재하는 계정명으로 등록해야함)


저장하고 나온후


(3개 서버 동일)

/etc/init.d/rpcidmapd restart


그후 파일서버에 계정을 생성한후 웹서버에서 조회를 해보면 바로 적용이 안되고 위에 mapping에 설정한 test 소유로 나오는 경우가 있다.


idmapd 자체가 캐쉬를 가지고 있기 때문에 기존 캐쉬때문에 적용이 안되는건데


양쪽 웹서버(마운트 한 서버) 에 nfsidmap -c를 입력해주면 캐쉬가 삭제된다


캐쉬가 삭제된후 바로 적용이 안된다면 몇분 기다려보자.



저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

java 설치방법  (0) 2016.05.11
메모리,하드,cpu 스트레스 테스트  (0) 2016.04.07
uptime과 top 이용 시스템 부하 체크  (0) 2016.01.20
리눅스 메모리슬롯,cpu정보,파워상태 확인방법  (0) 2016.01.20
The mysqli|mysql extension is missing. Please check your PHP configuration.오류  (0) 2016.01.19
Posted by 뱀고기*

아파치 벤치마크 (ab) 사용방법

카테고리 없음 2016. 1. 20. 17:27
아파치가 설치될 때 같이 설치되는 벤치마킹 도구이고,
웹서버의 성능 검사 도구로 사용한다.

유닉스에서 `ab` 명령으로 사용한다.


$ ab -n 10 -c 5 http://testserver.com/

-n 은 요청수를, -c 는 동시요청수를 나타낸다.


주요 옵션

-n requests 벤치마킹을 위한 요청수.
-c cuncurrency 동시에 수행할 요청 수. 사용자수라고 이해하면 된다.
-t timelimit 제한 시간 (ms 단위)
-v verbosity 로그레벨 (1~4까지 있으며 숫자가 클수록 자세한 로그를 보여준다)


결과 문서에서 주요하게 볼 값

Time taken for tests: 벤치마킹에 걸린 총 시간. 응답시간을 볼 수 있는 중요한 결과값이다.
Requests per second: 초당 응답 요청 수.
Time per request: 한 개의 요청에 응답한 평균 시간. ms 단위로, 각 요청에 대한 처리 시간을 볼 수 있는 중요한 결과값이다.


예: 기본 응답 속도 테스트

$ ab http://naver.com/


3번의 요청에 대한 응답 속도 테스트

$ ab -n 3 http://naver.com/


10번의 요청을 동시에 3개씩 보낸다.

$ ab -c 3 -n 10 http://naver.com/


# 주의
`-c 3 -n 10`는,
3명의 사용자가 각 10번의 요청을 보낸다는 것이 아니다.

모두 10번의 요청을 보내는데, '동시에 처리하는 요청'의 수를 3개로 유지한다는 의미이다.
크기가 3인 요청 풀이 있고, 10개의 요청을 순서대로 보낸다고 생각하면 된다.

또한, 동시요청수가 전체 요청수보다 클 수 없으며,
실제로 -c 에 할당한 값이 -n 에 할당한 값보다 크면 아래와 같은 오류가 발생한다.
Cannot use concurrency level greater than total number of requests 

출처:http://ohgyun.com/455

추가로 결과값 설명
Server Software : 아파치 버전 표시
Server Hostname : 도메인명
Server Port : 웹 사용 포트
Document Path : 초기 문서(index.html index.htm등..)가 존재하는 웹문서 root 위치(서버 절대경로가 아님)
Document Length : 초기문서의 용량크기
Time taken for tests : 응답시간
Complete requests : 응답완료한 세션수
Failed requests : 응답실패한 세션수
Broken pipe errors : 실패한 에러수
Total transferred : 총 전송바이트수
HTML transferred : 총 전송한 HTML 바이트수
Requests per second : 초당응답요구수
Time per request : 요구에 응답한 시간(마이크로세컨드)
Time per request : 요구에 응답한 시간 (마이크로세컨드)
Transfer rate : 초당전송가능 용량


저작자표시 (새창열림)
Posted by 뱀고기*

uptime과 top 이용 시스템 부하 체크

Linux 2016. 1. 20. 14:48

# 시스템 부하

[root@master ~]# uptime
 10:59:44  up 243 days, 21:23,  1 user,  load average: 1.03, 3.11, 4.14


평균 부하(load average)의 다음에 나오는 세 개의 숫자(1.03, 3.11, 4.14)는 시스템에서의 1분, 5분, 15분 동안의 평균 부하를 각각 나타낸다.
시스템의 평균 부하는 실행 가능한 상태 혹은 중단 불가능한 상태의 프로세스들의 평균 개수와 같다.
실행 가능한 프로세스는 현재 CPU를 사용하고 있거나 CPU 사용을 위해 대기 중인 상태이고, 중단 불가능한 프로세스는 I/O를 기다리고 있는 프로세스다.

단일 CPU 환경의 시스템에서 평균 부하 1의 의미는 한 개의 CPU가 끊임없이 일을 하고 있다는 뜻이다.


# top을 이용한 부하 문제 진단

> top 출력 정보
Cpu(s): 43.7%us, 56.0%sy,  0.2%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

- us : user CPU time
 nice가 적용되지 않은 사용자 프로세스가 소비한 CPU 사용량을 시간의 비율로 나타냄(nice는 다른 프로세스에 우선순위를 적용하는 것)

- sy : system CPU time
 커널과 커널 프로세스의 CPU 사용량을 시간의 비율로 보여줌

- ni : nice CPU time
 nice를 적용한 프로세스가 있을 경우 해당 프로세스의 CPU 사용량을 시간의 비율로 보여줌

- id : CPU idle time
 이것은 CPU가 사용되지 않는 유휴 상태의 비율을 나타냄.
 느려진 시스템에서 이 수치가 높게 나타난다면 시스템이 느려진 원인이 CPU 부하 때문이 아니라는 뜻.

- wa : I/O wait
  CPU사 I/O를 기다리면서 소비한 시간의 비율을 나타낸 것.
  이 수치는 느려진 시스템의 원인을 찾을 때 특히 중요.
  이 값이 낮으면 원인을 찾을 때 디스크 혹은 네트워크 I/O를 확실하게 배제할 수 있기 때문.

- hi : hardware interrupts
  하드웨어 인터럽트를 제공하는 데 CPU가 소비한 시간의 비율을 나타낸 수치.

- si : software interrupts
 소프트웨어 인터럽트를 제공하는 데 CPU가 소비한 시간의 비율을 나타낸 수치.

- st : steal time
 가상 머신을 실행 중일 경우 이 수치는 가상 머신을 위해 다른 task에서 사용된 CPU 사용량에 대한 시간의 비율을 나타낸 수치.


> top 프로세스 리스트에서 특정 프로세스를 종료하려면 'k' 키를 누른다.
'k'키를 누르면 15번 시그널을 보낼 수 있는 프롬프트가 나오고 여기에 PID를 입력하면 프로세스를 종료시킬 수 있다.


top Help Commands

Help for Interactive Commands - procps version 3.2.8
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B       Global: 'Z' change color mappings; 'B' disable/enable bold
  l,t,m     Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
  1,I       Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode

  f,o     . Fields/Columns: 'f' add or remove; 'o' change display order
  F or O  . Select sort field
  <,>     . Move sort field: '<' next col left; '>' next col right
  R,H     . Toggle: 'R' normal/reverse sort; 'H' show threads
  c,i,S   . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u       . Show specific user only
  n or #  . Set maximum tasks displayed

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W         Write configuration file
  q         Quit
          ( commands shown with '.' require a visible task display window ) 
Press 'h' or '?' for help with Windows,
any other key to continue


top을 한 번만 실행해 전체 출력 결과를 보고자 할때

[root@master ~]# top -b -n 1
top - 11:12:00 up 59 min,  4 users,  load average: 0.02, 0.06, 0.15
Tasks: 212 total,   1 running, 211 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.6%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3914396k total,   689696k used,  3224700k free,    29992k buffers
Swap:  4046840k total,        0k used,  4046840k free,   312528k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
    1 root      20   0 19348 1560 1252 S  0.0  0.0   0:00.71 init                                                                   
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                               
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/0                                                            
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                            
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                            
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                                             
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1                                                            
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1                                                            
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.01 ksoftirqd/1                                                            
   10 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/1    

   
top 출력 정보를 파일로 저장

[root@master ~]# top -b -n 1 > top_output


top 출력 결과를 화면으로도 보고 파일로도 저장(tee 명령)

[root@master ~]# top -b -n 1 | tee top_output_tee


# 느려진 시스템 확인 사항


1) 느려진 시스템을 진단할 때 가장 먼저 확인해야 할 수치 중 하나는 I/O 대기 값이다.
이 수치를 통해 I/O를 문제의 원인에서 배제할 수도 있다.
I/O 대기가 높다면 그다음 단계는 무엇이 높은 디스크 I/O를 유발하는지 진단하는 것이다.

2) I/O 대기와 유휴 시간이 모두 낮다면 다음으로 높은 사용자 CPU 사용률을 살펴볼 것이고, 무엇이 높은 사용자 CPU 사용률을 야기하는지 확인해야 한다.
I/O 대기 시간은 낮고 유휴 시간값은 높다면 시스템이 느려진 원인은 CPU 자원 때문에 발생한 것이 아니므로 문제 해결을 다른 곳에서 시작해야 한다.


높은 입출력 대기 문제 진단
높은 I/O 대기 증상을 보았다면 가장 먼저 확인해봐야 하는 것은 시스템이 대량의 스왑을 사용하고 있는가다.
하드디스크가 RAM보다 훨씬 더 느리기 때문에 시스템에서 RAM이 고갈되고 스왑을 사용하게 되면 거의 모든 시스템은 성능 문제로 고생할 수밖에 없다.
디스크에 접근하려는 것들은 모두 디스크 I/O를 위해 스왑과 경합을 하게 된다(그래서 먼저 메모리가 모두 고갈됐는지 진단하고, 그렇다면 그 부분에서 문제를 처리하면 된다).
RAM 용량이 충분하다면 어느 프로그램에서 대부분의 I/O를 사용하고 있는지 밝혀낼 필요가 있다.

시스템이 과도한 I/O 부하에 걸려있다면 맨 먼저 진행해야 할 단계는 각 파티션을 살펴보고 어느 파티션에서 과도한 I/O 부하가 발생하는지 확인하는 것이다.
일단 과도한 I/O 부하가 발생한 곳을 알아냈다면 그다음 단계로 대부분의 I/O가 읽기인지 쓰기인지 확인할 필요가 있다.


iostat 출력 정보

[smu2]ns2:/home/oracle>iostat
Linux 2.6.18-128.el5PAE (ns2)   2013년 09월 02일

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.78    0.00    1.62   10.63    0.00   84.96

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
hda              45.46       623.87      1793.24    2129614    6121356
hda1              0.03         0.57         0.00       1960          4
hda2              0.06         1.21         0.19       4128        656
hda3              2.05        97.11         8.80     331498      30048
hda4              0.00         0.00         0.00          8          0
hda5              1.22         1.61        13.85       5493      47264
hda6              0.13         0.99         0.95       3370       3240
hda7              0.01         0.43         0.00       1459          0
hda8             41.95       521.77      1769.45    1781114    6040144


- tps
 장치에 대한 초당 전송량을 나타냄.
 "전송"은 장치에 보내는 I/O 요청을 다르게 표현한 것

- Blk_read/s
 장치에서 초당 읽혀지는 블럭의 수

- Blk_wrtn/s
 장치에 초당 쓰여지는 블럭의 수

- Blk_read
 장치에서 읽어들인 전체 블럭의 수
 
- Blk_wrtn
 장치에 쓰여진 전체 블럭의 수


iotop 사용
iotop은 시스템에서 실행되고 있는 모든 프로세스를 I/O 통계를 기준으로 정렬해서 보여준다는 점에서 top과 iostat를 조합한 것이다.
iostat는 리눅스 커널의 일부 새로운 기능을 사용하고 있으며, 커널 2.6.20 이상을 필요로 한다.
iostat가 기본으로 설치돼 있지 않다면 iotop이라는 패키지에서 찾을 수 있을 것이다.


[root@master ~]# iotop

 1462 be/4 root        0.00 B/s   35.38 K/s  0.00 %  0.00 % [flush-253:0]  
Total DISK READ: 0.00 B/s | Total DISK WRITE: 7.85 K/s 
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                    
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]


sar 사용 통계 정보
 - sar는 기본적으로 당일의 CPU 통계를 보여줌


[root@master ~]# sar | more
Linux 2.6.18-128.el5PAE (ns2)   2013년 09월 02일

`                CPU     %user     %nice   %system   %iowait    %steal     %idle
`                all     43.97      0.00     56.03      0.00      0.00      0.00
`                all     43.93      0.00     56.07      0.00      0.00      0.00
`                all     43.96      0.00     56.04      0.00      0.00      0.00
`                all     43.92      0.13     55.94      0.00      0.00      0.00
`                all     43.98      0.00     56.02      0.00      0.00      0.00
`                all     43.95      0.00     56.05      0.00      0.00      0.00


RAM 통계 정보 보기

[root@master ~]# sar -r | more
Linux 2.6.18-128.el5PAE (ns2)   2013년 09월 02일

`          kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
`             109488   4040944     97.36    425180   1291628   3970036    126496      3.09       160
`             109240   4041192     97.37    425180   1291940   3970036    126496      3.09       160
`             108992   4041440     97.37    425180   1292252   3970036    126496      3.09       160
`             108124   4042308     97.39    425180   1292580   3970036    126496      3.09       160
`             108000   4042432     97.40    425180   1292888   3970036    126496      3.09       160
`             107752   4042680     97.40    425180   1293196   3970036    126496      3.09       160
`             107628   4042804     97.41    425180   1293520   3970036    126496      3.09       160


디스크 통계

[root@master ~]# sar -b | more
Linux 2.6.18-128.el5PAE (ns2)   2013년 09월 02일

`                tps      rtps      wtps   bread/s   bwrtn/s
`               2.86      0.00      2.86      0.00     41.03
`               2.80      0.00      2.80      0.00     39.89
`               2.77      0.00      2.77      0.00     39.75
`               4.35      0.00      4.35      0.00    136.21
`               2.84      0.00      2.84      0.00     40.20
`               2.77      0.00      2.77      0.00     39.27


초당 총 트랜잭션 수(tps)를 알 수 있고 추가적으로 얼마나 많은 읽기 트랜잭션(rtps)과 쓰기 트랜잭션(wtps)이 각각 있었는지 확인할 수 있다.
bread/s 칼럼은 bread I/O를 측정하지 않는다.
대신 초당 읽은 평균 바이트 수를 보여준다. 이와 비슷하게 bwrtn/s 역시 초당 평균 바이트 수를 보여준다.

과거의 통계 정보
특정 시간 범위에 대한 데이터를 가져오려면 -s와 -e 인자를 사용해 관심 있는 시간대의 시작 시간과 종료 시간을 각각 명시할 수 있다.

[root@master ~]# sar -s 14:00:00 -e 16:00:00 | more
Linux 2.6.18-128.el5PAE (ns2)   2013년 09월 02일

`                CPU     %user     %nice   %system   %iowait    %steal     %idle
`                all      1.34      0.00      1.23      5.39      0.00     92.05
`                all      2.60      0.00      2.80     19.07      0.00     75.52
`                all      0.93      0.00      0.91      4.00      0.00     94.16
`                all      0.98      0.01      0.90      4.32      0.00     93.79
`                all      0.96      0.00      0.89      4.15      0.00     94.00
`                all      0.89      0.00      0.87      3.82      0.00     94.42
`                all      0.93      0.00      0.89      4.19      0.00     93.99
`                all      0.89      0.00      0.92      3.96      0.00     94.24
Average:          all      1.18      0.00      1.17      6.04      0.00     91.61

출처:http://develop.sunshiny.co.kr/951


저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

메모리,하드,cpu 스트레스 테스트  (0) 2016.04.07
nfs nobody 문제  (0) 2016.01.22
리눅스 메모리슬롯,cpu정보,파워상태 확인방법  (0) 2016.01.20
The mysqli|mysql extension is missing. Please check your PHP configuration.오류  (0) 2016.01.19
윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법  (0) 2016.01.11
Posted by 뱀고기*

리눅스 메모리슬롯,cpu정보,파워상태 확인방법

Linux 2016. 1. 20. 14:08

centos 현재 사용중인 메모리슬롯, 빈 메모리슬롯 확인방법


1.메모리상태확인

쉘에서 dmidecode -t 17 | egrep ‘Memory|Size’ 를 입력하면


Memory Device

        Size: 8192 MB

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed

Memory Device

        Size: No Module Installed


위와같이 나온다 첫번째 8192MB는 8기가짜리 메모리가 하나 꽂혀있단 뜻이고

아래 No Module Installed 는 빈 슬롯을 뜻한다.


즉 지금 서버에는 메모리슬롯이 총 16개 그중 8기가 메모리 하나만 꽂혀있는걸 확인할 수 있다


2.CPU 확인방법


dmidecode -t processor


Handle 0x0004, DMI type 4, 42 bytes

Processor Information

        Socket Designation: CPU 1

        Type: Central Processor

        Family: Xeon

        Manufacturer: Intel            

        ID: E4 06 03 00 FF FB EB BF

        Signature: Type 0, Family 6, Model 62, Stepping 4

        Flags:

                FPU (Floating-point unit on-chip)

                VME (Virtual mode extension)

                DE (Debugging extension)

                PSE (Page size extension)

                TSC (Time stamp counter)

                MSR (Model specific registers)

                PAE (Physical address extension)

                MCE (Machine check exception)

                CX8 (CMPXCHG8 instruction supported)

                APIC (On-chip APIC hardware supported)

                SEP (Fast system call)

                MTRR (Memory type range registers)

                PGE (Page global enable)

                MCA (Machine check architecture)

                CMOV (Conditional move instruction supported)

                PAT (Page attribute table)

                PSE-36 (36-bit page size extension)

                CLFSH (CLFLUSH instruction supported)

                DS (Debug store)

                ACPI (ACPI supported)

                MMX (MMX technology supported)

                FXSR (FXSAVE and FXSTOR instructions supported)

                SSE (Streaming SIMD extensions)

                SSE2 (Streaming SIMD extensions 2)

                SS (Self-snoop)

                HTT (Multi-threading)

                TM (Thermal monitor supported)

                PBE (Pending break enabled)

        Version: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz      

        Voltage: 0.8 V

        External Clock: 100 MHz

        Max Speed: 2100 MHz

        Current Speed: 2100 MHz

        Status: Populated, Enabled

        Upgrade: Other

        L1 Cache Handle: 0x0005

        L2 Cache Handle: 0x0006

        L3 Cache Handle: 0x0007

        Serial Number:  

        Asset Tag:  

        Part Number:  

        Core Count: 6

        Core Enabled: 6

        Thread Count: 12

        Characteristics:

                64-bit capable


Handle 0x0008, DMI type 4, 42 bytes

Processor Information

        Socket Designation: CPU 2

        Type: Central Processor

        Family: <OUT OF SPEC>

        Manufacturer: Not Specified

        ID: 00 00 00 00 00 00 00 00

        Version: Not Specified

        Voltage: 0.0 V

        External Clock: Unknown

        Max Speed: Unknown

        Current Speed: Unknown

        Status: Unpopulated

        Upgrade: <OUT OF SPEC>

        L1 Cache Handle: Not Provided

        L2 Cache Handle: Not Provided

        L3 Cache Handle: Not Provided

        Serial Number: Not Specified

        Asset Tag: Not Specified

        Part Number: Not Specified

        Characteristics:

                64-bit capable


위 정보로 보면

cpu소캣은 2개,

첫번째 소캣에 version 부분을 보면 Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz cpu가 꽂혀있는것으로 확인


두번째 소캣은 cpu가 없어 정보가 뜨지 않는걸 확인할 수 있다.


3.파워상태 확인

dmidecode -t chassis

Handle 0x0003, DMI type 3, 21 bytes

Chassis Information

        Manufacturer: ...............................

        Type: Rack Mount Chassis

        Lock: Not Present

        Version: ..................

        Serial Number: ..................

        Asset Tag: ....................

        Boot-up State: Safe

        Power Supply State: Safe

        Thermal State: Safe

        Security Status: None

        OEM Information: 0x00000000

        Height: Unspecified

        Number Of Power Cords: 1

        Contained Elements: 0


위에 나와있는 내용을 보면

power supply state(파워서플라이 상태)는 safe인것이 확인되며


Number Of Power Cords(전원코드 수, 파워갯수): 1 인것이 확인된다


그 외에 dmidecode로 확인 할 수 있는 정보가 많다


정보를 확인할 때 주로 쓰는 옵션으로 -t , -s 가 있으며 dmidecode -t , dmidecode -s 로 어떤것을 확인 할 수 있는지 조회가 가능하다


저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

nfs nobody 문제  (0) 2016.01.22
uptime과 top 이용 시스템 부하 체크  (0) 2016.01.20
The mysqli|mysql extension is missing. Please check your PHP configuration.오류  (0) 2016.01.19
윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법  (0) 2016.01.11
mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication)  (0) 2016.01.08
Posted by 뱀고기*

The mysqli|mysql extension is missing. Please check your PHP configuration.오류

Linux 2016. 1. 19. 18:17

The mysqli|mysql extension is missing. Please check your PHP configuration.

오류 해결방법


rpm -qa | grep php-mysql


설치 안되어있다면

yum -y install php-mysql


설치 완료후


vi /etc/php.ini

extension=mysqli.so

내용 추가후 웹 재시작

저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

uptime과 top 이용 시스템 부하 체크  (0) 2016.01.20
리눅스 메모리슬롯,cpu정보,파워상태 확인방법  (0) 2016.01.20
윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법  (0) 2016.01.11
mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication)  (0) 2016.01.08
리눅스 mon mysql 모니터링 설정  (0) 2016.01.08
Posted by 뱀고기*

윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법

Linux 2016. 1. 11. 16:35

이미지파일이나 동영상파일명이 한글로 작성된경우가 많다


서버 이전을하거나 윈도우에 있는 파일을 리눅스 서버로 옮기는경우가 있는데


그럴경우 옮길시 캐릭터셋을 맞추고 옮긴다 하더라도 깨지는 경우가 있다


그럴때 해결방법



unrar-4.2.3-1.el6.rf.x86_64.rpm

옮길 서버에 unrar을 설치한다


최신버전을 받고싶다면

http://www.rarlab.com/rar_add.htm


여기서 unrar rpm을 받아서 설하면 됨


그리고 윈도우에도 winrar을 설치해준다


그리고 윈도우에서 옮길 한글 파일명 오른쪽버튼 클릭하면 add to 파일명.rar 버튼이 있을것이다


눌러서 rar로 압축후


서버로 업로드한후


unrar x 파일명.rar 하면 압축이 풀린다.

(x옵션은 압축파일 내에 있는 디렉토리 그대로 유지한채 압축을 푸는 옵션이다, x 없이 unrar 파일명 으로 압축해제시 압축파일 내에 디렉토리가 있다 하더라도 디렉토리 유지없이 파일이 쫙 뿌려지므로 주의)


zip으로도 압축해보고 별의 별짓을 다해봤는데


이방법으로 한글파일 옮기기를 해결했다.



자세히는 모르겠지만 압축프로그램에도 캐릭터셋이 존재하는데 rar이 윈도우-리눅스가 동일하게 지원이 되는것 같다.


한글파일 자체를 그냥 바로 업로드하거나 아니면 다른 압축프로그램을 이용하면 윈도우-리눅스 캐릭터셋이 다르기때문에 깨진다.


(참고로 winrar 자체를 윈도우에서 쓰기에 성능도  좋다. rar확장자는 물론 winrar로 zip 압축시 압축률,속도 모두 아주 양호한 편이었고, 압축 해제 속도도 아주 좋았다. 다른거 사용하기 귀찮아서 알집을 사용하고 있었는데 winrar 설치 후 winrar만 사용중이다.)

저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

리눅스 메모리슬롯,cpu정보,파워상태 확인방법  (0) 2016.01.20
The mysqli|mysql extension is missing. Please check your PHP configuration.오류  (0) 2016.01.19
mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication)  (0) 2016.01.08
리눅스 mon mysql 모니터링 설정  (0) 2016.01.08
mysql mon 설치(http)  (0) 2016.01.08
Posted by 뱀고기*

mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication)

Linux 2016. 1. 8. 18:40

######mysql dual replication 설정 ######

mysql dual replication이란 일반적인 리플리케이션과 달리 서로가 마스터이자 슬레이브로


서로 양쪽의 db를 리플리케이션 함으로 어느쪽에서든 데이터가 생성되면 서로 복제하며


한쪽 DB가 죽어도 나머지 한쪽은 정상 작동되며 죽은 DB가 다시 살아날 경우 작동이 중지되어있던 시간동안 생긴 데이터가 바로 복제된다


# replication 설정


# db 1

#my.cnf 수정

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id   = 1   

binlog_format = 'MIXED'


#mysql 재시작

/etc/init.d/mysqld restart



#리플리케이션에 이용할 db사용자 생성

mysql -u root -p

mysql> create user 'repli'@'서버2번 아이피 입력' identified by'비밀번호';



#mysql replication user 생성 및 master 정보 확인

mysql> grant replication slave on *.* to 'repli'@'서버2번 아이피 입력' identified by '비밀번호';

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |     2516 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+


# server 2

# my.cnf 수정

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id   = 2      

binlog_format = 'MIXED'



# mysql 재시작

/etc/init.d/mysqld restart


#리플리케이션에 이용할 db사용자 생성

mysql -u root -p

mysql> create user 'repli2'@'서버1번 아이피 입력' identified by'비밀번호';


# mysql replication 설정, user 생성 및 master 정보 확인

mysql> stop slave;

mysql> change master to master_host='서버1번 아이피 입력', master_user='repli', master_port=3306, master_password='암호입력', master_log_file='mysql-bin.000001(위에나온 서버1 파일명)', master_log_pos=2516(위에나온 서버1 포지션번호);

mysql> start slave;

mysql> grant replication slave on *.* to 'repli2'@'서버1번 아이피 입력' identified by '암호입력';

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |     2365 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+


# server 1

# mysql replication 설정

mysql -u root -p 

mysql> stop slave;

mysql> change master to master_host='서버2번 아이피 입력', master_user='repli2', master_port=3306, master_password='암호입력', master_log_file='mysql-bin.000001(위에나온 서버2 파일명)', master_log_pos=2365(위에나온 서버2 포지션번호);

mysql> start slave;




확인작업으로 한쪽에서 testdb 생성


다른쪽에 정상적으로 생겼는지 조회해본후


한쪽 mysql stop 후 나머지 한쪽에서 testdb2 생성


다시 mysql start후 testdb2 생기는지 확인








#########heartbeat 설치 ################


# 호스트네임 추가


# Server 1 (192.168.232.129)

vi /etc/sysconfig/network

HOSTNAME=129s


vi /etc/hosts

192.168.232.129          129s


#내 아이피와 호스트네임, Server2의 아이피와 호스트네임을 추가해준다


# Server 2 (192.168.232.130)

vi /etc/sysconfig/network

HOSTNAME=130s


vi /etc/hosts

192.168.232.130          130s



#내 아이피와 호스트네임, Server1의 아이피와 호스트네임을 추가해준다


#호스트네임이 잘 변경되었는지 각각 서버에서 uname -n 으로 조회해본다



# 저장소 추가, heartbeat 설치(서버1,2 동일)


# heartbeat는 기본 저장소에 없으므로 저장소를 추가해준다(서버1,2 동일)


rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm


# 추가 완료되었다면 heartbeat 설치(서버1,2 동일)


yum -y install heartbeat*


# 설치경로로 이동(서버1,2 동일)


cd /usr/share/doc/heartbeat-3.0.4/


# 설정 샘플파일 복사, 기본적으로 설정파일을 읽는 경로가 /etc/ha.d 이기때문에 /etc/ha.d로 설정파일(ha.cf haresources authkeys)을 복사해준다(서버1,2 동일)


cp ha.cf haresources authkeys /etc/ha.d/


#파일 퍼미션 변경(서버 1,2 동일) (변경 안하면 heartbeat 데몬 시작시 오류남)

chmod 600 /etc/ha.d/authkeys



# ha.cf 설정(서버1,2 동일)

vi /etc/ha.d/ha.cf


파일 끝에 복사해준다


#디버깅용 로그

debugfile /var/log/ha-debug.log

#기타 로그

logfile /var/log/ha.log

#노드간 체크 시간(두 노드간에 얼마나 자주 heartbeat를 주고받을 것인가를 설정)

keepalive 2

#호스트가 죽었다고 판단하는 시간

deadtime 30

#자동 복구 On(한 노드가 서비스 하다가 죽었을 때 새로운 노드로 자원이 이동)

auto_failback on

#노드간 체크에 사용할 인터페이스(heartbeat 를 보낼 인터페이스 설정)

bcast eth0

#노드 등록

node 129s  # master

node 130s  # slave

#UDP 에 사용할 포트(통신포트 설정)

udpport 694


# 로그파일 생성(서버1,2 동일)


touch /var/log/ha-debug.log

touch /var/log/ha.log




# haresources 설정


vi /etc/ha.d/haresources

#기존 설정되어있는 내용 모두 주석처리후 맨 아래 추가

# Server1쪽 haresources

uname -n 했을때 나오는 호스트명 IPaddr2::192.168.232.131/24/eth0:0/192.168.232.255 mysqld mon


# Server2쪽 haresources

uname -n 했을때 나오는 호스트명 IPaddr2::192.168.232.131/24/eth0:0/192.168.232.255 mysqld mon



# 설정내용 설명

# 129s = hostname

# 192.168.232.131 = 가상 IP(VIP)

# 24 = 클래스 (prefix)

# eth0:0 = 가상IP(VIP)가 사용할 인터페이스

# 192.168.232.255 = Broadcast

# mysqld = 서비스할 데몬



# authkeys 설정 (서버1,2 동일)

vi /etc/ha.d/authkeys


#변경전

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello!


#변경후

auth 2

#1 crc

2 sha1 HI!

#3 md5 Hello!

(sha1 Hi! 부분 Hi!는 변경 가능, 변경시 서버 1,2가 동일하게만 작성되어있으면 됨)


# 같이 서비스할 데몬 심볼릭링크 생성 (서버1,2 동일)

cd /etc/ha.d/resource.d


ln -s /etc/init.d/mysqld mysqld


# resourec.d 에 mysqld 링크를 걸어놨으므로 이제 heartbeat 데몬을 중지하거나 시작하면 mysql 데몬도 같이 중지, 시작된다.


/etc/init.d/heartbeat start


##방화벽을 사용중이라면 udp 694에 대해서 방화벽 허용을 해줘야 한다.







######mon 설치##########


mkdir /usr/local/lib64/perl5 


cd /usr/include 로 이동 후 h2ph -r -l . 실행 (h2ph -r -l .  <--마침표까지 복사해서 실행해야함)


yum install perl-CPAN


## perl 모듈 설치(wget으로 받으면 파일명이 깨지니 윈도우에 받고 나서 ftp든 이용해서 올리는게 좋음)

http://wnstjqdl.tistory.com/attachment/cfile25.uf@22786A38530192F40D0455.gz

http://wnstjqdl.tistory.com/attachment/cfile29.uf@2555DE38530192FB214704.gz

(모듈 다운이 안되면 cpan.org 에서 Period-1.20.tar.gz , Time-HiRes-1.9721.tar.gz 받으면 됨)

(아니면 cpan -i 모듈명 으로도 설치 가능)



tar xvzf Period-1.20.tar.gz

tar xvzf Time-HiRes-1.9721.tar.gz

cd Period-1.20

perl Makefile.PL

make

make install


cd ../Time-HiRes-1.9721

perl Makefile.PL

make

make install



## mon 설치(wget으로 받으면 파일명이 깨지니 윈도우에 받고 나서 ftp든 이용해서 올리는게 좋음)

(링크가 안들어가지면 mon-1.2.0.tar.gz 찾아서 다운 받으면 됨)

http://wnstjqdl.tistory.com/attachment/cfile9.uf@241C813A530194BC20DB8B.gz


##mon 압축 해제후 mon.d 디렉토리 에서

make

make install


####make install했을시

#install: invalid group `uucp'

#make: *** [install] Error 1

#오류가 나는경우 uucp계정이 없어서 나는 오류임 계정 생성해야함


##나는 관리하기 편하게 /opt/webapps/mon으로 이동시켜 압축풀고 make했음



##설정파일 복사


mkdir /etc/mon

cp /opt/webapps/mon/etc/example.cf /etc/mon/mon.cf

cp /opt/webapps/mon/etc/auth.cf /etc/mon/auth.cf



##mon.cf 수정

vi /etc/mon/mon.cf

##기존내용 삭제후 아래내용 추가

alertdir        = /opt/webapps/mon/alert.d

mondir          = /opt/webapps/mon/mon.d

logdir          = /var/log/mon

historicfile    = /var/log/mon/history.log

maxprocs        = 20

histlength      = 100

randstart       = 60s

dtlogging       = yes

dtlogfile       = dtlog

authtype        = getpwnam


hostgroup servers 127.0.0.1


watch servers

    service mysql

        interval 15s

        monitor msql-mysql.monitor -mode=mysql --username=mon --password=mon --database=mon

        allow_empty_group

        period wd {Mon-Sun}

            alert mysql.down.alert

            alertevery 1m

            alert file.alert /var/log/mon.file.log

            alertafter 3


#### mon 스크립드 작성

vi /etc/init.d/mon


#아래내용 추가

#!/bin/bash

MON_HOME=/opt/webapps/mon     # 본인이 설치한 폴더위치

MON_CF=/etc/mon                                 # mon.cf  설정파일이 들어갈 위치


case "$1" in

    start)

        if [ -f $MON_HOME/mon.pid ]; then

                echo "mon already started"

                exit

        fi

        echo "Starting Mon"

    $MON_HOME/mon -c $MON_CF/mon.cf -L $MON_HOME -P $MON_HOME/mon.pid &

        ;;

    stop)

    if [ -f $MON_HOME/mon.pid ]; then

    echo "Stopping Mon"

        kill -9 `cat $MON_HOME/mon.pid`

        rm  -f $MON_HOME/mon.pid

    else

        echo "no server pid, server doesn't seem to run"

    fi


    ;;

    status)

        echo "doing good"

        ;;

    *)

    echo "Usage: $0 {start|stop|status|reload|restart}"

    exit 1

esac


##저장후

chmod 755 /etc/init.d/mon




##mysql과 연결하기 위해 Convert-BER-1.31 , DBI-1.631 DBD-mysql-4.026 모듈 설치

##모듈 다운로드(wget으로 받으면 파일명이 깨지니 윈도우에 받고 나서 ftp든 이용해서 올리는게 좋음)

http://wnstjqdl.tistory.com/attachment/cfile10.uf@2175EA3353019DFC34B1C6.gz

http://wnstjqdl.tistory.com/attachment/cfile30.uf@220E0F3353019DFC089297.gz

http://wnstjqdl.tistory.com/attachment/cfile7.uf@217FAE3353019DFC221EBD.gz


tar xvzf Convert-BER-1.31.tar.gz

tar xvzf DBD-mysql-4.026.tar.gz

tar xvzf DBI-1.631.tar.gz


cd Convert-BER-1.31


perl Makefile.PL

make

make install


cd ../DBD-mysql-4.026


#나는 mysql을 소스설치했기때문에 경로 지정, 소스설치 아니라면 그냥 위에처럼 perl Makefile.PL 만 하면됨

perl Makefile.PL --mysql_config=/opt/webapps/mysql5/bin/mysql_config

make

make install


#Makefile.PL 실행했는데 Can't locate DBI/DBD.pm in @INC 나올시

sudo -H cpan DBI::DBD DBD::mysql



cd ../DBI-1.631



perl Makefile.PL

make

make install


#mysql 모니터링 유저,디비 생성


create database mon;

create user 'mon'@'%' identified by 'mon';

GRANT ALL PRIVILEGES ON mon.* TO 'mon'@'%' IDENTIFIED BY 'mon';

FLUSH PRIVILEGES;

use mon;

CREATE TABLE example ( id INT, data VARCHAR(100));


#(테이블 생성이 안되어있으면 mon 실행시 오류남)




#libmysqlclient.so.18 사용할수 있도록 ldconfig 등록


#find 명령어로 libmysqlclient.so.18 찾기

#나는 소스설치해서 경로가 /opt/webapps/mysql5/lib/ 아래에 있음

vi /etc/ld.so.conf


##아래에추가

/opt/webapps/mysql5/lib/


#저장하고 나온후

ldconfig


## mon으로 mysql 체크중에 문제가 생길시 mysql+heartbeat 중지시켜서 stanby 서버를 active로 사용되게 만들기


cd /opt/webapps/mon/alert.d

vi mysql.down.alert


##아래 내용 추가후 저장

#!/bin/sh

/etc/init.d/heartbeat stop


##스크립트에 heartbeat stop만 넣은 이유는 위에 설정한대로 heartbeat와 mysqld를 링크걸어놨기 때문에 heartbeat 데몬을 stop하면 mysql도 같이 내려감


#권한 변경

chmod 755 mysql.down.alert



/etc/init.d/mon start







## mon 설치 참고 : http://wnstjqdl.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-Mon-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95http

http://wnstjqdl.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-Mon-Mysql-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EC%84%A4%EC%A0%95

저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

The mysqli|mysql extension is missing. Please check your PHP configuration.오류  (0) 2016.01.19
윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법  (0) 2016.01.11
리눅스 mon mysql 모니터링 설정  (0) 2016.01.08
mysql mon 설치(http)  (0) 2016.01.08
nagios check_megaraid_sas 설정 (nagios megaraid)  (0) 2016.01.08
Posted by 뱀고기*

리눅스 mon mysql 모니터링 설정

Linux 2016. 1. 8. 17:10

리눅스 Mon Mysql 모니터링 설정


** 사전에 mon 설치가 되어 있어야 한다. (아래 url로 설치 참조)

 http://wnstjqdl.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-Mon-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95http 


1. perl 모듈 설치

  - Convert::BER, DBI, DBD::mysql

 Convert-BER-1.31.tar.gz

 DBD-mysql-4.026.tar.gz

 DBI-1.631.tar.gz


해당 모듈은 압축을 푼후  perl Makefile.PL 후 make; make install; 로 설치 하면 된다.

DBD설치시 필자는 source로 설치 하여

perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config 


2. mysql 모니터링 유저 생성

GRANT ALL PRIVILEGES ON test.* TO 'bluemary'@'localhost' IDENTIFIED BY '1234';

FLUSH PRIVILEGES;

use test;

CREATE TABLE example ( id INT, data VARCHAR(100));

필자은 localhost 서버를 모니터링 할 예정이라 localhost로 유저 생성 타서버의 mysql일 경우 %로

** test database가 없을 경우 CREATE DATABASE test 로 DB 생성 하면 된다.


3. msql.mysql.monitor 알아보기 쉽게 mysql.monitor로 변경

  - cd /usr/local/mon/mon.d/

  - mv msql.mysql.monitor mysql.monitor


4. mon.cf 수정

    service mysql

        interval 10s

        monitor mysql.monitor --mode=mysql --username=bluemary --password=1234 --database=test

        period wd {Sun-Sat}

            alert echo.alert "Mysql Server is Down!!"

            alert file.alert /var/log/mon.file.log     <-- mysql 모니터링의 경우 에러가 많이 발생하여 file 로그 찍음

            upalert echo.alert "My server is Alive!!"

 **** monitor mysql.monitor 쪽에 mysql에서 모니터링 생성한 유저를 적어 준다.

5. mon 서비스 시작 후 mysql stop 및 start

  - mon서비스 시작하고 mysql stop 과 start를 하였지만 echo쪽에선 Down!!만 떠서 file.log를 확인 하였다.

file.log를 확인하였더니 DBD::mysql 모듈에서 libmysqlclient.so.18을 못찾고 있었다.

해당 파일을 find / -name libmysqlclient.so.18을 찾아보았더니 /usr/local/mysql/lib/ 경로가 나왔다.

해당 경로를 /etc/ld.so.conf에 등록해 준다.

  - vi /etc/ld.so.conf

등록 후 ldconfig

** 다시 mon 서버스 시작 후 mysql stop 과 start 해주면 정상적으로 되는 것을 확인 할 수 있다.


출처 : http://wnstjqdl.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-Mon-Mysql-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EC%84%A4%EC%A0%95

저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

윈도우에서 리눅스, 리눅스에서 리눅스로 한글파일 옮길시 깨짐 대처방법  (0) 2016.01.11
mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication)  (0) 2016.01.08
mysql mon 설치(http)  (0) 2016.01.08
nagios check_megaraid_sas 설정 (nagios megaraid)  (0) 2016.01.08
perl 이용시 Can't locate ExtUtils/MakeMaker.pm 해결방법  (0) 2016.01.06
Posted by 뱀고기*

mysql mon 설치(http)

Linux 2016. 1. 8. 17:08

리눅스 Mon 설치 및 설정(http)


1. perl 모듈 설치

  - cd /usr/include 로 이동 후 h2ph -r -l . 실행 

** 아래와 같이 해당 디렉토리 없다고 나오면 mkdir /usr/local/lib64/perl5 를 만들어 준 후 다시 명령어 실행.

********그래도 오류가 난다면 yum install perl-CPAN 설치********************

2. Mon 사용에 필요한 perl 모듈 설치

  - Time::Period,  Time::HiRes 2개의 모듈이 필요하다. 

  - 해당 모듈은 cpan.org에서 다운 가능하다.

 Period-1.20.tar.gz

 Time-HiRes-1.9721.tar.gz

  - 해당 모듈은 압축 푼 후 perl Makefile.PL 명령 후 make; make install; 하면 설치가 된다.


  - 직접 서버에서 설치하는 방법은 cpan 명령어로 가능

  * cpan -i 모듈명 으로 설치 가능하다.

  * perl -MCPAN -eshell 로 들어간후 install 모듈명 으로도 설치가 가능함.

  ** 설치된 perl 모듈 확인 명령어로 설치되었는지 확인한다. 

perl -MExtUtils::Installed -le 'print for ExtUtils::Installed->new->modules'



3. Mon 설치

 mon-1.2.0.tar.gz

  - 해당 Mon 파일을 압축 푼 후 mon.d 디렉토리에서 make; make install 하면 된다.

  - 필자는 관리하기 편하게 하기 위해 해당  mon-1.2.0 을 mv로 /usr/local/mon으로 이동 시켰다.

************** mon 디렉토리 구조 ****************

alert.d : 각종 alert 데몬이 들어있는 디렉토리

clients : mon 클라이언트 데몬이 있는 디렉토리

doc : 메뉴얼이 들어있는 디렉토리

etc : 설정파일이 들어있는 디렉토리

mon.d : 모니터링 프로그램이 들어있는 디렉토리

muxpect : 멀티플렉스 TCP라는 기능을 위해 개발되어지고 있는 프로그램

state.d : pid 가 들어갈 자리

utils : mon 용 유틸리티가 들어있는 자리


  - /etc/mon 폴더를 만들고 필요한 설정 파일 복사

  - mkdir /etc/mon

  - cp /usr/local/mon/etc/example.cf /etc/mon/mon.cf

  - cp /usr/local/mon/etc/auth.cf /etc/mon/auth.cf


4. mon.cf 수정

  - vi /etc/mon/mon.cf  (http 서비스를 echo 형식으로 찍음!!)


5. echo.alert 생성

  - vi /usr/local/mon/alert.d/echo.alert

#!/bin/sh

echo "`date`$*" >> /var/log/mon.alert.log;   <-- 해당 /var/log로 찍는다.

** 만든 후 실행 권한 준다 chmod 755 /usr/local/mon/alert.d/echo.alert


6. mon 스크립트 생성

  - vi /etc/init.d/mon

#!/bin/bash
MON_HOME=/usr/local/mon # 본인이 설치한 폴더위치
MON_CF=/etc/mon # mon.cf 설정파일이 들어있는 위치
case "$1" in
start)
if [ -f $MON_HOME/mon.pid ]; then
echo "mon already started"
exit
fi
echo "Starting Mon"
$MON_HOME/mon -c $MON_CF/mon.cf -L $MON_HOME -P $MON_HOME/mon.pid &
;;
stop)
if [ -f $MON_HOME/mon.pid ]; then
echo "Stopping Mon"
kill -9 `cat $MON_HOME/mon.pid`
rm -f $MON_HOME/mon.pid
else
echo "no server pid, server doesn't seem to run"
fi
;;
status)
echo "doing good"
;;
*)
echo "Usage: $0 {start|stop|status|reload|restart}"
exit 1
esac
exit 0

** 생성후 실행권한 준다. chmod 755 /etc/init.d/mon


7. mon 서비스 시작 및 http 서비스 확인

  - /etc/init.d/mon start

  - /etc/init.d/httpd stop , /etc/init.d/httpd start 하여 해당 echo메시지가 잘 찍히는지 확인.

출처 : http://wnstjqdl.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-Mon-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95http



저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

mysql+mon+heartbeat 구성방법 (mysql HA, mysql dual replication)  (0) 2016.01.08
리눅스 mon mysql 모니터링 설정  (0) 2016.01.08
nagios check_megaraid_sas 설정 (nagios megaraid)  (0) 2016.01.08
perl 이용시 Can't locate ExtUtils/MakeMaker.pm 해결방법  (0) 2016.01.06
mod_cband 이용 아파치 트래픽 제어, 트래픽 모니터링  (0) 2016.01.06
Posted by 뱀고기*

nagios check_megaraid_sas 설정 (nagios megaraid)

Linux 2016. 1. 8. 14:50

nagios 서버는 이미 설치 완료되었다는 가정하에 클라이언트 부분부터 설정 시작


설정하기 앞서 개념설명


nagios core - 로컬 호스트 모니터링, 간단하게 ping이나 포트로 원격지 서버가 작동하는지도 테스트 가능


nagios plugin - 모니터링을 위한 플러그인 다양한 플러그인이 존재한다(http체크, raid체크등...) nagios 웹에서 추가 플러그인을 다운받아 사용 가능하다


nrpe - 원격 서버 모니터링을 할 수 있다. 기본적으로 nrpe가 없어도 핑이나 포트체크로 원격서버를 체크하는것도 가능하지만


상세한 정보를 얻으려면(cpu사용량이나 지금같이 메가레이드로 디스크 모니터링등등) ping이나 포트체크 정도로는 불가능하기때문에 nrpe를 설치하여 모니터링한다


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


nagios 서버는 이미 yum install nagios nagios-devel nagios-plugins-nrpe nagios-plugins 설치가 완료되었다는 가정하에 시작 클라이언트 설정 시작

nrpe는 서버와 클라이언트 양쪽다 설치해줘야함, nagios 서버가 설치 안되었다면


nagios 서버 설치방법 : http://jook.pe.kr/xe/linux/2347


#클라이언트 nrpe 설치


# nrpe 설치 위한 레파지토리 추가

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm




# 레파지토리 설치

rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.i686.rpm




# nrpe 설치

yum install -y nagios-nrpe nagios-plugins




# nagios 서버에서 클라이언트 서버로 nrpe 접근 허용

vi /etc/nagios/nrpe.cfg




allowed_hosts= 부분에 작성되어있는 ip 지우고 nagios 서버 아이피 추가





# 클라이언트 서버에 플러그인 등록

#플러그인 다운로드 :


check_megaraid_sas


#위에것 다운받기 싫다면, 아래 링크로 들어가서 다운받아도 됨


https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=680&cf_id=24






# 다운로드 받은 플러그인을 nagios 플러그인 디렉토리에 넣어준다
mv check_megaraid_sas /usr/lib64/nagios/plugins/




# 파일권한 변경

chmod 755 /usr/lib64/nagios/plugins/check_megaraid_sas




# 클라이언트 서버에 플러그인 등록

vi /etc/nagios/nrpe.cfg





# command 모여있는곳에 추가

command[check_megaraid]=/usr/lib64/nagios/plugins/check_megaraid_sas


# 괄호부분은 사용하고싶은대로 이름을 변경해도 된다


# 위에 작업은 check_megaraid_sas 플러그인을 사용하기 위해 등록하는 작업, 클라이언트에 플러그인을 등록하면 nagios 서버에서 클라이언트 플러그인을 실행 할 수 있다.






# check_megaraid_sas플러그인 수정

# 플러그인 파일을 열어보면 megaraid 설치 경로가 실제 설치경로랑 다르게 되어있을것이다 설치경로가 맞다면 변#경을 안해도 되지만 보통 메가레이드를 rpm 설치시 /opt밑에 설치되므로 경로를 변경해줘야한다

vi /usr/lib64/nagios/plugins/check_megaraid_sas




# megaclibin 부분을 찾아서 아래와 같이 경로를 변경해준다

my $megaclibin = '/opt/MegaRAID/MegaCli'; 






# nrpe 시작

/etc/init.d/nrpe start



#서버 재부팅시 nrpe 시작등록


chkconfig --level 345 nrpe on






# nagios 서버 objects 안에 있는 클라이언트 설정파일에 메가레이드 등록


#nagios 서버쪽으로 와서 /etc/nagios/object 아래 클라이언트 설정파일에 등록해준다


define service{

        use             raid-public

        host_name       클라이언트 IP

        service_description     MegaRaid check

        check_command   check_nrpe!check_megaraid

}


# nagios 서버 재시작

/etc/init.d/nagios restart

저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

리눅스 mon mysql 모니터링 설정  (0) 2016.01.08
mysql mon 설치(http)  (0) 2016.01.08
perl 이용시 Can't locate ExtUtils/MakeMaker.pm 해결방법  (0) 2016.01.06
mod_cband 이용 아파치 트래픽 제어, 트래픽 모니터링  (0) 2016.01.06
도메인별로 MRTG 트래픽 그리기  (0) 2016.01.06
Posted by 뱀고기*
이전페이지 다음페이지
블로그 이미지

by 뱀고기*

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

글 보관함

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

카테고리

분류 전체보기 (96)
Network (1)
Linux (55)
Mysql (17)
Apache (13)
SVN (2)
Cubrid (4)
Nginx (0)
AWS (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
뱀고기*'s Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

리눅스 SUPERUSER

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (96)
    • Network (1)
    • Linux (55)
    • Mysql (17)
    • Apache (13)
    • SVN (2)
    • Cubrid (4)
    • Nginx (0)
    • AWS (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바