130 Commits

Author SHA1 Message Date
Jeffrey Zhang
12d6eeceb5 Copy the logs out of the container
Heka logs almost done. When testing, The collected logs can copy
to the /tmp/logs folder, which will be handle by the gate. This
will be very useful for our gate debug.

TrivialFix

Change-Id: I06ca8ebd13933bfd15cb2fb5e53fc3038b17b8c3
2016-03-09 09:34:59 +08:00
Rodolfo Alonso
c4febaf918 Add "heka-elasticsearch.toml" to /etc/heka in heka bootstrap container.
Missing file during the config procces of bootstrap container.

Change-Id: I600c0ca9c60bddae16310be1fcb65f3be482a599
Closes-Bug: #1554449
2016-03-08 10:02:03 +00:00
Jenkins
eacaf76241 Merge "Move hostname registration to common" 2016-03-07 19:28:45 +00:00
Éric Lemoine
14dec25e54 Fix "wait for log socket" in start.sh
The code in docker/base/start.sh that waits for the log socket does
not work because it includes a bad "space" character after "-S".

This patch changes that character to a real "space" character. It
also sets the SKIP_LOG_SETUP envvar for the Heka container.

TrivialFix

Change-Id: I17a3005df5bbd57678350fc77030e44b5ad6acae
2016-03-07 13:21:38 +01:00
Jenkins
08101fd465 Merge "Make Heka send logs to Elasticsearch" 2016-03-05 15:36:44 +00:00
Éric Lemoine
491aff0b88 Make Heka send logs to Elasticsearch
This patch includes changes relative to integrating Heka with
Elasticsearch and Kibana.

The main change is the addition of an Heka ElasticSearchOutput plugin
to make Heka send the logs it collects to Elasticsearch.

Since Logstash is not used the enable_elk deploy variable is renamed
to enable_central_logging.

If enable_central_logging is false then Elasticsearch and Kibana are
not started, and Heka won't attempt to send logs to Elasticsearch.

By default enable_central_logging is set to false. If
enable_central_logging is set to true after deployment then the Heka
container needs to be recreated (for Heka to get the new
configuration).

The Kibana configuration used property names that are deprecated in
Kibana 4.2. This is changed to use non-deprecated property names.

Previously logs read from files and from Syslog had a different Type
in Heka. This is changed to always use "log" for the Type. In this
way just one index instead of two is used in Elasticsearch, making
things easier to the user on the visualization side.

The HAProxy configuration is changed to add entries for Kibana.
Kibana server is now accessible via the internal VIP, and also via
the external VIP if there's one configured.

The HAProxy configuration is changed to add an entry for
Elasticsearch. So Elasticsearch is now accessible via the internal
VIP. Heka uses that channel for communicating with Elasticsearch.

Note that currently the Heka logs include "Plugin
elasticsearch_output" errors when Heka starts. This occurs when Heka
starts processing logs while Elasticsearch is not yet started. These
are transient errors that go away when Elasticsearch is ready. And
with buffering enabled on the ElasticSearchOuput plugin logs will be
buffered and then retransmitted when Elasticsearch is ready.

Change-Id: I6ff7a4f0ad04c4c666e174693a35ff49914280bb
Implements: blueprint central-logging-service
2016-03-05 11:51:49 +01:00
Jenkins
7ab6def355 Merge "Add reconfigure for heka" 2016-03-04 14:36:47 +00:00
Mauricio Lima
285e42a99c Make Heka collect Manila logs
Partially implements: blueprint heka

Change-Id: I3fadbf29f5219a293b8b1114d192e27888be2c59
2016-03-03 10:53:59 -05:00
SamYaple
7f6de0a7e0 Move hostname registration to common
The storage hostname is used in many conf files all over the place and
should be registered upon each run for every service

TrivialFix

