New log management (see #25)
- Add logrotate (as optional feature) setup - Delete obsolete log management (log + log_slow_queries)pull/27/head
							parent
							
								
									533a7e9f08
								
							
						
					
					
						commit
						890de70de8
					
				|  | @ -8,6 +8,7 @@ mysql_vendor: 'mariadb' | |||
| mysql_root_password: 'change_me_NOW' | ||||
| mysql_notify_restart: true | ||||
| mysql_upstream_apt_src: false | ||||
| mysql_manage_logrotate: true | ||||
| 
 | ||||
| # ------------------------------------- | ||||
| # Configuration | ||||
|  | @ -57,7 +58,6 @@ mysql_innodb_lock_wait_timeout: 50 | |||
| mysql_mysqldump_max_allowed_packet: '64M' | ||||
| 
 | ||||
| # Logging settings. | ||||
| mysql_log: '' | ||||
| mysql_log_error: '/var/log/mysql.err' | ||||
| mysql_syslog_tag: 'mysql' | ||||
| 
 | ||||
|  |  | |||
|  | @ -54,3 +54,9 @@ | |||
|     host="{{ item.host | default('localhost') }}" | ||||
|     state=present | ||||
|   with_items: "{{ mysql_users }}" | ||||
| 
 | ||||
| - name: TEMPLATE | Deploy logrotate configuration | ||||
|   template: | ||||
|     src: "etc/logrotate.d/mysql-server.j2" | ||||
|     dest: "/etc/logrotate.d/mysql-server" | ||||
|   when: mysql_manage_logrotate | ||||
|  |  | |||
|  | @ -0,0 +1,24 @@ | |||
| # | ||||
| # {{ ansible_managed }} | ||||
| # | ||||
| 
 | ||||
| # - I put everything in one block and added sharedscripts, so that mysql gets | ||||
| #   flush-logs'd only once. | ||||
| #   Else the binary logs would automatically increase by n times every day. | ||||
| # - The error log is obsolete, messages go to syslog now. | ||||
| {{ mysql_log_error }} {% if mysql_slow_query_log_enabled %}{{ mysql_slow_query_log_file }}{% endif %} { | ||||
| 	daily | ||||
| 	rotate 7 | ||||
| 	missingok | ||||
| 	create 640 mysql adm | ||||
| 	compress | ||||
| 	sharedscripts | ||||
| 	postrotate | ||||
|           test -x /usr/bin/mysqladmin || exit 0 | ||||
|           if [ -f `my_print_defaults --mysqld | grep -m 1 -oP "pid-file=\K.+$"` ]; then | ||||
|             # If this fails, check debian.conf! | ||||
|             mysqladmin --defaults-file=/etc/mysql/debian.cnf --local flush-error-log \ | ||||
|               flush-engine-log flush-general-log flush-slow-log | ||||
|           fi | ||||
| 	endscript | ||||
| } | ||||
|  | @ -14,21 +14,15 @@ socket = {{ mysql_socket }} | |||
| 
 | ||||
| {# TODO: FIX later #} | ||||
| # Logging configuration. | ||||
| {% if mysql_log_error == 'syslog' or mysql_log == 'syslog' %} | ||||
| {% if mysql_log_error == 'syslog' %} | ||||
| syslog | ||||
| syslog-tag = {{ mysql_syslog_tag }} | ||||
| {% else %} | ||||
| {% if mysql_log %} | ||||
| log = {{ mysql_log }} | ||||
| {% endif %} | ||||
| log-error = {{ mysql_log_error }} | ||||
| {% endif %} | ||||
| 
 | ||||
| {% if mysql_slow_query_log_enabled %} | ||||
| # Slow query log configuration. | ||||
| {% if mysql_vendor not in ['mariadb', 'mariadbgalera'] or mysql_mariadb_version | version_compare('10.0', '<') %} | ||||
| log_slow_queries = 1 | ||||
| {% endif %} | ||||
| slow_query_log = 1 | ||||
| slow_query_log_file = {{ mysql_slow_query_log_file }} | ||||
| long_query_time = {{ mysql_slow_query_time }} | ||||
|  |  | |||
|  | @ -3,3 +3,4 @@ mysql_extra_configuration: | |||
|   innodb_commit_concurrency: 0 | ||||
| mysql_use_percona_apt: true | ||||
| mysql_install_xtrabackup_package: true | ||||
| mysql_slow_query_log_enabled: true | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue