Procházet zdrojové kódy

AMBARI-17170. Logfeeder should read every service/ambari logs (oleewere)

oleewere před 9 roky
rodič
revize
64613ae9b7

+ 0 - 12
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/configuration/logfeeder-env.xml

@@ -41,18 +41,6 @@
     </value-attributes>
     <on-ambari-upgrade add="true"/>
   </property>
-  <property>
-    <name>logfeeder_user</name>
-    <value>logfeeder</value>
-    <property-type>USER</property-type>
-    <description>logfeeder user</description>
-    <display-name>Logsfeeder User</display-name>
-    <value-attributes>
-      <type>user</type>
-      <overridable>false</overridable>
-    </value-attributes>
-    <on-ambari-upgrade add="true"/>
-  </property>
   <property>
     <name>logfeeder_max_mem</name>
     <value>512m</value>

+ 1 - 1
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/kerberos.json

@@ -80,7 +80,7 @@
               "keytab": {
                 "file": "${keytab_dir}/logfeeder.service.keytab",
                 "owner": {
-                  "name": "${logfeeder-env/logfeeder_user}",
+                  "name": "root",
                   "access": "r"
                 },
                 "group": {

+ 5 - 10
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/logfeeder.py

@@ -16,14 +16,13 @@ See the License for the specific language governing permissions and
 limitations under the License.
 
 """
-import os
-import grp
+
+import getpass
 from resource_management.core.resources.system import Execute, File
 from resource_management.libraries.functions.format import format
 from resource_management.libraries.functions.check_process_status import check_process_status
 from resource_management.libraries.script.script import Script
 from setup_logfeeder import setup_logfeeder
-from resource_management.core.resources.accounts import User
 from logsearch_common import kill_process
 
 
@@ -37,9 +36,6 @@ class LogFeeder(Script):
   def configure(self, env, upgrade_type=None):
     import params
     env.set_params(params)
-    User(params.logfeeder_user,
-         groups=[params.user_group, grp.getgrgid(os.getegid()).gr_name],
-         fetch_nonlocal_groups = params.fetch_nonlocal_groups)
 
     setup_logfeeder()
 
@@ -47,16 +43,15 @@ class LogFeeder(Script):
     import params
     env.set_params(params)
     self.configure(env)
-    Execute(format("{logfeeder_dir}/run.sh"),
-            environment={'LOGFEEDER_INCLUDE': format('{logsearch_logfeeder_conf}/logfeeder-env.sh')},
-            user = params.logfeeder_user
+    Execute(format("{sudo} {logfeeder_dir}/run.sh"),
+            environment={'LOGFEEDER_INCLUDE': format('{logsearch_logfeeder_conf}/logfeeder-env.sh')}
             )
 
   def stop(self, env, upgrade_type=None):
     import params
     env.set_params(params)
 
-    kill_process(params.logfeeder_pid_file, params.logfeeder_user, params.logfeeder_log_dir)
+    kill_process(params.logfeeder_pid_file, getpass.getuser(), params.logfeeder_log_dir)
 
   def status(self, env):
     import status_params

+ 0 - 1
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/params.py

@@ -306,7 +306,6 @@ logsearch_auth_external_login_url = config['configurations']['logsearch-properti
 logfeeder_dir = "/usr/lib/ambari-logsearch-logfeeder"
 
 # logfeeder-env configs
-logfeeder_user = config['configurations']['logfeeder-env']['logfeeder_user']
 logfeeder_log_dir = config['configurations']['logfeeder-env']['logfeeder_log_dir']
 logfeeder_log = logfeeder_log_dir + '/logfeeder.out'
 logfeeder_max_mem = config['configurations']['logfeeder-env']['logfeeder_max_mem']

+ 4 - 21
ambari-server/src/main/resources/common-services/LOGSEARCH/0.5.0/package/scripts/setup_logfeeder.py

@@ -28,62 +28,45 @@ def setup_logfeeder():
              params.logfeeder_checkpoint_folder],
             mode=0755,
             cd_access='a',
-            owner=params.logfeeder_user,
-            group=params.user_group,
             create_parents=True
             )
 
   Directory([params.logfeeder_dir, params.logsearch_logfeeder_conf],
             mode=0755,
             cd_access='a',
-            owner=params.logfeeder_user,
-            group=params.user_group,
             create_parents=True,
             recursive_ownership=True
             )
 
   File(params.logfeeder_log,
        mode=0644,
-       owner=params.logfeeder_user,
-       group=params.user_group,
        content=''
        )
 
   File(format("{logsearch_logfeeder_conf}/logfeeder.properties"),
        content=Template("logfeeder.properties.j2"),
-       owner=params.logfeeder_user,
-       group=params.user_group
        )
 
   File(format("{logsearch_logfeeder_conf}/logfeeder-env.sh"),
        content=InlineTemplate(params.logfeeder_env_content),
-       mode=0755,
-       owner=params.logfeeder_user,
-       group=params.user_group
+       mode=0755
        )
 
   File(format("{logsearch_logfeeder_conf}/log4j.xml"),
-       content=InlineTemplate(params.logfeeder_log4j_content),
-       owner=params.logfeeder_user,
-       group=params.user_group
+       content=InlineTemplate(params.logfeeder_log4j_content)
        )
 
   File(format("{logsearch_logfeeder_conf}/grok-patterns"),
        content=Template("grok-patterns.j2"),
-       owner=params.logfeeder_user,
-       group=params.user_group,
        encoding="utf-8"
        )
 
   for file_name in params.logfeeder_config_file_names:
     File(format("{logsearch_logfeeder_conf}/" + file_name),
-         content=Template(file_name + ".j2"),
-         owner=params.logfeeder_user,
-         group=params.user_group,
+         content=Template(file_name + ".j2")
          )
   if params.security_enabled:
     File(format("{logfeeder_jaas_file}"),
-         content=Template("logfeeder_jaas.conf.j2"),
-         owner=params.logfeeder_user
+         content=Template("logfeeder_jaas.conf.j2")
          )
 

+ 9 - 40
ambari-server/src/test/python/stacks/2.4/LOGSEARCH/test_logfeeder.py

@@ -27,35 +27,24 @@ class TestLogFeeder(RMFTestCase):
   STACK_VERSION = "2.4"
 
   def configureResourcesCalled(self):
-    self.assertResourceCalled('User', 'logfeeder',
-                              groups = ['hadoop', 'agent_group'],
-                              fetch_nonlocal_groups = True)
     self.assertResourceCalled('Directory', '/var/log/ambari-logsearch-logfeeder',
                               create_parents=True,
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               cd_access='a',
                               mode=0755
                               )
     self.assertResourceCalled('Directory', '/var/run/ambari-logsearch-logfeeder',
                               create_parents=True,
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               cd_access='a',
                               mode=0755
                               )
     self.assertResourceCalled('Directory', '/etc/ambari-logsearch-logfeeder/conf/checkpoints',
                               create_parents=True,
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               cd_access='a',
                               mode=0755
                               )
 
     self.assertResourceCalled('Directory', '/usr/lib/ambari-logsearch-logfeeder',
                               create_parents=True,
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               recursive_ownership=True,
                               cd_access='a',
                               mode=0755
@@ -63,38 +52,26 @@ class TestLogFeeder(RMFTestCase):
     self.assertResourceCalled('Directory', '/etc/ambari-logsearch-logfeeder/conf',
                               create_parents=True,
                               recursive_ownership=True,
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               cd_access='a',
                               mode=0755
                               )
 
     self.assertResourceCalled('File', '/var/log/ambari-logsearch-logfeeder/logfeeder.out',
                               mode=0644,
-                              content='',
-                              owner = 'logfeeder',
-                              group = 'hadoop'
+                              content=''
                               )
     self.assertResourceCalled('File', '/etc/ambari-logsearch-logfeeder/conf/logfeeder.properties',
-                              content=Template('logfeeder.properties.j2'),
-                              owner = 'logfeeder',
-                              group = 'hadoop'
+                              content=Template('logfeeder.properties.j2')
                               )
     self.assertResourceCalled('File', '/etc/ambari-logsearch-logfeeder/conf/logfeeder-env.sh',
                               mode=0755,
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               content=InlineTemplate(self.getConfig()['configurations']['logfeeder-env']['content'])
                               )
     self.assertResourceCalled('File', '/etc/ambari-logsearch-logfeeder/conf/log4j.xml',
-                              content=InlineTemplate(self.getConfig()['configurations']['logfeeder-log4j']['content']),
-                              owner = 'logfeeder',
-                              group = 'hadoop'
+                              content=InlineTemplate(self.getConfig()['configurations']['logfeeder-log4j']['content'])
                               )
     self.assertResourceCalled('File', '/etc/ambari-logsearch-logfeeder/conf/grok-patterns',
                               content=Template('grok-patterns.j2'),
-                              owner = 'logfeeder',
-                              group = 'hadoop',
                               encoding='utf-8'
                               )
 
@@ -106,14 +83,10 @@ class TestLogFeeder(RMFTestCase):
 
     for file_name in logfeeder_config_file_names:
       self.assertResourceCalled('File', '/etc/ambari-logsearch-logfeeder/conf/' + file_name,
-                                content=Template(file_name + ".j2"),
-                                owner = 'logfeeder',
-                                group = 'hadoop'
+                                content=Template(file_name + ".j2")
                                 )
-  @patch('grp.getgrgid')
-  def test_configure_default(self, grp_mock):
-    grp_mock.return_value = MagicMock()
-    grp_mock.return_value.gr_name = 'agent_group'
+
+  def test_configure_default(self):
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/logfeeder.py",
                        classname="LogFeeder",
                        command="configure",
@@ -125,10 +98,7 @@ class TestLogFeeder(RMFTestCase):
     self.configureResourcesCalled()
     self.assertNoMoreResources()
 
-  @patch('grp.getgrgid')
-  def test_start_default(self, grp_mock):
-    grp_mock.return_value = MagicMock()
-    grp_mock.return_value.gr_name = 'agent_group'
+  def test_start_default(self):
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/logfeeder.py",
                        classname="LogFeeder",
                        command="start",
@@ -138,8 +108,7 @@ class TestLogFeeder(RMFTestCase):
                        )
 
     self.configureResourcesCalled()
-    self.assertResourceCalled('Execute', '/usr/lib/ambari-logsearch-logfeeder/run.sh',
+    self.assertResourceCalled('Execute', 'ambari-sudo.sh /usr/lib/ambari-logsearch-logfeeder/run.sh',
                               environment={
-                                'LOGFEEDER_INCLUDE': '/etc/ambari-logsearch-logfeeder/conf/logfeeder-env.sh'},
-                              user = 'logfeeder'
+                                'LOGFEEDER_INCLUDE': '/etc/ambari-logsearch-logfeeder/conf/logfeeder-env.sh'}
                               )

+ 0 - 2
ambari-server/src/test/python/stacks/2.4/configs/default.json

@@ -292,8 +292,6 @@
       },
       "logfeeder-env": {
         "logsearch_ui_port": "61888",
-        "logfeeder_user": "logfeeder",
-        "logfeeder_group": "logfeeder",
         "logfeeder_pid_dir": "/var/run/ambari-logsearch-logfeeder",
         "logfeeder_log_dir": "/var/log/ambari-logsearch-logfeeder",
         "logfeeder_max_mem": "512m",

+ 12 - 19
ambari-web/app/data/HDP2/site_properties.js

@@ -1835,96 +1835,89 @@ var hdp2properties = [
     "category": "Advanced logfeeder-env",
     "index": 2
   },
-  {
-    "name": "logfeeder_user",
-    "serviceName": "LOGSEARCH",
-    "filename": "logfeeder-env.xml",
-    "category": "Advanced logfeeder-env",
-    "index": 3
-  },
   {
     "name": "logfeeder_max_mem",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 4
+    "index": 3
   },
   {
     "name": "logfeeder_solr_service_logs_enable",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 5
+    "index": 4
   },
   {
     "name": "logfeeder_solr_audit_logs_enable",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 6
+    "index": 5
   },
   {
     "name": "logfeeder_truststore_location",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 7
+    "index": 6
   },
   {
     "name": "logfeeder_truststore_type",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 8
+    "index": 7
   },
   {
     "name": "logfeeder_truststore_password",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 9
+    "index": 8
   },
   {
     "name": "logfeeder_keystore_location",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 10
+    "index": 9
   },
   {
     "name": "logfeeder_keystore_type",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 11
+    "index": 10
   },
   {
     "name": "logfeeder_keystore_password",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 12
+    "index": 11
   },
   {
     "name": "logfeeder_kerberos_keytab",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 13
+    "index": 12
   },
   {
     "name": "logfeeder_kerberos_principal",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 14
+    "index": 13
   },
   {
     "name": "content",
     "serviceName": "LOGSEARCH",
     "filename": "logfeeder-env.xml",
     "category": "Advanced logfeeder-env",
-    "index": 15
+    "index": 14
   },
   /*logfeeder-log4j*/
   {