From d80cfa2391f97998eb33a06baf5a6489934919e7 Mon Sep 17 00:00:00 2001 From: Gordon Kelly Date: Thu, 15 Feb 2018 09:40:44 +0000 Subject: ansible: add ansible scripts to configure .conf file on collectd nodes Change-Id: I7349582f7412088f4d303ca52eabf40afea3f5fe Signed-off-by: gordonkelly --- docker/ansible/roles/config_files/tasks/csv.yml | 22 ++ .../config_files/tasks/default_read_import.yml | 143 ++++++++ .../config_files/tasks/default_read_plugins.yml | 34 ++ docker/ansible/roles/config_files/tasks/exec.yml | 21 ++ .../ansible/roles/config_files/tasks/hugepages.yml | 33 ++ docker/ansible/roles/config_files/tasks/kafka.yml | 21 ++ .../ansible/roles/config_files/tasks/logfile.yml | 25 ++ docker/ansible/roles/config_files/tasks/main.yml | 72 ++++ docker/ansible/roles/config_files/tasks/mcelog.yml | 44 +++ .../ansible/roles/config_files/tasks/network.yml | 21 ++ docker/ansible/roles/config_files/tasks/pmu.yml | 21 ++ docker/ansible/roles/config_files/tasks/rdt.yml | 39 +++ .../ansible/roles/config_files/tasks/rrdtool.yml | 22 ++ .../roles/config_files/tasks/snmp_agent.yml | 21 ++ docker/ansible/roles/config_files/tasks/syslog.yml | 22 ++ docker/ansible/roles/config_files/tasks/virt.yml | 36 ++ .../ansible/roles/config_files/tasks/vswitch.yml | 49 +++ .../roles/config_files/templates/csv.conf.j2 | 21 ++ .../templates/default_read_plugins.conf.j2 | 36 ++ .../roles/config_files/templates/exec.conf.j2 | 22 ++ .../roles/config_files/templates/hugepages.conf.j2 | 24 ++ .../roles/config_files/templates/intel_pmu.conf.j2 | 24 ++ .../roles/config_files/templates/kafka.conf.j2 | 22 ++ .../roles/config_files/templates/logfile.conf.j2 | 22 ++ .../roles/config_files/templates/mcelog.conf.j2 | 26 ++ .../roles/config_files/templates/network.conf.j2 | 20 ++ .../config_files/templates/ovs_events.conf.j2 | 26 ++ .../roles/config_files/templates/ovs_stats.conf.j2 | 25 ++ .../roles/config_files/templates/rdt.conf.j2 | 22 ++ .../roles/config_files/templates/rrdtool.conf.j2 | 21 ++ .../config_files/templates/snmp_agent.conf.j2 | 389 +++++++++++++++++++++ .../roles/config_files/templates/syslog.conf.j2 | 21 ++ .../roles/config_files/templates/virt.conf.j2 | 32 ++ docker/ansible/roles/config_files/vars/main.yml | 53 +++ 34 files changed, 1452 insertions(+) create mode 100644 docker/ansible/roles/config_files/tasks/csv.yml create mode 100644 docker/ansible/roles/config_files/tasks/default_read_import.yml create mode 100644 docker/ansible/roles/config_files/tasks/default_read_plugins.yml create mode 100644 docker/ansible/roles/config_files/tasks/exec.yml create mode 100644 docker/ansible/roles/config_files/tasks/hugepages.yml create mode 100644 docker/ansible/roles/config_files/tasks/kafka.yml create mode 100644 docker/ansible/roles/config_files/tasks/logfile.yml create mode 100644 docker/ansible/roles/config_files/tasks/main.yml create mode 100644 docker/ansible/roles/config_files/tasks/mcelog.yml create mode 100644 docker/ansible/roles/config_files/tasks/network.yml create mode 100644 docker/ansible/roles/config_files/tasks/pmu.yml create mode 100644 docker/ansible/roles/config_files/tasks/rdt.yml create mode 100644 docker/ansible/roles/config_files/tasks/rrdtool.yml create mode 100644 docker/ansible/roles/config_files/tasks/snmp_agent.yml create mode 100644 docker/ansible/roles/config_files/tasks/syslog.yml create mode 100644 docker/ansible/roles/config_files/tasks/virt.yml create mode 100644 docker/ansible/roles/config_files/tasks/vswitch.yml create mode 100644 docker/ansible/roles/config_files/templates/csv.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/exec.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/hugepages.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/intel_pmu.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/kafka.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/logfile.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/mcelog.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/network.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/ovs_events.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/ovs_stats.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/rdt.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/rrdtool.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/snmp_agent.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/syslog.conf.j2 create mode 100644 docker/ansible/roles/config_files/templates/virt.conf.j2 create mode 100644 docker/ansible/roles/config_files/vars/main.yml (limited to 'docker/ansible/roles/config_files') diff --git a/docker/ansible/roles/config_files/tasks/csv.yml b/docker/ansible/roles/config_files/tasks/csv.yml new file mode 100644 index 00000000..0be4ec8f --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/csv.yml @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable csv plugin + template: + src: csv.conf.j2 + dest: "{{ config_file_dir }}/csv.conf" + tags: + - csv + diff --git a/docker/ansible/roles/config_files/tasks/default_read_import.yml b/docker/ansible/roles/config_files/tasks/default_read_import.yml new file mode 100644 index 00000000..f11b8b80 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/default_read_import.yml @@ -0,0 +1,143 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable cpu plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin cpu(\s+.*)?$' + replace: '\1LoadPlugin cpu\2' + tags: + - cpu + +- name: enable cpufreq plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin cpufreq(\s+.*)?$' + replace: '\1LoadPlugin cpufreq\2' + tags: + - cpufreq + +- name: enable disk plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin disk(\s+.*)?$' + replace: '\1LoadPlugin disk\2' + tags: + - disk + +- name: enable load plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin load(\s+.*)?$' + replace: '\1LoadPlugin load\2' + tags: + - load + +- name: enable memory plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin memory(\s+.*)?$' + replace: '\1LoadPlugin memory\2' + tags: + - memory + +- name: enable numa plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin numa(\s+.*)?$' + replace: '\1LoadPlugin numa\2' + tags: + - numa + +- name: enable processes plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin processes(\s+.*)?$' + replace: '\1LoadPlugin processes\2' + tags: + - processes + +- name: enable irq plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin irq(\s+.*)?$' + replace: '\1LoadPlugin irq\2' + tags: + - irq + +- name: enable swap plugin + replace: + path: "{{ config_file_dir }}/default_plugins.conf" + regexp: '(\s+)#LoadPlugin swap(\s+.*)?$' + replace: '\1LoadPlugin swap\2' + tags: + - swap + +- name: enable ethstat plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin ethstat(\s+.*)?$' + replace: '\1LoadPlugin ethstat\2' + tags: + - ethstat + +- name: enable ipc plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin ipc(\s+.*)?$' + replace: '\1LoadPlugin ipc\2' + tags: + - ipc + +- name: enable ipmi plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin ipmi(\s+.*)?$' + replace: '\1LoadPlugin ipmi\2' + tags: + - ipmi + +- name: enable df plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin df(\s+.*)?$' + replace: '\1LoadPlugin df\2' + tags: + - df + +- name: enable turbostat plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin turbostat(\s+.*)?$' + replace: '\1LoadPlugin turbostat\2' + tags: + - turbostat + +- name: enable uptime plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin uptime(\s+.*)?$' + replace: '\1LoadPlugin uptime\2' + tags: + - uptime + +- name: enable contextswitch plugin + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin contextswitch(\s+.*)?$' + replace: '\1LoadPlugin contextswitch\2' + tags: + - contextswitch + diff --git a/docker/ansible/roles/config_files/tasks/default_read_plugins.yml b/docker/ansible/roles/config_files/tasks/default_read_plugins.yml new file mode 100644 index 00000000..95b942c2 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/default_read_plugins.yml @@ -0,0 +1,34 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: copy default template to system + template: + src: default_read_plugins.conf.j2 + dest: "{{ config_file_dir }}/default_read_plugins.conf" + tags: + - always + +- name: enable all default plugins + replace: + path: "{{ config_file_dir }}/default_read_plugins.conf" + regexp: '(\s+)#LoadPlugin(\s+.*)?$' + replace: '\1LoadPlugin\2' + register: en_default_all + tags: + - en_default_all + +- name: include per default plugin tasks + include: default_read_import.yml + when: en_default_all is not defined \ No newline at end of file diff --git a/docker/ansible/roles/config_files/tasks/exec.yml b/docker/ansible/roles/config_files/tasks/exec.yml new file mode 100644 index 00000000..b7389703 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/exec.yml @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable exec plugin + template: + src: exec.conf.j2 + dest: "{{ config_file_dir }}/exec.conf" + tags: + - exec diff --git a/docker/ansible/roles/config_files/tasks/hugepages.yml b/docker/ansible/roles/config_files/tasks/hugepages.yml new file mode 100644 index 00000000..bf49035c --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/hugepages.yml @@ -0,0 +1,33 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: check if hugepages folders exist on host + stat: + path: "{{ item }}" + register: hugepages_result + ignore_errors: "true" + with_items: + /sys/devices/system/node + /sys/kernel/mm/hugepages + tags: + - hugepages + +- name: enable hugepages plugin + template: + src: hugepages.conf.j2 + dest: "{{ config_file_dir }}//hugepages.conf" + when: hugepages_result|succeeded + tags: + - hugepages diff --git a/docker/ansible/roles/config_files/tasks/kafka.yml b/docker/ansible/roles/config_files/tasks/kafka.yml new file mode 100644 index 00000000..d7639cbf --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/kafka.yml @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable kafka plugin + template: + src: kafka.conf.j2 + dest: "{{ config_file_dir }}/kafka.conf" + tags: + - kafka diff --git a/docker/ansible/roles/config_files/tasks/logfile.yml b/docker/ansible/roles/config_files/tasks/logfile.yml new file mode 100644 index 00000000..b2700594 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/logfile.yml @@ -0,0 +1,25 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable logfile plugin + template: + src: logfile.conf.j2 + dest: "{{ config_file_dir }}/logfile.conf" + tags: + - logfile + + + + diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml new file mode 100644 index 00000000..2f0938c0 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/main.yml @@ -0,0 +1,72 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: Clean collectd config dir path + file: + state: absent + path: "{{ config_file_dir }}" + tags: + - rm_config_dir + - always + +- name: Create collectd.d folder on remote host + file: + path: "{{ config_file_dir }}" + force: yes + state: directory + tags: + - always + +- name: enable csv plugin + import_tasks: csv.yml + +- name: enable default plugins + import_tasks: default_read_plugins.yml + +- name: enable exec plugin + import_tasks: exec.yml + +- name: enable hugepages plugin + import_tasks: hugepages.yml + +- name: enable kafka plugin + import_tasks: kafka.yml + +- name: enable logfile plugin + import_tasks: logfile.yml + +- name: enable mcelog plugin + import_tasks: mcelog.yml + +- name: enable network plugin + import_tasks: network.yml + +- name: enable pmu plugin + import_tasks: pmu.yml + +- name: enable rdt plugin + import_tasks: rdt.yml + +- name: enable rddtool plugin + import_tasks: rrdtool.yml + +- name: enable snmp_agent plugin + import_tasks: snmp_agent.yml + +- name: enable syslog plugin + import_tasks: syslog.yml + +- name: enable virt plugin + import_tasks: virt.yml diff --git a/docker/ansible/roles/config_files/tasks/mcelog.yml b/docker/ansible/roles/config_files/tasks/mcelog.yml new file mode 100644 index 00000000..9c935e3e --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/mcelog.yml @@ -0,0 +1,44 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: check if mcelog running on host + shell: ps -ef | grep mcelog | grep -v grep > /dev/null + register: mcelog_running + ignore_errors: "true" + tags: + - mcelogs + +- name: check if mcelog exists + shell: which mcelog > /dev/null + register: mcelog_exists + ignore_errors: "true" + tags: + - mcelogs + +- name: check if mcelog-client exists + stat: + path: /var/run/mcelog-client + register: mcelog_client_exists + ignore_errors: "true" + tags: + - mcelogs + +- name: enable mcelog plugin + template: + src: mcelog.conf.j2 + dest: "{{ config_file_dir }}/mcelog.conf" + when: mcelog_running|succeeded and mcelog_exists|succeeded and mcelog_client_exists|succeeded + tags: + - mcelogs diff --git a/docker/ansible/roles/config_files/tasks/network.yml b/docker/ansible/roles/config_files/tasks/network.yml new file mode 100644 index 00000000..dca0c235 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/network.yml @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable network plugin + template: + src: network.conf.j2 + dest: "{{ config_file_dir }}/network.conf" + tags: + - network diff --git a/docker/ansible/roles/config_files/tasks/pmu.yml b/docker/ansible/roles/config_files/tasks/pmu.yml new file mode 100644 index 00000000..20e3034c --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/pmu.yml @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable intel_pmu plugin + template: + src: intel_pmu.conf.j2 + dest: "{{ config_file_dir }}/intel_pmu.conf" + tags: + - pmu diff --git a/docker/ansible/roles/config_files/tasks/rdt.yml b/docker/ansible/roles/config_files/tasks/rdt.yml new file mode 100644 index 00000000..cbfa7de5 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/rdt.yml @@ -0,0 +1,39 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: check if rdt on host + shell: | + grep -q cqm* "/proc/cpuinfo" + register: rdt_result + ignore_errors: "true" + tags: + - rdt + +- name: (rdt) check if virt is enabled + stat: + path: "{{ config_file_dir }}/virt.conf" + register: virt_file + tags: + - rdt + +- name: enable rdt plugin + template: + src: rdt.conf.j2 + dest: "{{ config_file_dir }}/rdt.conf" + when: rdt_result|succeeded and virt_file.stat.exists == False + tags: + - rdt + + diff --git a/docker/ansible/roles/config_files/tasks/rrdtool.yml b/docker/ansible/roles/config_files/tasks/rrdtool.yml new file mode 100644 index 00000000..4c681dc6 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/rrdtool.yml @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable rrdtool plugin + template: + src: rrdtool.conf.j2 + dest: "{{ config_file_dir }}/rrdtool.conf" + tags: + - rrdtool + diff --git a/docker/ansible/roles/config_files/tasks/snmp_agent.yml b/docker/ansible/roles/config_files/tasks/snmp_agent.yml new file mode 100644 index 00000000..603dc122 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/snmp_agent.yml @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable snmp agent + template: + src: snmp_agent.conf.j2 + dest: "{{ config_file_dir }}/snmp_agent.conf" + tags: + - snmp diff --git a/docker/ansible/roles/config_files/tasks/syslog.yml b/docker/ansible/roles/config_files/tasks/syslog.yml new file mode 100644 index 00000000..97864a5d --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/syslog.yml @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: enable syslog plugin + template: + src: syslog.conf.j2 + dest: "{{ config_file_dir }}/syslog.conf" + tags: + - syslog + diff --git a/docker/ansible/roles/config_files/tasks/virt.yml b/docker/ansible/roles/config_files/tasks/virt.yml new file mode 100644 index 00000000..9db10e8c --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/virt.yml @@ -0,0 +1,36 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: check if libvirtd on host + shell: ps -ef | grep libvirtd | grep -v grep > /dev/null + register: libvirt_result + ignore_errors: "true" + tags: + - virt + +- name: (virt) check if rdt is enabled + stat: + path: "{{ config_file_dir }}/rdt.conf" + register: rdt_file + tags: + - virt + +- name: enable virt plugin + template: + src: virt.conf.j2 + dest: "{{ config_file_dir }}/virt.conf" + when: libvirt_result|succeeded and rdt_file.stat.exists == False + tags: + - virt diff --git a/docker/ansible/roles/config_files/tasks/vswitch.yml b/docker/ansible/roles/config_files/tasks/vswitch.yml new file mode 100644 index 00000000..baffc4bd --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/vswitch.yml @@ -0,0 +1,49 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: Check if vswitchd is running + shell: ps -ef | grep vswitchd | grep -v grep > /dev/null + register: vswitchd_running + ignore_errors: True + tags: + - ovs_stats + - ovs_events + +- name: Check if db.sock exists + stat: + path: /var/run/openvswitch/db.sock + register: dbsock_exists + ignore_errors: True + tags: + - ovs_stats + - ovs_events + +- name: enable ovs_stats plugin + template: + src: "ovs_stats.conf.j2" + dest: "{{ config_file_dir }}/ovs_stats.conf" + when: vswitchd_running|succeeded and dbsock_exists|succeeded + tags: + - ovs_stats + +- name: enable ovs_events plugin + template: + src: "ovs_events.conf.j2" + dest: "{{ config_file_dir }}/ovs_events.conf" + when: vswitchd_running|succeeded and dbsock_exists|succeeded + tags: + - ovs_events + + diff --git a/docker/ansible/roles/config_files/templates/csv.conf.j2 b/docker/ansible/roles/config_files/templates/csv.conf.j2 new file mode 100644 index 00000000..3e351932 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/csv.conf.j2 @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin csv + + + DataDir "{{ csv_log_dir }}" + StoreRates false + + diff --git a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 new file mode 100644 index 00000000..e0c52ca0 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 @@ -0,0 +1,36 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +Hostname "{{ inventory_hostname }}" +Interval "{{ interval_value }}" + + +#LoadPlugin contextswitch +#LoadPlugin cpu +#LoadPlugin cpufreq +#LoadPlugin df +#LoadPlugin disk +#LoadPlugin ethstat +#LoadPlugin ipc +#LoadPlugin ipmi +#LoadPlugin irq +#LoadPlugin load +#LoadPlugin memory +#LoadPlugin numa +#LoadPlugin processes +#LoadPlugin swap +#LoadPlugin turbostat +#LoadPlugin uuid +#LoadPlugin uptime + diff --git a/docker/ansible/roles/config_files/templates/exec.conf.j2 b/docker/ansible/roles/config_files/templates/exec.conf.j2 new file mode 100644 index 00000000..2467606b --- /dev/null +++ b/docker/ansible/roles/config_files/templates/exec.conf.j2 @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin exec + + + # For OVS PMD stats plugin + Exec "collectd_exec" "/src/barometer/src/collectd/collectd_sample_configs/ovs_pmd_stats.sh" + NotificationExec "collectd_exec" "/src/barometer/src/collectd/collectd_sample_configs/write_notification.sh" + + diff --git a/docker/ansible/roles/config_files/templates/hugepages.conf.j2 b/docker/ansible/roles/config_files/templates/hugepages.conf.j2 new file mode 100644 index 00000000..b391a398 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/hugepages.conf.j2 @@ -0,0 +1,24 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin hugepages + + + ReportPerNodeHP true + ReportRootHP true + ValuesPages true + ValuesBytes false + ValuesPercentage false + + diff --git a/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2 b/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2 new file mode 100644 index 00000000..067a3e82 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2 @@ -0,0 +1,24 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin intel_pmu + + + ReportHardwareCacheEvents true + ReportKernelPMUEvents true + ReportSoftwareEvents true +# EventList "/var/cache/pmu/GenuineIntel-6-2D-core.json" +# HardwareEvents "L2_RQSTS.CODE_RD_HIT,L2_RQSTS.CODE_RD_MISS" "L2_RQSTS.ALL_CODE_RD" + + diff --git a/docker/ansible/roles/config_files/templates/kafka.conf.j2 b/docker/ansible/roles/config_files/templates/kafka.conf.j2 new file mode 100644 index 00000000..3e4bc242 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/kafka.conf.j2 @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin write_kafka + + + Property "metadata.broker.list" "{{ kafka_ip_addr }}:{{ kafka_port }}" + + Format JSON + + diff --git a/docker/ansible/roles/config_files/templates/logfile.conf.j2 b/docker/ansible/roles/config_files/templates/logfile.conf.j2 new file mode 100644 index 00000000..8bc96ffe --- /dev/null +++ b/docker/ansible/roles/config_files/templates/logfile.conf.j2 @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin logfile + + + LogLevel "{{ logfile_log_level }}" + File "{{ logfile_dir }}/collectd.log" + Timestamp true + + diff --git a/docker/ansible/roles/config_files/templates/mcelog.conf.j2 b/docker/ansible/roles/config_files/templates/mcelog.conf.j2 new file mode 100644 index 00000000..148053cb --- /dev/null +++ b/docker/ansible/roles/config_files/templates/mcelog.conf.j2 @@ -0,0 +1,26 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + Interval 1 + + + + + McelogClientSocket "/var/run/mcelog-client" + PersistentNotification false + +## McelogLogfile "/var/log/mcelog" + + diff --git a/docker/ansible/roles/config_files/templates/network.conf.j2 b/docker/ansible/roles/config_files/templates/network.conf.j2 new file mode 100644 index 00000000..3d940e85 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/network.conf.j2 @@ -0,0 +1,20 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin network + + + Server "{{ network_ip_addr }}" "{{ network_port }}" + + diff --git a/docker/ansible/roles/config_files/templates/ovs_events.conf.j2 b/docker/ansible/roles/config_files/templates/ovs_events.conf.j2 new file mode 100644 index 00000000..4fbea5ad --- /dev/null +++ b/docker/ansible/roles/config_files/templates/ovs_events.conf.j2 @@ -0,0 +1,26 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + Interval "{{ ovs_events_interval }}" + + + +# Port "{{ ovs_event_port }}" +# Address "{{ ovs_event_ip_addr }}" +# Socket "/var/run/openvswitch/db.sock" +# Interfaces "br0" "veth0" + SendNotification true + DispatchValues true + diff --git a/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2 b/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2 new file mode 100644 index 00000000..fc26e4b8 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2 @@ -0,0 +1,25 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + Interval "{{ ovs_stats_interval }}" + + + +# Port "{{ ovs_stats_port }}" +# Address "{{ ovs_stats_ip_addr }}" +# Socket "/var/run/openvswitch/db.sock" +# Bridges "br0" "br_ext" + + diff --git a/docker/ansible/roles/config_files/templates/rdt.conf.j2 b/docker/ansible/roles/config_files/templates/rdt.conf.j2 new file mode 100644 index 00000000..814c23ca --- /dev/null +++ b/docker/ansible/roles/config_files/templates/rdt.conf.j2 @@ -0,0 +1,22 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + Interval "{{ rdt_interval }}" + + + + Cores "" + + diff --git a/docker/ansible/roles/config_files/templates/rrdtool.conf.j2 b/docker/ansible/roles/config_files/templates/rrdtool.conf.j2 new file mode 100644 index 00000000..dd874210 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/rrdtool.conf.j2 @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +Loadplugin rrdtool + + + DataDir "{{ rrdtool_db_dir }}" + CacheFlush {{ cache_flush }} + WritesPerSecond {{ write_per_sec }} + diff --git a/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2 b/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2 new file mode 100644 index 00000000..406033ed --- /dev/null +++ b/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2 @@ -0,0 +1,389 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin snmp_agent + +# Intel PMU MIB + + IndexOID "INTEL-PMU-MIB::pmuGroupIndex" + + Instance true + Plugin "intel_pmu" + OIDs "INTEL-PMU-MIB::pmuGroupDescr" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-dcache-loads" + OIDs "INTEL-PMU-MIB::pmuL1DCacheLoads" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-dcache-load-misses" + OIDs "INTEL-PMU-MIB::pmuL1DCacheLoadMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-dcache-stores" + OIDs "INTEL-PMU-MIB::pmuL1DCacheStores" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-dcache-store-misses" + OIDs "INTEL-PMU-MIB::pmuL1DCacheStoreMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-dcache-prefetches" + OIDs "INTEL-PMU-MIB::pmuL1DCachePrefetches" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-dcache-prefetch-misses" + OIDs "INTEL-PMU-MIB::pmuL1DCachePrefetchMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-icache-loads" + OIDs "INTEL-PMU-MIB::pmuL1ICacheLoads" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-icache-load-misses" + OIDs "INTEL-PMU-MIB::pmuL1ICacheLoadMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-icache-prefetches" + OIDs "INTEL-PMU-MIB::pmuL1ICachePrefetches" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "L1-icache-prefetch-misses" + OIDs "INTEL-PMU-MIB::pmuL1ICachePrefetchMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "LLC-loads" + OIDs "INTEL-PMU-MIB::pmuLLCLoads" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "LLC-load-misses" + OIDs "INTEL-PMU-MIB::pmuLLCLoadMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "LLC-stores" + OIDs "INTEL-PMU-MIB::pmuLLCStores" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "LLC-store-misses" + OIDs "INTEL-PMU-MIB::pmuLLCStoreMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "LLC-prefetches" + OIDs "INTEL-PMU-MIB::pmuLLCPrefetches" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "LLC-prefetch-misses" + OIDs "INTEL-PMU-MIB::pmuLLCPrefetchMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "dTLB-loads" + OIDs "INTEL-PMU-MIB::pmuDTLBLoads" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "dTLB-load-misses" + OIDs "INTEL-PMU-MIB::pmuDTLBLoadMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "dTLB-stores" + OIDs "INTEL-PMU-MIB::pmuDTLBStores" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "dTLB-store-misses" + OIDs "INTEL-PMU-MIB::pmuDTLBStoreMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "dTLB-prefetches" + OIDs "INTEL-PMU-MIB::pmuDTLBPrefetches" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "dTLB-prefetch-misses" + OIDs "INTEL-PMU-MIB::pmuDTLBPrefetchMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "iTLB-loads" + OIDs "INTEL-PMU-MIB::pmuITLBLoads" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "iTLB-load-misses" + OIDs "INTEL-PMU-MIB::pmuITLBLoadMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "branch-loads" + OIDs "INTEL-PMU-MIB::pmuBranchLoads" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "branch-load-misses" + OIDs "INTEL-PMU-MIB::pmuBranchLoadMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "cpu-cycles" + OIDs "INTEL-PMU-MIB::pmuCpuCycles" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "instructions" + OIDs "INTEL-PMU-MIB::pmuInstructions" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "cache-references" + OIDs "INTEL-PMU-MIB::pmuCacheReferences" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "cache-misses" + OIDs "INTEL-PMU-MIB::pmuCacheMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "branches" + OIDs "INTEL-PMU-MIB::pmuBranches" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "branch-misses" + OIDs "INTEL-PMU-MIB::pmuBranchMisses" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "bus-cycles" + OIDs "INTEL-PMU-MIB::pmuBusCycles" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "cpu-clock" + OIDs "INTEL-PMU-MIB::pmuCpuClock" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "task-clock" + OIDs "INTEL-PMU-MIB::pmuTaskClock" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "context-switches" + OIDs "INTEL-PMU-MIB::pmuContextSwitches" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "cpu-migrations" + OIDs "INTEL-PMU-MIB::pmuCpuMigrations" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "page-faults" + OIDs "INTEL-PMU-MIB::pmuPageFaults" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "minor-faults" + OIDs "INTEL-PMU-MIB::pmuMinorFaults" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "major-faults" + OIDs "INTEL-PMU-MIB::pmuMajorFaults" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "alignment-faults" + OIDs "INTEL-PMU-MIB::pmuAlignmentFaults" + + + Plugin "intel_pmu" + Type "counter" + TypeInstance "emulation-faults" + OIDs "INTEL-PMU-MIB::pmuEmulationFaults" + +
+# Intel RDT MIB + + IndexOID "INTEL-RDT-MIB::rdtGroupIndex" + SizeOID "INTEL-RDT-MIB::rdtGroupNumber" + + Instance true + Plugin "intel_rdt" + OIDs "INTEL-RDT-MIB::rdtGroupDescr" + + + Plugin "intel_rdt" + Type "bytes" + TypeInstance "llc" + OIDs "INTEL-RDT-MIB::rdtLlc" + + + Plugin "intel_rdt" + Type "ipc" + OIDs "INTEL-RDT-MIB::rdtIpc" + + + Plugin "intel_rdt" + Type "memory_bandwidth" + TypeInstance "remote" + OIDs "INTEL-RDT-MIB::rdtMbmRemote" + + + Plugin "intel_rdt" + Type "memory_bandwidth" + TypeInstance "local" + OIDs "INTEL-RDT-MIB::rdtMbmLocal" + +
+# Intel Mcelog MIB + + IndexOID "INTEL-MCELOG-MIB::memoryGroupIndex" + + Instance true + Plugin "mcelog" + OIDs "INTEL-MCELOG-MIB::memoryGroupDescr" + + + Plugin "mcelog" + Type "errors" + TypeInstance "corrected_memory_errors" + OIDs "INTEL-MCELOG-MIB::memoryCorrectedErrors" + + + Plugin "mcelog" + Type "errors" + TypeInstance "corrected_memory_errors_in_24h" + OIDs "INTEL-MCELOG-MIB::memoryCorrectedTimedErrors" + + + Plugin "mcelog" + Type "errors" + TypeInstance "uncorrected_memory_errors" + OIDs "INTEL-MCELOG-MIB::memoryUncorrectedErrors" + + + Plugin "mcelog" + Type "errors" + TypeInstance "uncorrected_memory_errors_in_24h" + OIDs "INTEL-MCELOG-MIB::memoryUncorrectedTimedErrors" + +
+# Hugepages + + + Instance true + Plugin "hugepages" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesNode" + + + Plugin "hugepages" + Type "memory" + TypeInstance "free" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesMemoryFree" + + + Plugin "hugepages" + Type "memory" + TypeInstance "used" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesMemoryUsed" + + + Plugin "hugepages" + Type "vmpage_number" + TypeInstance "free" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesPagesFree" + + + Plugin "hugepages" + Type "vmpage_number" + TypeInstance "used" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesPagesUsed" + + + Plugin "hugepages" + Type "percent" + TypeInstance "free" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesPercentFree" + + + Plugin "hugepages" + Type "percent" + TypeInstance "used" + OIDs "INTEL-HUGEPAGES-MIB::hugepagesPercentUsed" + +
+
+ diff --git a/docker/ansible/roles/config_files/templates/syslog.conf.j2 b/docker/ansible/roles/config_files/templates/syslog.conf.j2 new file mode 100644 index 00000000..f9d77814 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/syslog.conf.j2 @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin syslog + +# Decrease syslog verbosity, to avoid duplicate logging + + LogLevel "{{ syslog_log_level }}" + + diff --git a/docker/ansible/roles/config_files/templates/virt.conf.j2 b/docker/ansible/roles/config_files/templates/virt.conf.j2 new file mode 100644 index 00000000..f1ba324d --- /dev/null +++ b/docker/ansible/roles/config_files/templates/virt.conf.j2 @@ -0,0 +1,32 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin virt + + +# Connection "xen:///" + RefreshInterval 60 +# Domain "name" +# BlockDevice "name:device" +# BlockDeviceFormat target +# BlockDeviceFormatBasename false +# InterfaceDevice "name:device" +# IgnoreSelected false +# HostnameFormat name +# InterfaceFormat name +# PluginInstanceFormat name +# Instances 1 + ExtraStats "cpu_util disk disk_err domain_state fs_info job_stats_background pcpu perf vcpupin" + + diff --git a/docker/ansible/roles/config_files/vars/main.yml b/docker/ansible/roles/config_files/vars/main.yml new file mode 100644 index 00000000..3677422a --- /dev/null +++ b/docker/ansible/roles/config_files/vars/main.yml @@ -0,0 +1,53 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# 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 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +#directory paths +config_file_dir: "/opt/collectd/etc/collectd.conf.d/" +csv_log_dir: "/var/lib/collectd/csv" +logfile_dir: "/var/log/" + +#global default interval +interval_value: 10 + +#network plugin vars +network_port: 25826 +network_ip_addr: localhost + +#ovs event and stats plugin vars +ovs_event_interval: 1 +ovs_event_ip_addr: localhost +ovs_event_port: 6640 +ovs_stats_interval: 1 +ovs_stats_ip_addr: localhost +ovs_stats_port: 6640 + +#rdt plugin vars +rdt_interval: 1 + +#kafka plugin vars +kafka_ip_addr: localhost +kafka_port: 9092 +kafka_topic: collectd + +#logfile plugin vars +logfile_log_level: info + +#syslog plugin vars +syslog_log_level: info + +#rrd plugin vars +rrdtool_db_dir: "/var/lib/collectd/rrd" +cache_flush: 120 +write_per_sec: 50 -- cgit 1.2.3-korg