-
- define("MONITORED_IP", "172.16.0.191") //모니터링되는 서버 IP 주소도 로컬 주소입니다
- Define("DB_SERVER", "172.16.7.2"); //데이터가 저장된 서버의 IP 주소
- define("DB_USER", "root");
- define("DB_PWD", " 111111");
- define("DB_NMAE","performance");
-
- class MyConnect{
- 공용 함수 connect($db_server,$db_user,$db_pwd,$db_name){
-
- $ conn = mysql_connect($db_server,$db_user,$db_pwd);
- if (!$conn){
- die('데이터베이스 연결 실패: ' . mysql_error());
- }
- $flag = mysql_select_db($db_name,$conn);
- if(!$flag){
- echo "
데이터베이스 연결 오류! ";exit();
- }else{
- mysql_query("SET NAMES UTF8");
- }
- }
- }
- ?>
코드 복사
2. 서버 성능 데이터 파일 get_used_status.php를 가져옵니다.
-
-
/** - * 서버 성능 CPU, 메모리, 하드 디스크 및 기타 사용률 확인
- * bbs.it-home.org 편집
- */
- /*데이터 연결 시작*/
- include("conn.php");
- $obj_MyConnect = new MyConnect();
- $obj_MyConnect -> connect(DB_SERVER,DB_USER,DB_PWD,DB_NMAE)
- /*데이터 연결 끝 */
-
- function get_used_status(){
- $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");/ /특정 순간의 시스템 CPU 및 메모리 사용량 가져오기
- $rs = "";
- while(!feof($fp)){
- $rs .= fread($fp,1024);
- }
- pclose($fp);
- $sys_info = 폭발("n",$rs);
$tast_info = 폭발(",",$sys_info [3]);//배열 처리
- $cpu_info =explore(",",$sys_info[4]); //CPU 점유 배열
- $mem_info =explore(",",$sys_info[5 ] ); //메모리 점유 배열
//실행 중인 프로세스 수
- $tast_running = Trim(trim($tast_info[1],'running'))
-
-
- //CPU 사용량
- $cpu_usage = Trim(trim($cpu_info[0],'Cpu(s): '),'%us') //백분율
-
- / /메모리 사용량
- $mem_total = Trim(trim($mem_info[0],'Mem: '),'k total')
- $mem_used = Trim($mem_info[1] ,'k 사용됨') ;
- $mem_usage = round(100*intval($mem_used)/intval($mem_total),2); //백분율
-
*/
- $fp = popen('df -lh | grep -E "^(/)"',"r");
- $rs = fread($fp,1024) ;
- pclose( $fp);
- $rs = preg_replace("/s{2,}/",' ',$rs); //여러 공백을 "_"로 바꿉니다.
- $ hd =explore(" ",$ rs);
- $hd_avail = Trim($hd[3],'G'); //디스크 사용 가능 공간 크기 단위 G
- $hd_usage = Trim($hd[4 ],'%') / /마운트 포인트 백분율
- //print_r($hd);
- /*하드 디스크 사용 종료*/
-
- //감지 시간
- $fp = popen("date "%Y- %m-%d %H:%M"","r");
- $rs = fread($fp,1024);
- pclose($fp)
- $Detection_time = Trim($ rs);
-
- /*IP 주소 가져오기 시작*/
- /*
- $fp = popen('ifconfig eth0 | grep -E "(inet addr )"','r');
- $rs = fread($fp,1024);
- pclose($fp);
- $rs = preg_replace("/s{2,}/", ' ',trim($rs)) ; //여러 공백을 "_"로 대체
- $rs =explore(" ",$rs);
- $ip = Trim($rs[1], 'addr:');
- */
- /*IP 주소 가져오기end*/
- /*
- $file_name = "/tmp/data.txt"; // 절대 경로: homedata.dat
- $file_pointer = fopen($file_name, " a "); // "w"는 모드입니다. 자세한 내용은 아래를 참조하세요.
- fwrite($file_pointer,$ip); // 먼저 파일을 0바이트 크기로 자른 다음 씁니다.
- fclose($file_pointer) ; // 끝
- */
-
- return array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage ,'hd_avail'=>$hd_avail,'hd_usage'=> ;$hd_usage,'tast_running'=>$tast_running,'Detection_time'=>$Detection_time);
- }
-
- // echo date("Y-m-d H:i:s",time() )."
";
-
- $status=get_used_status();
-
- $sql = "성능에 삽입(ip,cpu_usage,mem_usage,hd_avail,hd_usage,tast_running,Detection_time) ";
- $sql .= " value('".MONITORED_IP."','".$status['cpu_usage']."',' ".$status['mem_usage']."','" .$status['hd_avail']."','".$status['hd_usage']."','".$status['tast_running' ]."','".$status['Detection_time'] ."')";
- $query = mysql_query($sql) or die("SQL 문 실행 실패!");
- unset($ status);
-
- //echo date(" Y-m-d H:i:s",time())."
";
- ?>
-
코드 복사
|