Update elk_6x for 6.5.x

This change updates the roles / playbooks to begin using Elasticsearch
relesae 6.5.x. Core to this change is the conversion of the journalbeat
role from custom compiled go, to simple package install which was made
possible by the folks at elastic within this release. Because of the
conversion the "beats-community" playbook has been removed given its now
empty.

A change to the bootstrap script was made allowing it to parse an OS id
with a "-" in it, like "opensuse-tumbleweed".

Change-Id: Ic9b80234d6a6ce876bff885f3223874602d55dd6
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
Kevin Carter 2018-11-22 00:47:14 -06:00 committed by Kevin Carter (cloudnull)
parent 9af219910e
commit 3a69a1c43d
15 changed files with 51 additions and 123 deletions

View File

@ -19,6 +19,8 @@ export ANSIBLE_EMBED_HOME="${HOME}/ansible_venv"
OPTS+=('ANSIBLE_EMBED_HOME') OPTS+=('ANSIBLE_EMBED_HOME')
source /etc/os-release source /etc/os-release
export ID="$(echo ${ID} | awk -F'-' '{print $1}')"
if [[ ! -e "${ANSIBLE_EMBED_HOME}/bin/ansible" ]]; then if [[ ! -e "${ANSIBLE_EMBED_HOME}/bin/ansible" ]]; then
if [ ${ID} = "ubuntu" ]; then if [ ${ID} = "ubuntu" ]; then
apt-get update apt-get update

View File

@ -39,11 +39,6 @@
attributes: attributes:
title: "*" title: "*"
timeFieldName: "@timestamp" timeFieldName: "@timestamp"
- name: "journalbeat-*"
index_options:
attributes:
title: "journalbeat-*"
timeFieldName: "@timestamp"
register: kibana_indexes register: kibana_indexes
until: kibana_indexes is success until: kibana_indexes is success
retries: 6 retries: 6

View File

@ -43,7 +43,7 @@
- name: Ensure beat is installed (aarch64) - name: Ensure beat is installed (aarch64)
apt: apt:
deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/auditbeat-6.4.1-arm64.deb' deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/auditbeat-6.5.0-arm64.deb'
when: when:
- ansible_pkg_mgr == 'apt' - ansible_pkg_mgr == 'apt'
- ansible_architecture == 'aarch64' - ansible_architecture == 'aarch64'

View File

@ -43,7 +43,7 @@
- name: Ensure beat is installed (aarch64) - name: Ensure beat is installed (aarch64)
apt: apt:
deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/filebeat-6.4.1-arm64.deb' deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/filebeat-6.5.0-arm64.deb'
when: when:
- ansible_pkg_mgr == 'apt' - ansible_pkg_mgr == 'apt'
- ansible_architecture == 'aarch64' - ansible_architecture == 'aarch64'

View File

@ -43,7 +43,7 @@
- name: Ensure beat is installed (aarch64) - name: Ensure beat is installed (aarch64)
apt: apt:
deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/heartbeat-6.4.1-arm64.deb' deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/heartbeat-6.5.0-arm64.deb'
when: when:
- ansible_pkg_mgr == 'apt' - ansible_pkg_mgr == 'apt'
- ansible_architecture == 'aarch64' - ansible_architecture == 'aarch64'

View File

@ -32,4 +32,4 @@ galaxy_info:
- elastic-stack - elastic-stack
dependencies: dependencies:
- role: elastic_data_hosts - role: elastic_data_hosts
- role: go_install_1.10 - role: elastic_repositories

View File

@ -13,32 +13,24 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
- name: Notice - name: Load templates
debug: shell: >-
msg: >- journalbeat setup
The setup task for templates and dashboards is broken due to missing {{ item }}
configuration. Once the following issue -E 'output.logstash.enabled=false'
[ https://github.com/mheese/journalbeat/issues/136 ] is -E 'output.elasticsearch.hosts={{ coordination_nodes | to_json }}'
resolved, this should be enabled. -E 'setup.template.enabled=true'
-E 'setup.template.overwrite=true'
# - name: Load templates -e -v
# shell: >- with_items:
# /usr/local/bin/journalbeat -setup - "--template"
# {{ item }} - "--pipelines"
# -E 'output.logstash.enabled=false' - "--machine-learning"
# -E 'output.elasticsearch.hosts={{ coordination_nodes | to_json }}' - "--dashboards"
# -E 'setup.template.enabled=true' register: templates
# -E 'setup.template.overwrite=true' until: templates is success
# -e -v retries: 5
# with_items: delay: 5
# - "--template" run_once: true
# - "--pipelines" tags:
# - "--machine-learning" - setup
# - "--dashboards"
# register: templates
# until: templates is success
# retries: 5
# delay: 5
# run_once: true
# tags:
# - setup

View File

@ -25,6 +25,14 @@
tags: tags:
- always - always
- name: Uninstall legacy journalbeat
file:
path: "{{ item }}"
state: absent
with_items:
- /etc/systemd/system/journalbeat.service
- /usr/local/bin/journalbeat
- name: Ensure beat is installed - name: Ensure beat is installed
package: package:
name: "{{ journalbeat_distro_packages }}" name: "{{ journalbeat_distro_packages }}"
@ -39,42 +47,16 @@
tags: tags:
- package_install - package_install
- name: create the system group - name: Ensure beat is installed (aarch64)
group: apt:
name: "journalbeat" deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/journalbeat-6.5.0-arm64.deb'
state: "present" when:
system: "yes" - ansible_pkg_mgr == 'apt'
- ansible_architecture == 'aarch64'
- name: Create the journalbeat user
user:
name: "journalbeat"
group: "journalbeat"
comment: "journalbeat user"
shell: "/bin/false"
createhome: "yes"
home: "/usr/share/journalbeat"
- name: Create journalbeat data path
file:
path: "{{ item }}"
state: directory
owner: "journalbeat"
group: "journalbeat"
mode: "0755"
with_items:
- "/usr/share/journalbeat"
- "/var/lib/journalbeat"
- "/etc/journalbeat"
- name: Install journalbeat
shell: /opt/go1.10.1/go/bin/go get -v github.com/mheese/journalbeat
args:
creates: /usr/local/bin/journalbeat
environment:
PATH: "{{ ansible_env.PATH }}:/opt/go1.10.1/go/bin"
GOPATH: /usr/local
notify: notify:
- Enable and restart journalbeat - Enable and restart heartbeat
tags:
- package_install
- name: Create journalbeat systemd service config dir - name: Create journalbeat systemd service config dir
file: file:
@ -95,7 +77,7 @@
notify: notify:
- Enable and restart journalbeat - Enable and restart journalbeat
- name: Drop journalbeat conf files - name: Drop journalbeat configs
template: template:
src: "{{ item.src }}" src: "{{ item.src }}"
dest: "{{ item.dest }}" dest: "{{ item.dest }}"
@ -106,30 +88,6 @@
notify: notify:
- Enable and restart journalbeat - Enable and restart journalbeat
- name: Run the systemd service role
include_role:
name: systemd_service
private: true
vars:
systemd_service_enabled: "{{ ((elk_package_state | default('present')) != 'absent') | ternary(true, false) }}"
systemd_service_restart_changed: false
systemd_services:
- service_name: "journalbeat"
execstarts:
- /usr/local/bin/journalbeat
-c /etc/journalbeat/journalbeat.yml
-path.home /usr/share/journalbeat
-path.config /etc/journalbeat
-path.data /var/lib/journalbeat
-path.logs /var/log/beats
config_overrides:
Service:
EnvironmentFile: "-/etc/default/go1.10.1"
Unit:
Documentation: https://github.com/mheese/journalbeat/blob/master/README.md
Wants: network-online.target
After: network-online.target
- include_tasks: journalbeat_setup.yml - include_tasks: journalbeat_setup.yml
tags: tags:
- setup - setup

View File

@ -14,6 +14,4 @@
# limitations under the License. # limitations under the License.
journalbeat_distro_packages: journalbeat_distro_packages:
- gcc - journalbeat
- git
- systemd-devel

View File

@ -14,6 +14,4 @@
# limitations under the License. # limitations under the License.
journalbeat_distro_packages: journalbeat_distro_packages:
- gcc - journalbeat
- git
- systemd-devel

View File

@ -14,6 +14,4 @@
# limitations under the License. # limitations under the License.
journalbeat_distro_packages: journalbeat_distro_packages:
- gcc - journalbeat
- git
- libsystemd-dev

View File

@ -52,7 +52,7 @@
- name: Ensure beat is installed (aarch64) - name: Ensure beat is installed (aarch64)
apt: apt:
deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/metricbeat-6.4.1-arm64.deb' deb: 'https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/8709ca2640344a4ba85cba0a1d6eea69/aarch64/metricbeat-6.5.0-arm64.deb'
when: when:
- ansible_pkg_mgr == 'apt' - ansible_pkg_mgr == 'apt'
- ansible_architecture == 'aarch64' - ansible_architecture == 'aarch64'

View File

@ -1,14 +0,0 @@
---
# 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.
- import_playbook: installJournalbeat.yml

View File

@ -35,3 +35,5 @@
- import_playbook: fieldRefresh.yml - import_playbook: fieldRefresh.yml
vars: vars:
index_pattern: filebeat-* index_pattern: filebeat-*
- import_playbook: installJournalbeat.yml

View File

@ -13,5 +13,4 @@
- import_playbook: site-elka.yml - import_playbook: site-elka.yml
- import_playbook: site-beats-core.yml - import_playbook: site-beats-core.yml
- import_playbook: site-beats-community.yml
- import_playbook: createElasticIndexes.yml - import_playbook: createElasticIndexes.yml