diff options
Diffstat (limited to 'sdc-os-chef/sdc-init-elasticsearch/chef-repo/cookbooks/init-sdc-elasticsearch/recipes/ES_3_create_monitoring_template.rb')
-rw-r--r-- | sdc-os-chef/sdc-init-elasticsearch/chef-repo/cookbooks/init-sdc-elasticsearch/recipes/ES_3_create_monitoring_template.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sdc-os-chef/sdc-init-elasticsearch/chef-repo/cookbooks/init-sdc-elasticsearch/recipes/ES_3_create_monitoring_template.rb b/sdc-os-chef/sdc-init-elasticsearch/chef-repo/cookbooks/init-sdc-elasticsearch/recipes/ES_3_create_monitoring_template.rb new file mode 100644 index 0000000000..02b20f8cce --- /dev/null +++ b/sdc-os-chef/sdc-init-elasticsearch/chef-repo/cookbooks/init-sdc-elasticsearch/recipes/ES_3_create_monitoring_template.rb @@ -0,0 +1,53 @@ +ruby_block "check_ElasticSearch_Cluster_Health" do + block do + #tricky way to load this Chef::Mixin::ShellOut utilities + Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut) + curl_command = "http://#{node['Nodes']['ES']}:9200/_cluster/health?pretty=true" + resp = Net::HTTP.get_response URI.parse(curl_command) + stat = JSON.parse(resp.read_body)['status'] + + case stat + when "green" + printf("\033[32m%s\n\033[0m", " ElasticSearch Cluster status is green.") + when "yellow" + printf("\033[33m%s\n\033[0m", " ElasticSearch Cluster status is yellow...") + when "red" + printf("\033[31m%s\n\033[0m", " ElasticSearch Cluster status is red!") + break; + end + end + retries 10 + retry_delay 2 +end + +bash "echo status" do + code <<-EOH + echo "DOCKER STARTED" + EOH +end + +bash "create monitoring mapping" do + code <<-EOH + curl -i -X PUT -d '{ "order": 1, "template": "monitoring_events-*", "settings": {}, "mappings": + { + "monitoringevent": { + "properties": { + "hostid": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, + "hostcpu": { "include_in_all": true, "type": "long" }, + "hostmem": { "include_in_all": true, "type": "double" }, + "hostdisk": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, + "jvmid": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, + "jvmcpu": { "include_in_all": true,"type": "long" }, + "jvmmem": { "include_in_all": true, "type": "long" }, + "jvmtnum": { "include_in_all": true, "type": "integer" }, + "appid": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, + "appstat": { "include_in_all": true, "index": "not_analyzed", "type": "string" }, + "timestamp": { "include_in_all": true, "index": "not_analyzed", "ignore_malformed": false, "format": "yyyy-MM-dd HH:mm:ss.SSS z", "precision_step": 4, "type": "date" } + }, + "_all": { "enabled": true } + } + }, + "aliases": { "last_3_months": {} } + }' http://#{node['Nodes']['ES']}:9200/_template/monitoring_template + EOH +end |