소스 검색

AMBARI-9348 AMS: Add support for pid/log directory paths customization (dsen)

Dmytro Sen 10 년 전
부모
커밋
97de6e8c40

+ 0 - 16
ambari-metrics/ambari-metrics-assembly/pom.xml

@@ -263,12 +263,6 @@
                       <directory>/etc/ambari-metrics-monitor/conf</directory>
                       <configuration>true</configuration>
                     </mapping>
-                    <mapping>
-                      <directory>/var/run/ambari-metrics-monitor</directory>
-                    </mapping>
-                    <mapping>
-                      <directory>/var/log/ambari-metrics-monitor</directory>
-                    </mapping>
                     <mapping>
                       <directory>/usr/sbin</directory>
                       <filemode>755</filemode>
@@ -405,12 +399,6 @@
                     <mapping>
                       <directory>/var/run/ams-hbase</directory>
                     </mapping>
-                    <mapping>
-                      <directory>/var/run/ambari-metrics-collector</directory>
-                    </mapping>
-                    <mapping>
-                      <directory>/var/log/ambari-metrics-collector</directory>
-                    </mapping>
                     <mapping>
                       <directory>/var/lib/ambari-metrics-collector</directory>
                     </mapping>
@@ -602,15 +590,11 @@
                 <data>
                   <type>template</type>
                   <paths>
-                    <path>/var/run/ambari-metrics-monitor</path>
-                    <path>/var/log/ambari-metrics-monitor</path>
                     <path>/etc/ambari-metrics-monitor/conf</path>
                     <path>/usr/lib/ambari-metrics-collector</path>
                     <path>/etc/ambari-metrics-collector/conf</path>
                     <path>/etc/ams-hbase/conf</path>
-                    <path>/var/run/ambari-metrics-collector</path>
                     <path>/var/run/ams-hbase</path>
-                    <path>/var/log/ambari-metrics-collector</path>
                     <path>/var/lib/ambari-metrics-collector</path>
                     <path>/usr/lib/ambari-metrics-hadoop-sink</path>
                     <path>/usr/lib/ambari-metrics-kafka-sink</path>

+ 8 - 2
ambari-metrics/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector

@@ -177,8 +177,14 @@ else
 fi
 
 # set pid dir path
-if [[ -n "${AMS_PID_DIR}" ]]; then
-  PIDFILE=${AMS_PID_DIR}/ambari-metrics-collector.pid
+if [[ -n "${AMS_COLLECTOR_PID_DIR}" ]]; then
+  PIDFILE=${AMS_COLLECTOR_PID_DIR}/ambari-metrics-collector.pid
+fi
+
+if [[ -n "${AMS_HBASE_PID_DIR}" ]]; then
+  HBASE_ZK_PID=${AMS_HBASE_PID_DIR}/hbase-hbase-zookeeper.pid
+  HBASE_MASTER_PID=${AMS_HBASE_PID_DIR}/hbase-hbase-master.pid
+  HBASE_RS_PID=${AMS_HBASE_PID_DIR}/hbase-hbase-regionserver.pid
 fi
 
 # set out file path

+ 0 - 6
ambari-metrics/ambari-metrics-timelineservice/pom.xml

@@ -238,12 +238,6 @@
             <mapping>
               <directory>/var/run/ams-hbase</directory>
             </mapping>
-            <mapping>
-              <directory>/var/run/ambari-metrics-collector</directory>
-            </mapping>
-            <mapping>
-              <directory>/var/log/ambari-metrics-collector</directory>
-            </mapping>
             <mapping>
               <directory>/var/lib/ambari-metrics-collector</directory>
             </mapping>

+ 14 - 11
ambari-server/src/main/resources/common-services/AMS/0.1.0/configuration/ams-env.xml

@@ -49,22 +49,25 @@
   <property>
     <name>content</name>
     <value>
-      # Set environment variables here.
+# Set environment variables here.
 
-      # The java implementation to use. Java 1.6 required.
-      export JAVA_HOME={{java64_home}}
+# The java implementation to use. Java 1.6 required.
+export JAVA_HOME={{java64_home}}
 
-      # Collector Log directory for log4j
-      export AMS_COLLECTOR_LOG_DIR={{ams_collector_log_dir}}
+# Collector Log directory for log4j
+export AMS_COLLECTOR_LOG_DIR={{ams_collector_log_dir}}
 
-      # Monitor Log directory for outfile
-      export AMS_MONITOR_LOG_DIR={{ams_monitor_log_dir}}
+# Monitor Log directory for outfile
+export AMS_MONITOR_LOG_DIR={{ams_monitor_log_dir}}
 
-      # Collector pid directory
-      export AMS_COLLECTOR_PID_DIR={{ams_collector_pid_dir}}
+# Collector pid directory
+export AMS_COLLECTOR_PID_DIR={{ams_collector_pid_dir}}
 
-      # Monitor pid directory
-      export AMS_MONITOR_PID_DIR={{ams_monitor_pid_dir}}
+# Monitor pid directory
+export AMS_MONITOR_PID_DIR={{ams_monitor_pid_dir}}
+
+# AMS HBase pid directory
+export AMS_HBASE_PID_DIR={{hbase_pid_dir}}
     </value>
   </property>
 

+ 8 - 3
ambari-server/src/main/resources/common-services/AMS/0.1.0/package/alerts/alert_ambari_metrics_monitor.py

@@ -18,6 +18,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 """
 
+import os
 import socket
 
 from resource_management.libraries.functions.check_process_status import check_process_status
@@ -27,15 +28,14 @@ RESULT_CODE_OK = 'OK'
 RESULT_CODE_CRITICAL = 'CRITICAL'
 RESULT_CODE_UNKNOWN = 'UNKNOWN'
 
-AMS_MONITOR_PID_PATH = '/var/run/ambari-metrics-monitor/ambari-metrics-monitor.pid'
-
+AMS_MONITOR_PID_DIR = '{{ams-env/ams_monitor_pid_dir}}'
 
 def get_tokens():
   """
   Returns a tuple of tokens in the format {{site/property}} that will be used
   to build the dictionary passed into execute
   """
-  return ()
+  return (AMS_MONITOR_PID_DIR,)
 
 
 def is_monitor_process_live(pid_file):
@@ -67,6 +67,11 @@ def execute(parameters=None, host_name=None):
   if parameters is None:
     return (RESULT_CODE_UNKNOWN, ['There were no parameters supplied to the script.'])
 
+  if set([AMS_MONITOR_PID_DIR]).issubset(parameters):
+    AMS_MONITOR_PID_PATH = os.path.join(parameters[AMS_MONITOR_PID_DIR], 'ambari-metrics-monitor.pid')
+  else:
+    return (RESULT_CODE_UNKNOWN, ['The ams_monitor_pid_dir is a required parameter.'])
+
   if host_name is None:
     host_name = socket.getfqdn()