Change-Id: I1d5a20cb6d51cee9f529cf2e1fb144158f7718a9
2016-03-03 15:18:30 +00:00
Éric Lemoine
b950fe2383 Add reconfigure for heka
Change-Id: I21c5fa106c5d1cf1ec1c3de1a9378595c6c0b086
Partially-Implements: blueprint kolla-reconfig
2016-03-03 12:57:00 +01:00
SamYaple
d3cfb2052a Change kolla_internal_address variable
Due to poor planning on our variable names we have a situation where
we have "internal_address" which must be a VIP, but "external_address"
which should be a DNS name. Now with two vips "external_vip_address"
is a new variable.

This corrects that issue by deprecating kolla_internal_address and
replacing it with 4 nicely named variables.

kolla_internal_vip_address
kolla_internal_fqdn
kolla_external_vip_address
kolla_external_fqdn

The default behaviour will remain the same, and the way the variable
inheritance is setup the kolla_internal_address variable can still be
set in globals.yml and propogate out to these 4 new variables like it
normally would, but all reference to kolla_internal_address has been
completely removed.

Change-Id: I4556dcdbf4d91a8d2751981ef9c64bad44a719e5
Partially-Implements: blueprint ssl-kolla
2016-02-26 20:00:09 +00:00
Éric Lemoine
95cf542f8d Fix parsing of RabbitMQ logs
Currently Heka fails to parse the RabbitMQ logs. There are two
problems:

1. The rabbit-sasl.log file is ignored but the file_match expression
   does not match.
