원격으로 접속하여 쿼리를 날닐때 원격서버의 데몬이 죽었나 살았나를 모르면
한참을 대기하여야 하는데..
원격서버에 Ping을 날려서 서버가 죽었는지 살았는지를 확인한후
쿼리를 날렸는데..
데몬이 죽어있어서 한참을 대기하더군요..
한참을 대기하지 않도록 데몬의 상태를 파악할 수 있는 방안이 없을까요??
3306 포트를 체크하시는 방법도 있고 SNMP 대몬을 이용하실수도 있습니다. DB 서버에 SNMP를 설치하여 mysqld 프로세스 갯수를 모니터링 할 수 있습니다. 아래는 당사 DB3 서버에 SNMP 쿼리를 날린 결과입니다. $ pkg_info | grep snmp net-snmp-5.3.1_4 An extendable SNMP implementation $ snmpwalk -Os -v 1 -c clacnf db1 prCount.1 prCount.1 = INTEGER: 155 $ snmpwalk -Os -v 1 -c public db3 pr prIndex.1 = INTEGER: 1 prIndex.2 = INTEGER: 2 prIndex.3 = INTEGER: 3 prIndex.4 = INTEGER: 4 prNames.1 = STRING: mysqld prNames.2 = STRING: mountd prNames.3 = STRING: ntalkd prNames.4 = STRING: sendmail prMin.1 = INTEGER: 0 prMin.2 = INTEGER: 0 prMin.3 = INTEGER: 0 prMin.4 = INTEGER: 1 prMax.1 = INTEGER: 0 prMax.2 = INTEGER: 0 prMax.3 = INTEGER: 4 prMax.4 = INTEGER: 10 prCount.1 = INTEGER: 155 prCount.2 = INTEGER: 0 prCount.3 = INTEGER: 0 prCount.4 = INTEGER: 2 prErrorFlag.1 = INTEGER: 0 prErrorFlag.2 = INTEGER: 1 prErrorFlag.3 = INTEGER: 0 prErrorFlag.4 = INTEGER: 0 prErrMessage.1 = STRING: prErrMessage.2 = STRING: No mountd process running. prErrMessage.3 = STRING: prErrMessage.4 = STRING: prErrFix.1 = INTEGER: 0 prErrFix.2 = INTEGER: 0 prErrFix.3 = INTEGER: 0 prErrFix.4 = INTEGER: 0 prErrFixCmd.1 = STRING: prErrFixCmd.2 = STRING: prErrFixCmd.3 = STRING: prErrFixCmd.4 = STRING: