X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/faf8ae12e85eabb050b0f5eceb2cb67ad1de5261..fa2ffc4b6ec0b9572dac9470bcfb474894b8a722:/cookbooks/mysql/recipes/default.rb?ds=sidebyside diff --git a/cookbooks/mysql/recipes/default.rb b/cookbooks/mysql/recipes/default.rb index d56fbdc04..d0d7b1679 100644 --- a/cookbooks/mysql/recipes/default.rb +++ b/cookbooks/mysql/recipes/default.rb @@ -1,14 +1,14 @@ # -# Cookbook Name:: mysql +# Cookbook:: mysql # Recipe:: default # -# Copyright 2013, OpenStreetMap Foundation +# Copyright:: 2013, OpenStreetMap Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -17,113 +17,59 @@ # limitations under the License. # +include_recipe "munin" +include_recipe "prometheus" + package "mysql-server" package "mysql-client" service "mysql" do - action [ :enable, :start ] - supports :status => true, :restart => true, :reload => true + action [:enable, :start] + supports :status => true, :restart => true end -template "/etc/mysql/conf.d/chef.cnf" do +template "/etc/mysql/mysql.conf.d/zzz-chef.cnf" do source "my.cnf.erb" owner "root" group "root" - mode 0644 - notifies :reload, resources(:service => "mysql") + mode "644" + notifies :restart, "service[mysql]" end package "libdbd-mysql-perl" package "libcache-cache-perl" -munin_plugin "mysql_bin_relay_log" do - target "mysql_" -end - -munin_plugin "mysql_commands" do - target "mysql_" -end - -munin_plugin "mysql_connections" do - target "mysql_" -end - -munin_plugin "mysql_files_tables" do - target "mysql_" -end - -munin_plugin "mysql_innodb_bpool" do - target "mysql_" -end - -munin_plugin "mysql_innodb_bpool_act" do - target "mysql_" -end - -munin_plugin "mysql_innodb_insert_buf" do - target "mysql_" -end - -munin_plugin "mysql_innodb_io" do - target "mysql_" -end - -munin_plugin "mysql_innodb_io_pend" do - target "mysql_" -end - -munin_plugin "mysql_innodb_log" do - target "mysql_" +%w[ + commands connections files handler_read handler_tmp handler_transaction + handler_write innodb_bpool innodb_bpool_act innodb_history_list_length + innodb_insert_buf innodb_io innodb_io_pend innodb_log innodb_queries + innodb_read_views innodb_rows innodb_semaphores innodb_srv_master_thread + innodb_tnx max_mem mrr myisam_indexes network_traffic performance + qcache qcache_mem select_types slow sorts table_definitions table_locks + tmp_tables +].each do |stat| + munin_plugin "mysql_#{stat}" do + target "mysql_" + end end -munin_plugin "mysql_innodb_rows" do - target "mysql_" +%w[ + bin_relay_log files_tables replication +].each do |stat| + munin_plugin "mysql_#{stat}" do + action :delete + end end -munin_plugin "mysql_innodb_semaphores" do - target "mysql_" -end - -munin_plugin "mysql_innodb_tnx" do - target "mysql_" -end - -munin_plugin "mysql_myisam_indexes" do - target "mysql_" -end - -munin_plugin "mysql_network_traffic" do - target "mysql_" -end - -munin_plugin "mysql_qcache" do - target "mysql_" -end - -munin_plugin "mysql_qcache_mem" do - target "mysql_" -end - -munin_plugin "mysql_replication" do - target "mysql_" -end - -munin_plugin "mysql_select_types" do - target "mysql_" -end - -munin_plugin "mysql_slow" do - target "mysql_" -end - -munin_plugin "mysql_sorts" do - target "mysql_" -end +mysql_password = persistent_token("mysql", "prometheus", "password") -munin_plugin "mysql_table_locks" do - target "mysql_" +mysql_user "prometheus" do + password mysql_password + process true + repl_client true end -munin_plugin "mysql_tmp_tables" do - target "mysql_" +prometheus_exporter "mysqld" do + port 9104 + environment "DATA_SOURCE_NAME" => "prometheus:#{mysql_password}@(localhost:3306)/" end