MeterMaid의 구성은 msg.conf에 저장되며 configutil에서 유지 관리됩니다. 다음은 현재 MeterMaid에서 지원하는 설정입니다. 기본값은 괄호 안에 있습니다. MeterMaid 매개 변수의 전체 목록은 Sun Java System Messaging Server 6.3 Administration Reference의 configutil Parameters를 참조하십시오.
local.metermaid.enable Watcher에서 MeterMaid를 시작하고 제어할 수 있도록 MeterMaid 데몬을 실행하는 시스템에서 이 설정을 yes로 설정해야 합니다.
logfile.metermaid.*. 이 설정은 IMAP, POP 및 기타 서비스에서 사용되는 것과 같습니다. 기본적으로 MeterMaid는 msg-svr-base/data/log/metermaid에 로그 파일을 기록합니다.
metermaid.config.listenaddr(INADDR_ANY ). MeterMaid를 바인드할 주소입니다. 대부분의 시스템에서는 기본값을 변경할 필요가 없지만, 홈이 여럿인 시스템이나 HA 시스템의 경우에는 여기에 적절한 주소를 지정하는 것이 좋습니다.
metermaid.config.maxthreads(20). MeterMaid 서버는 다중 스레드이며 작업을 예약하는 스레드 풀을 유지 관리합니다. 이 값은 MeterMaid에서 사용되는 스레드의 최대 수를 설정합니다. CPU가 5개 이상인 시스템에서 이 값을 늘리면 전체 처리량이 늘어납니다.
metermaid.config.port(63837). MeterMaid에서 연결을 수신하며 MeterMaid 클라이언트가 연결하는 포트입니다.
metermaid.config.secret(기본값 없음, 값 입력 필요). MeterMaid는 받는 연결을 인증하기 위해 클라이언트가 MeterMaid에 연결한 후 보내는 공유 비밀을 사용합니다.
metermaid.config.serverhost(기본값 없음, 값 입력 필요). 클라이언트가 연결하는 호스트 이름 또는 IP 주소입니다. metermaid.config.listenaddr와 같은 수도 있지만 Messaging Server 환경에 있는 특정 시스템 하나로 클라이언트를 보내는 특정 값이 있는 경우가 많습니다.
이 설정은 check_metermaid 클라이언트에서 사용됩니다.
metermaid.mtaclient.connectfrequency (15) connectfrequency 초마다 연결을 시도합니다. MeterMaid와 연결할 필요가 있는 클라이언트는 MeterMaid가 사용 불가능한 상태에서 계속 연결이 시도되지 않도록 이를 내부 억제로 사용합니다. 클라이언트가 MeterMaid와 통신할 수 없는 경우에는 MeterMaid가 이 연결을 차단하지 않은 것을 알리는 MTA 매핑 엔진에 "fail" 상태를 반환합니다.
예를 들어, check_metermaid.so가 MeterMaid와의 연결을 시도하지만 어떤 이유로 실패한 경우 metermaid.mtaclient.connectfrequency 에서 지정한 대로 다음 N초간은 추가적인 시도가 이루어지지 않습니다. MeterMaid가 작동하지 않는 경우, check_metermaid.so가 너무 자주 MeterMaid와의 연결을 시도하지 않게 해줍니다.
metermaid.mtaclient.connectwait(5). 클라이언트가 MeterMaid와의 연결을 기다리는 경우(초기 연결 또는 이미 설정된 연결 재사용), connectwait 초간 기다린 후에 "fail" 상태를 반환하고 이 연결이 계속되도록 허용합니다.
metermaid.mtaclient.debug(no). 이 옵션이 활성화되어 있으면 서버나 SMTP 서버의 스레드별 로그 파일에 클라이언트의 디버깅 정보가 출력됩니다.
metermaid.mtaclient.maxconns(3). 다중 스레드 서버를 지원하기 위해 클라이언트에서 MeterMaid에 대한 연결 풀을 유지 관리할 수 있습니다. 그러면 통신 중의 동시 처리를 늘릴 수 있습니다. 하지만 MeterMaid에서 수행되는 내부 잠금 때문에 특정 테이블에 대한 액세스는 한 번에 하나의 요청으로 제한되므로, 한 프로세스에서 여러 연결을 사용할 경우 이점이 제한될 수 있습니다.
metermaid.mtaclient.readwait(10). MeterMaid와 통신할 때 클라이언트는 readwait초간 기다린 다음 fail 상태를 반환하고 이 연결이 계속되도록 허용합니다.
마지막으로, 억제 테이블은 표시된 것과 같이 msg.conf에도 정의됩니다. 각 구성 매개 변수에 있는 *는 정의되는 특정 테이블의 이름을 나타냅니다. 예를 들어, internal이라는 테이블의 경우 첫 매개 변수는 metermaid.table.internal.data_type이 됩니다.
metermaid.table.*.data_type(string). MeterMaid는 테이블에서 문자열과 ipv4라는 두 가지 데이터를 지원할 수 있습니다. 문자열 데이터는 항목 당 255바이트로 제한되며 대소문자를 구분하거나 구분하지 않는 함수를 사용하여 비교할 수 있습니다(아래 metermaid.table.*.options 참조).
metermaid.table.*.max_entries(1000). MeterMaid에서 각 테이블을 초기화할 때 이만큼의 항목을 미리 할당합니다. MeterMaid는 오래된 항목이 만료되지 않은 경우에도 자동으로 리사이클합니다. 새 연결을 받은 경우 MeterMaid는 가장 오래 전에 액세스한 항목을 다시 사용합니다. 사이트에서 quota_time 중에 받은 연결을 캐시하기에 충분하도록 높은 값을 지정해야 합니다.
metermaid.table.*.options는 테이블의 동작 또는 특성을 정의하는 키워드를 포함하는, 쉼표로 분리된 목록입니다. 유효한 키워드는 다음과 같습니다.
nocase — 데이터 작업에서 모든 비교는 대소문자를 구분하지 않는 비교 함수를 통해 이루어집니다. (문자열 데이터의 경우에만 이 옵션이 유효합니다.)
penalize — quota_time초가 지나면 일반적으로 억제에서 연결 수를 0으로 재설정하지만, 축소 옵션을 사용하는 경우 억제에서는 quota_time동안 추가 연결 시도가 축소되도록 연결 수를 할당량만큼 줄입니다(0보다 작지는 않음). 예를 들어, 할당량이 5이고 quota_time이 60인 경우 시스템에서 처음 1분간 12개의 연결 시도를 받으면 처음 5개의 연결은 승인하고 나머지 7개의 연결은 거부합니다. 60초가 지난 후 특정 주소에 대한 연결 수는 7개로 줄지만 할당량보다는 높은 값으로 유지되어 연결 시도는 거부됩니다. 다시 60초가 지나는 동안 새로운 연결 시도가 이루어지지 않으면 연결 수는 다시 2로 줄며 MeterMaid에서 다시 연결 시도를 허용하게 됩니다.
metermaid.table.*.quota(100). 연결을 받으면 할당량을 기준으로 수를 계산합니다. quota_time초 동안 받은 연결의 수가 이 값을 초과하면 MeterMaid에서 연결을 거부합니다. (받는 연결에 미치는 실제 효과는 매핑 테이블에서 제어하며 결과는 추가 조사, 지연 또는 연결 거부 등이 될 수 있습니다.)
metermaid.table.*.quota_time(60). 이 값은 quota를 기준으로 연결 수를 계산하는 시간(초)을 지정합니다. 이 시간이 지나고 나면 이 테이블의 type에 따라 받는 주소에 대해 계산된 연결 수가 감소합니다.
metermaid.table.*storage(hash). MeterMaid에서는 hash와 splay의 두 가지 저장 방법을 사용할 수 있습니다. 기본 해시 테이블 방법을 사용하는 것이 좋지만 경우에 따라 스프레이 트리에서 더 빠른 조회를 제공할 수도 있습니다.
metermaid.table.*.type (throttle). 현재 MeterMaid에서 지원되는 유일한 테이블 유형은 throttle입니다. 이 테이블 유형에서는 데이터(보통 IP 주소)를 추적하여 quota_time초 동안 받는 연결을 quota개로 억제합니다.