Merge "Restart Heka services when removing config files"
diff --git a/heka/_common.sls b/heka/_common.sls
index 1753840..9f71c31 100644
--- a/heka/_common.sls
+++ b/heka/_common.sls
@@ -7,15 +7,24 @@
/usr/share/lma_collector:
file.recurse:
- source: salt://heka/files/lua
+ - user: root
+ - group: heka
+ - file_mode: 640
+ - dir_mode: 750
+ - require:
+ - user: heka_user
/usr/share/lma_collector/common/extra_fields.lua:
file.managed:
- source: salt://heka/files/extra_fields.lua
- user: root
- - mode: 644
+ - group: heka
+ - mode: 640
- defaults:
extra_fields: {{ server.extra_fields }}
- template: jinja
+ - require:
+ - user: heka_user
heka_user:
user.present:
diff --git a/heka/_service.sls b/heka/_service.sls
index 874e9ca..cc36dab 100644
--- a/heka/_service.sls
+++ b/heka/_service.sls
@@ -13,6 +13,7 @@
file.directory:
- name: /var/cache/{{ service_name }}
- user: heka
+ - group: heka
- mode: 750
- makedirs: true
@@ -271,6 +272,9 @@
alarm_name: {{ alarm_name }}
alarm: {{ alarm|yaml }}
trigger: {{ service_metadata.get('trigger', {})|yaml }}
+ {%- if service_name != 'remote_collector' %}
+ hostname: {{ grains.host }}
+ {%- endif %}
/usr/share/lma_collector/common/lma_{{ alarm_name|replace('-', '_') }}.lua:
file.managed:
diff --git a/heka/files/lua/common/afd.lua b/heka/files/lua/common/afd.lua
index 0c4dbcd..2f0bea0 100644
--- a/heka/files/lua/common/afd.lua
+++ b/heka/files/lua/common/afd.lua
@@ -156,9 +156,12 @@
alerting_enabled = alerting_enabled,
notification_enabled = notification_enabled,
notification_handler = notification_handler,
- tag_fields = {'hostname', 'member'}
+ tag_fields = {'member'}
}
}
+ if hostname then
+ table.insert(msg.Fields.tag_fields, hostname)
+ end
for name, value in pairs(dimensions) do
table.insert(msg.Fields.tag_fields, name)
diff --git a/heka/files/lua/decoders/collectd.lua b/heka/files/lua/decoders/collectd.lua
index 7978bd2..3988c17 100644
--- a/heka/files/lua/decoders/collectd.lua
+++ b/heka/files/lua/decoders/collectd.lua
@@ -137,6 +137,8 @@
elseif metric_source == 'disk' then
if sample['type'] == 'disk_io_time' then
msg['Fields']['name'] = 'disk' .. sep .. sample['dsnames'][i]
+ elseif sample['type'] == 'pending_operations' then
+ msg['Fields']['name'] = 'disk' .. sep .. sample['type']
else
msg['Fields']['name'] = metric_name
end
@@ -457,7 +459,7 @@
msg['Fields']['name'] = 'logged_users'
msg['Fields']['hostname'] = sample['host']
table.insert(msg['Fields']['tag_fields'], 'hostname')
- elseif metric_source == 'libvirt' then
+ elseif metric_source == 'libvirt' or metric_source == 'virt' then
-- collectd sends the instance's ID in the 'host' field
msg['Fields']['instance_id'] = sample['host']
table.insert(msg['Fields']['tag_fields'], 'instance_id')
diff --git a/heka/files/lua/filters/afd.lua b/heka/files/lua/filters/afd.lua
index 4b8de07..0e18e33 100644
--- a/heka/files/lua/filters/afd.lua
+++ b/heka/files/lua/filters/afd.lua
@@ -21,7 +21,7 @@
local afd_file = read_config('afd_file') or error('afd_file must be specified')
local afd_name = read_config('afd_name') or error('afd_name must be specified')
-local hostname = read_config('hostname') or error('hostname must be specified')
+local hostname = read_config('hostname')
local dimensions_json = read_config('dimensions') or ''
local activate_alerting = read_config('activate_alerting') or true
local enable_notification = read_config('enable_notification') or false
diff --git a/heka/files/lua/filters/gse_cluster_filter.lua b/heka/files/lua/filters/gse_cluster_filter.lua
index 8b46fcf..a800cb1 100644
--- a/heka/files/lua/filters/gse_cluster_filter.lua
+++ b/heka/files/lua/filters/gse_cluster_filter.lua
@@ -66,8 +66,8 @@
return -1, "Cannot find alarms in the AFD/GSE message"
end
- -- "hostname" is nil here when the input message is a GSE message, so nil
- -- is not an error condition here
+ -- "hostname" is nil here when the input message is a GSE message or
+ -- an AFD message related to a cluster.
local hostname = afd.get_entity_name('hostname')
local cluster_ids = gse.find_cluster_memberships(member_id)
diff --git a/heka/files/toml/filter/afd_alarm.toml b/heka/files/toml/filter/afd_alarm.toml
index 7244022..5d4590c 100644
--- a/heka/files/toml/filter/afd_alarm.toml
+++ b/heka/files/toml/filter/afd_alarm.toml
@@ -9,7 +9,9 @@
[afd_{{ alarm_name }}_filter.config]
afd_file = "lma_{{ alarm_name|replace('-', '_') }}"
afd_name = "{{ alarm_name }}"
-hostname = "{{ grains.host }}"
+{%- if hostname is defined %}
+hostname = "{{ hostname }}"
+{%- endif %}
dimensions = '{{ salt['heka_alarming.dimensions'](alarm)|json }}'
{%- set alerting = alarm.get('alerting', 'enabled') %}
activate_alerting = {{ salt['heka_alarming.alarm_activate_alerting'](alerting) }}
diff --git a/metadata/service/aggregator/output/nagios.yml b/metadata/service/aggregator/output/nagios.yml
index 7c30db1..ae167c1 100644
--- a/metadata/service/aggregator/output/nagios.yml
+++ b/metadata/service/aggregator/output/nagios.yml
@@ -1,5 +1,12 @@
parameters:
+ _param:
+ nagios_username: nagiosadmin
+ nagios_default_host_alarm_clusters: 00-clusters
+ nagios_host_dimension_key: nagios_host
heka:
aggregator:
- nagios_host_dimension_key: nagios_host
- nagios_host: ${_param:nagios_host}
\ No newline at end of file
+ nagios_host: ${_param:nagios_host}
+ nagios_username: ${_param:nagios_username}
+ nagios_password: ${_param:nagios_password}
+ nagios_host_dimension_key: ${_param:nagios_host_dimension_key}
+ nagios_default_host_alarm_clusters: ${_param:nagios_default_host_alarm_clusters}
diff --git a/metadata/service/aggregator/output/sensu.yml b/metadata/service/aggregator/output/sensu.yml
index 394acb6..37b2cf8 100644
--- a/metadata/service/aggregator/output/sensu.yml
+++ b/metadata/service/aggregator/output/sensu.yml
@@ -1,5 +1,7 @@
parameters:
+ _param:
+ sensu_source_dimension_key: nagios_host
heka:
aggregator:
- sensu_source_dimension_key: nagios_host
+ sensu_source_dimension_key: ${_param:sensu_source_dimension_key}
sensu_host: 127.0.0.1
diff --git a/metadata/service/metric_collector/output/nagios.yml b/metadata/service/metric_collector/output/nagios.yml
new file mode 100644
index 0000000..08a45dd
--- /dev/null
+++ b/metadata/service/metric_collector/output/nagios.yml
@@ -0,0 +1,12 @@
+parameters:
+ _param:
+ nagios_username: nagiosadmin
+ nagios_default_host_alarm_clusters: 00-clusters
+ nagios_host_dimension_key: nagios_host
+ heka:
+ metric_collector:
+ nagios_host: ${_param:nagios_host}
+ nagios_username: ${_param:nagios_username}
+ nagios_password: ${_param:nagios_password}
+ nagios_host_dimension_key: ${_param:nagios_host_dimension_key}
+ nagios_default_host_alarm_clusters: ${_param:nagios_default_host_alarm_clusters}
diff --git a/metadata/service/metric_collector/single.yml b/metadata/service/metric_collector/single.yml
index 2e4a442..ad183a2 100644
--- a/metadata/service/metric_collector/single.yml
+++ b/metadata/service/metric_collector/single.yml
@@ -5,10 +5,8 @@
parameters:
_param:
metric_collector_poolsize: 100
- nagios_host_dimension_key: nagios_host
heka:
metric_collector:
enabled: true
influxdb_time_precision: ms
poolsize: ${_param:metric_collector_poolsize}
- nagios_host_dimension_key: ${_param:nagios_host_dimension_key}