2. The delimiter used in the RegexSplitter makes Heka stop on the
   very first log entry. '\n\n(=[^=]+====' (with two \n's) is
   a better delimiter. deliver_incomplete_final is used to get the
   final log entry.

TrivialFix

Change-Id: I94720340d5b2d6fd5d7641b9ff58733f6cd882ee
2016-02-26 14:50:32 +01:00
Jenkins
c79174012c Merge "Add the default empty reconfigure.yml file to all roles" 2016-02-25 21:58:56 +00:00
Jeffrey Zhang
d26c259754 Add the default empty reconfigure.yml file to all roles
DocImpact

Partially-implements: bp kolla-reconfig
Change-Id: I9738e80960bcfbef18d1ef1b7942f81c45684e85
2016-02-25 09:32:53 +08:00
Jenkins
bb48523f9f Merge "Use passed client IP address in various audit logs" 2016-02-24 17:00:35 +00:00
Jenkins
a9b016e43a Merge "Fix non-idempotent heka bootstrap" 2016-02-24 16:32:27 +00:00
Dave McCowan
b770339534 Use passed client IP address in various audit logs
HAProxy: change to use option forwardfor to pass origin IP address
to backend via X-Forwarded-For header

Keystone: Apache does the audit logs for keystone.  Change the
LogFormat to display the passed address instead of the connection
address which is that of the load balancer.

Nova, Cinder, Glance: these services can make use of the address
passed in X-Forwarded-For.  With this setting the API logs for
these services include the client IP address.

Change-Id: Ia861ecc11a7c7d463d0366586926d1a842853f69
Closes-Bug: #1548935
2016-02-24 09:51:13 -05:00
SamYaple
52c4667b10 Fix non-idempotent heka bootstrap
This bootstrap was non-idempotent. This patch follows the style
first implemented with nova to make this idempotent.

TrivialFix

Change-Id: Id04e59c5274a7d8a5bffd3ce018f3bbb84839d75
2016-02-23 22:16:56 +00:00
Jenkins
56c32ac39a Merge "Remove Rsyslog entirely" 2016-02-23 16:37:56 +00:00
Jenkins
a431b69560 Merge "Make Heka collect Mistral logs" 2016-02-23 16:37:49 +00:00
Éric Lemoine
0417844b8d Remove Rsyslog entirely
Partially implements: blueprint heka

Change-Id: I1322d2dc870e6f8fe052926995d993e8a08a25db
2016-02-23 01:45:23 -08:00
Éric Lemoine
a2fe38bba5 Make Heka collect Mistral logs
Partially implements: blueprint heka

Change-Id: Ib6ac3228626360216c2c738ed601d61375b51675
2016-02-23 01:33:47 -08:00
Éric Lemoine
d87786e41e Change Jinja2 expressions in heka.json.j2
This follows up on a review comment from sdake [*] and change the
Jinja2 expressions used in heka.json.j2.

[*] <https://review.openstack.org/#/c/283118/3/ansible/roles/common/templates/heka.json.j2@49>

TrivialFix

Change-Id: I20ee5084cfef6acf53a737757fe727df5b4e9fce
2016-02-23 09:39:44 +01:00
Éric Lemoine
e6a9b9627a Fix Swift logging
Swift uses Syslog, but it uses a custom log format.  So this commit
adds a specific Heka decoder for Swift.

It also increases the log level from "warning" to "info" to make
Swift more verbose.  Note that "info" is the default log level in
Swift.

And it disables the Heka configuration for Swift when "enable_swift"
is set to "no".  This prevents Heka from creating 15 empty Swift log
files in the logs volume.

Partially implements: blueprint heka

Change-Id: If7a7d0707e71be2957178e2d45b5de51b788232e
2016-02-22 08:53:20 -08:00
Éric Lemoine
d935f2da68 Make Heka collect Magnum logs
Partially implements: blueprint heka
Change-Id: I91a977c6a3632c570f7a6054c8de3f5e3cb6932c
2016-02-19 21:56:10 +00:00
Éric Lemoine
1e86308140 Make Heka collect Murano logs
Partially implements: blueprint heka
Change-Id: I17fc4b838d6ba8b6fcfc5c08314fef5fac1c7aff
2016-02-19 21:56:10 +00:00
Éric Lemoine
82264ab7d6 Make Heka collect Heat logs
Partially implements: blueprint heka
Change-Id: Ie22c4326c6ec2a3426b0c3b8fda4554b1b2541b0
2016-02-19 21:56:10 +00:00
Éric Lemoine
170b493d47 Make Heka collect Cinder logs
Partially implements: blueprint heka
Change-Id: I9dcb71a9cf063fb520fcf3485e0376f1e90d87ad
2016-02-19 21:56:10 +00:00
Éric Lemoine
88633684a1 Make Heka collect Swift logs
Partially implements: blueprint heka
Change-Id: I893a0c4a4cab9d4d98821634ddd2ff67015c4e3f
2016-02-19 21:56:05 +00:00
Éric Lemoine
a2b130d6ba Make Heka collect Neutron logs
Partially implements: blueprint heka
Change-Id: I70e94f4ef7380c6f376a3066d7ddda042c703637
2016-02-19 21:49:21 +00:00
Éric Lemoine
684873b89b Make Heka collect Keystone logs
Partially implements: blueprint heka
Change-Id: I940143876981a04464af67aff65c09a06926701d
2016-02-19 21:49:21 +00:00
Éric Lemoine
0251ac73d5 Make Ansible write its logs into "kolla_logs"
The Ansible logs are currently not collected by Heka.  This can be
done later, with an Ansible-specific decoder for Heka.

Partially implements: blueprint heka
Change-Id: I8d3ba4edb527f61c0a8234024b4be953c6e6c565
2016-02-19 21:49:21 +00:00
Éric Lemoine
5de471f61e Make Heka collect Glance logs
Partially implements: blueprint heka
Change-Id: I9e5ba649bc45356822138ad223430f4b93722448
2016-02-19 21:49:21 +00:00
Éric Lemoine
4445c81991 Make Heka collect MariaDB logs
Partially implements: blueprint heka
Change-Id: Ib5e740683cee296bcac69228f525594850d62a27
2016-02-19 21:49:21 +00:00
Éric Lemoine
511a758982 Make Heka collect Nova logs
Partially implements: blueprint heka
Change-Id: I67dfc5d762d74454e4a852dd61c57fe9cd4b78c8
2016-02-19 21:49:18 +00:00
Jenkins
e80a6d9075 Merge "Make Heka collect RabbitMQ logs" 2016-02-19 21:19:06 +00:00
Jenkins
a028c9ac50 Merge "Make Heka collect HAProxy and Keepalived logs" 2016-02-19 21:18:46 +00:00
Jenkins
01b044f493 Merge "Add Heka to common role" 2016-02-19 21:18:35 +00:00
Éric Lemoine
1ded68d2d3 Make Heka collect RabbitMQ logs
Partially implements: blueprint heka
Change-Id: I8fd3324daf15e52712591c2b3cbec613d82b73b3
2016-02-19 20:32:25 +00:00
Éric Lemoine
3fca4ccbaf Make Heka collect HAProxy and Keepalived logs
Partially implements: blueprint heka
Change-Id: I7e2bf4e520fa14fd40e3b329f3b2998ae6ea47f4
2016-02-19 20:32:10 +00:00
Éric Lemoine
916925c9a8 Add Heka to common role
Partially implements: blueprint heka
Change-Id: I9ddad09b3f16b323c7ed535243458b0de6620cdb
2016-02-19 20:32:00 +00:00
SamYaple
39dce0fe85 Upgrade common role
This one is simple, simply start the services with new images!

Change-Id: Ia29cfa136856e8413dac1edee38a55d9f5a45c3e
Partially-Implements: blueprint upgrade-kolla
2016-02-19 15:57:10 +00:00
Jenkins
6e622fa534 Merge "Move socket binding to named_volume" 2016-02-17 02:06:26 +00:00
SamYaple
690e6853de Move socket binding to named_volume
The extend_start.sh script for rsyslog is removed as it is no longer
needed. Docker no longer binds to /dev/log or /run/kolla/log

Closes-Bug: #1544545
Change-Id: Ic0a323a26ee4e9e15baf4598285844a8a4955f23
2016-02-16 14:42:41 +00:00
Dave McCowan
1cedf77f19 Use variables to specify http or https when constructing URLs
To allow for TLS to protect the service endpoints, the protocol
in the URLs for the endpoints will be either http or https.

This patch removes the hardcoded values of http and replaces them
with variables that can be adjusted accordingly in future patches.

Change-Id: Ibca6f8aac09c65115d1ac9957410e7f81ac7671e
Partially-implements: blueprint ssl-kolla
2016-02-15 09:48:58 -05:00
SamYaple
e8d66766f0 Fix gate for docker 1.10
Docker 1.10 has broken the gate and this patch will correct that
breakage.

The issue comes with rsyslog. Due to a commit in Docker 1.10 [1] we
must change the way we get the log socket for rsyslog. The /dev/
folder will no longer populate as we used it. So instead we simply
make a new socket in a path we control and share that to the correct
location in the containers.

Additionally, adjust the gate for new Docker daemon.

[1] https://github.com/docker/docker/pull/16639
Partially-Implements: blueprint kolla-upgrade
Change-Id: I881a2ecdf6d7b35991e1d38a3f3e60d022d6577f
2016-02-06 06:48:53 +00:00
SamYaple
80b7266ed1 Rename kolla_ansible to kolla_toolbox
This change is needed for clarity. We have a kolla-ansible script.
We have a kolla-mesos repo. We plan to have a kolla-ansible repo.
Already we have had far too much confusion about whether we are
talking about the container or the project. Naming this kolla-toolbox
eliminates all of that confusion and its probably a bit more accurate
of a name too.

Closes-Bug: #1541053
Change-Id: I8fd1f49d5a22b36ede5b10f46b9fe02ddda9007e
2016-02-02 18:12:15 +00:00
Michal Jastrzebski
375965ddfb Add stub upgrade.yml
After introduction of pull action and turing every main.yml into
{{action}}.yml we lost ability to perform upgrade

Change-Id: Ie9fa2cd083b061033abc733fba53d54f9c55e393
Fixes-Bug: #1538210
2016-01-26 11:52:19 -06:00
Maciej Szankin
57fdb0ceed Consistency changes in configs
TrivialFix

Change-Id: Iafd92e4e962dec5a225582ff058ab3603e5a50bb
2016-01-19 14:58:11 +01:00
Wanlong Gao
93df2483c6 Replace the deprecated rsyslog config style
The old style has been deprecated for time:
http://www.rsyslog.com/doc/v8-stable/compatibility/v7compatibility.html#omruleset-and-discard-action-are-deprecated
TrivialFix

Change-Id: I70fa065f5fbd686ddb8f4134bb93c08c7af00365
2016-01-16 20:40:55 +08:00