From 8aa4598dbccff185cbd55e7e55f840f8536ff21c Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Wed, 21 Jun 2017 16:30:03 +0200 Subject: [PATCH] ansible-inventories/knime#110 Make Zabbix agent configurable --- defaults/main.yml | 11 +++++++++++ tasks/config.yml | 8 ++++---- templates/userparameter.conf | 3 +++ templates/userparameter_mysql.conf | 18 ------------------ templates/zabbix_agentd.conf | 12 ++++++++---- 5 files changed, 26 insertions(+), 26 deletions(-) create mode 100644 templates/userparameter.conf delete mode 100644 templates/userparameter_mysql.conf diff --git a/defaults/main.yml b/defaults/main.yml index 7aa7413..021d092 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1 +1,12 @@ zabbix_agent_url: 'http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xenial_all.deb' + +zabbix_agent_logfile_size: 0 +zabbix_agent_server: '127.0.0.1' +zabbix_agent_server_active: '127.0.0.1' +zabbix_agent_hostname: 'Zabbix server' +zabbix_agent_userparameter: + mysql: + - mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}' + - mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N' + - mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive + - mysql.version,mysql -V diff --git a/tasks/config.yml b/tasks/config.yml index abf7519..3600c57 100644 --- a/tasks/config.yml +++ b/tasks/config.yml @@ -6,8 +6,8 @@ src: 'zabbix_agentd.conf' dest: '/etc/zabbix/zabbix_agentd.conf' -- name: "Agent User Config: MySQL" +- name: "Agent User Config" template: - src: 'userparameter_mysql.conf' - dest: '/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf' - when: groups['dbserver-mysql'] is defined and inventory_hostname in groups['dbserver-mysql'] + src: 'userparameter.conf' + dest: '/etc/zabbix/zabbix_agentd.d/userparameter_{{ item }}.conf' + with_items: '{{ zabbix_agent_userparameter }}' diff --git a/templates/userparameter.conf b/templates/userparameter.conf new file mode 100644 index 0000000..bd27e2e --- /dev/null +++ b/templates/userparameter.conf @@ -0,0 +1,3 @@ +{% for line in zabbix_agent_userparameter[item] %} +UserParameter={{ line }} +{% endfor %} diff --git a/templates/userparameter_mysql.conf b/templates/userparameter_mysql.conf deleted file mode 100644 index ebd516d..0000000 --- a/templates/userparameter_mysql.conf +++ /dev/null @@ -1,18 +0,0 @@ -# For all the following commands HOME should be set to the directory that has .my.cnf file with password information. - -# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert]. -# Key syntax is mysql.status[variable]. -UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}' - -# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data]. -# Key syntax is mysql.size[<database>,<table>,<type>]. -# Database may be a database name or "all". Default is "all". -# Table may be a table name or "all". Default is "all". -# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both". -# Database is mandatory if a table is specified. Type may be specified always. -# Returns value in bytes. -# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table -UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N' - -UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive -UserParameter=mysql.version,mysql -V diff --git a/templates/zabbix_agentd.conf b/templates/zabbix_agentd.conf index 26945fd..1ee2a62 100644 --- a/templates/zabbix_agentd.conf +++ b/templates/zabbix_agentd.conf @@ -40,7 +40,7 @@ LogFile=/var/log/zabbix/zabbix_agentd.log # Default: # LogFileSize=1 -LogFileSize=0 +LogFileSize={{ zabbix_agent_logfile_size }} ### Option: DebugLevel # Specifies debug level: @@ -92,7 +92,7 @@ LogFileSize=0 # Default: # Server= -Server=127.0.0.1 +Server={{ zabbix_agent_server }} ### Option: ListenPort # Agent will listen on this port for connections from the server. @@ -133,7 +133,9 @@ Server=127.0.0.1 # Default: # ServerActive= -ServerActive=127.0.0.1 +{% if zabbix_agent_server_active != '' %} +ServerActive={{ zabbix_agent_server_active }} +{% endif %} ### Option: Hostname # Unique, case sensitive hostname. @@ -144,7 +146,9 @@ ServerActive=127.0.0.1 # Default: # Hostname= -Hostname=Zabbix server +{% if zabbix_agent_server_active != '' %} +Hostname={{ zabbix_agent_hostname }} +{% endif %} ### Option: HostnameItem # Item used for generating Hostname if it is undefined. Ignored if Hostname is defined. -- GitLab