Merge pull request #8 from tcpcloud/collectd_update

Global collectd update
diff --git a/linux/map.jinja b/linux/map.jinja
index 1945a40..cdc6123 100644
--- a/linux/map.jinja
+++ b/linux/map.jinja
@@ -15,7 +15,7 @@
         'doc_validity_pkgs': ['python-yaml'],
     },
     'Debian': {
-        'pkgs': ['python-apt','vim'],
+        'pkgs': ['python-apt','vim-nox', 'apt-transport-https'],
         'utc': true,
         'user': {},
         'group': {},
diff --git a/linux/meta/heka.yml b/linux/meta/heka.yml
index 7157ca3..52ebf36 100644
--- a/linux/meta/heka.yml
+++ b/linux/meta/heka.yml
@@ -1,19 +1,68 @@
-input:
-  linux_rsyslog_syslog:
-    engine: logstreamer
-    log_directory: /var/log
-    file_match: syslog\.?(?P<Index>\d+)?(.gz)?
-    priority: ["^Index"]
-    decoder: RsyslogDecoder
-  linux_rsyslog_auth:
-    engine: logstreamer
-    log_directory: /var/log
-    file_match: auth\.log\.?(?P<Index>\d+)?(.gz)?
-    priority: ["^Index"]
-    decoder: RsyslogDecoder
-  linux_rsyslog_kern:
-    engine: logstreamer
-    log_directory: /var/log
-    file_match: kern\.log\.?(?P<Index>\d+)?(.gz)?
-    priority: ["^Index"]
-    decoder: RsyslogDecoder
+log_collector:
+  decoder:
+    linux_syslog:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/decoders/generic_syslog.lua
+      module_dir: /usr/share/lma_collector_modules;/usr/share/heka/lua_modules
+      config:
+        syslog_pattern: '<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n'
+        fallback_syslog_pattern: '%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n'
+  input:
+    linux_log_stream:
+      engine: logstreamer
+      log_directory: "/var/log"
+      file_match: '(?P<Service>daemon\.log|cron\.log|haproxy\.log|kern\.log|auth\.log|syslog|messages|debug)'
+      differentiator: [ 'system.', 'Service' ]
+      decoder: "system_decoder"
+      splitter: "TokenSplitter"
+  filter:
+    linux_hdd_errors:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/filters/hdd_errors_counter.lua
+      module_dir: /usr/share/lma_collector_modules;/usr/share/heka/lua_modules
+      preserve_data: false
+      message_matcher: "Type == 'log' && Logger == 'system.kern'"
+      ticker_interval: 10
+      config:
+        grace_interval: 10
+        patterns: "/error%s.+([sv]d[a-z][a-z]?)%d?/ /([sv]d[a-z][a-z]?)%d?.+%serror/"
+    linux_logs_counter:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/filters/logs_counter.lua
+      module_dir: /usr/share/lma_collector_modules;/usr/share/heka/lua_modules
+      preserve_data: true
+      message_matcher: "Type == 'log' && Logger =~ /^openstack\\\\./"
+      ticker_interval: 1
+      config:
+        interval: 60
+        grace_interval: 30
+metric_collector:
+  filter:
+    linux_cpu_utilization:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/filters/afd.lua
+      module_dir: /usr/share/lma_collector_modules;/usr/share/heka/lua_modules
+      preserve_data: false
+      message_matcher: "(Type == 'metric' || Type == 'heka.sandbox.metric') && (Fields[name] == 'cpu_idle' || Fields[name] == 'cpu_wait')"
+      ticker_interval: 10
+      config:
+        afd_type: 'node'
+        afd_file: 'lma_alarms_controller_cpu'
+        afd_cluster_name: 'controller'
+        afd_logical_name: 'cpu'
+        activate_alerting: true
+        enable_notification: false
+    linux_swap_utilization:
+      engine: sandbox
+      module_file: /usr/share/lma_collector/filters/afd.lua
+      module_dir: /usr/share/lma_collector_modules;/usr/share/heka/lua_modules
+      preserve_data: false
+      message_matcher: "(Type == 'metric' || Type == 'heka.sandbox.metric') && (Fields[name] == 'swap_free' || Fields[name] == 'swap_io_in' || Fields[name] == 'swap_io_out' || Fields[name] == 'swap_percent_used')"
+      ticker_interval: 10
+      config:
+        afd_type: 'node'
+        afd_file: 'lma_alarms_controller_swap'
+        afd_cluster_name: 'controller'
+        afd_logical_name: 'swap'
+        activate_alerting: true
+        enable_notification: false
diff --git a/linux/meta/sensu.yml b/linux/meta/sensu.yml
index 708b1cc..2897cc7 100644
--- a/linux/meta/sensu.yml
+++ b/linux/meta/sensu.yml
@@ -1,6 +1,6 @@
 check:
   local_linux_system_zombie_procs:
-    command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -w 2 -c 7 -s Z"
+    command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -w 3 -c 7 -s Z"
     interval: 60
     occurrences: 3
     subscribers:
diff --git a/linux/system/certificate.sls b/linux/system/certificate.sls
index a342cbe..f9f39d4 100644
--- a/linux/system/certificate.sls
+++ b/linux/system/certificate.sls
@@ -3,19 +3,39 @@
 
 {%- if system.ca_certificates is defined %}
 
-{%- for certificate in system.ca_certificates %}
+linux_system_ca_certificates:
+  pkg.installed:
+    - name: ca-certificates
+{%- if system.ca_certificates is mapping %}
 
+{%- for name, cert in system.ca_certificates.iteritems() %}
+{{ system.ca_certs_dir }}/{{ name }}.crt:
+  file.managed:
+  - contents_pillar: "linux:system:ca_certificates:{{ name }}"
+  - watch_in:
+    - cmd: update_certificates
+  - require:
+    - pkg: linux_system_ca_certificates
+{%- endfor %}
+
+{%- else %}
+{#- salt-pki way #}
+
+{%- for certificate in system.ca_certificates %}
 {{ system.ca_certs_dir }}/{{ certificate }}.crt:
   file.managed:
   - source: salt://pki/{{ certificate }}/{{ certificate }}-chain.cert.pem
   - watch_in:
     - cmd: update_certificates
-
+  - require:
+    - pkg: linux_system_ca_certificates
 {%- endfor %}
 
+{%- endif %}
+
 update_certificates:
   cmd.wait:
-  - name: /usr/sbin/update-ca-certificates
+  - name: update-ca-certificates
 
 {%- endif %}
 
diff --git a/linux/system/repo.sls b/linux/system/repo.sls
index 08b4abc..04e7070 100644
--- a/linux/system/repo.sls
+++ b/linux/system/repo.sls
@@ -29,7 +29,7 @@
 
 {%- do default_repos.update({name: repo}) %}
 
-{%- if repo.key_url %}
+{%- if repo.key_url|default(False) %}
 
 linux_repo_{{ name }}_key:
   cmd.wait:
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 55cb43b..cc40765 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -4,7 +4,7 @@
       collectd:
         enabled: true
       heka:
-        enabled: false
+        enabled: true
       sensu:
         enabled: true
       sphinx: