StarlingX open source release updates
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
This commit is contained in:
parent
4b6bbc9989
commit
98f9250109
7
CONTRIBUTORS.wrs
Normal file
7
CONTRIBUTORS.wrs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
The following contributors from Wind River have developed the seed code in this
|
||||||
|
repository. We look forward to community collaboration and contributions for
|
||||||
|
additional features, enhancements and refactoring.
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
=============
|
||||||
|
Jerry Sun <Jerry.Sun@windriver.com>
|
202
LICENSE
Normal file
202
LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
5
README.rst
Normal file
5
README.rst
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
===========
|
||||||
|
stx-clients
|
||||||
|
===========
|
||||||
|
|
||||||
|
StarlingX Clients
|
3
install-log-server/centos/build_srpm.data
Normal file
3
install-log-server/centos/build_srpm.data
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
SRC_DIR=install-log-server
|
||||||
|
COPY_LIST="$SRC_DIR/*"
|
||||||
|
TIS_PATCH_VER=4
|
28
install-log-server/centos/install-log-server.spec
Normal file
28
install-log-server/centos/install-log-server.spec
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
Summary: install-log-server
|
||||||
|
Name: install-log-server
|
||||||
|
Version: 1.1.2
|
||||||
|
Release: %{tis_patch_ver}%{?_tis_dist}
|
||||||
|
License: Apache-2.0
|
||||||
|
Group: devel
|
||||||
|
Packager: Wind River <info@windriver.com>
|
||||||
|
URL: unknown
|
||||||
|
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
%define cgcs_sdk_deploy_dir /opt/deploy/cgcs_sdk
|
||||||
|
|
||||||
|
%description
|
||||||
|
Titanium Cloud log server installation
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup
|
||||||
|
mv %name wrs-%{name}-%{version}
|
||||||
|
tar czf wrs-%{name}-%{version}.tgz wrs-%{name}-%{version}
|
||||||
|
|
||||||
|
# Install for guest-client package
|
||||||
|
%install
|
||||||
|
install -D -m 644 wrs-%{name}-%{version}.tgz %{buildroot}%{cgcs_sdk_deploy_dir}/wrs-%{name}-%{version}.tgz
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{cgcs_sdk_deploy_dir}/wrs-%{name}-%{version}.tgz
|
||||||
|
|
202
install-log-server/install-log-server/LICENSE
Normal file
202
install-log-server/install-log-server/LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
202
install-log-server/install-log-server/install-log-server/LICENSE
Normal file
202
install-log-server/install-log-server/install-log-server/LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
@ -0,0 +1,93 @@
|
|||||||
|
Copyright © 2016-2017 Wind River Systems, Inc.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLE Titanium Cloud Log Server configuration utility
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
This utility provides an example of how to install and configure
|
||||||
|
Elasticsearch, Kibana and Logstash on a remote Linux central logging
|
||||||
|
server, for the purposes of receiving syslogs from a Titanium
|
||||||
|
Cloud System. This utility will install the open-source ELK packages
|
||||||
|
with the appropriate network configuration on the Linux server.
|
||||||
|
|
||||||
|
Refer to the Titanium Cloud System Administration guide for how to
|
||||||
|
configure the Titanium Cloud System to send its syslogs to this remote
|
||||||
|
Linux server.
|
||||||
|
|
||||||
|
NOTE: This is ONLY an EXAMPLE of an ELK installation on a remote Linux
|
||||||
|
central logging server. Wind River does NOT support the ELK installation
|
||||||
|
itself, only the sending of syslogs to the ELK server from Titanium Cloud.
|
||||||
|
|
||||||
|
NOTE: This example installer has only been tested with IPv4.
|
||||||
|
|
||||||
|
|
||||||
|
Supported Operating Systems
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Ubuntu 14.04 LTS
|
||||||
|
Ubuntu 12.04 LTS
|
||||||
|
Ubuntu 16.04 LTS
|
||||||
|
CentOS 6
|
||||||
|
CentOS 7
|
||||||
|
|
||||||
|
Installing the utility
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
To install the utility on a Linux machine follow these steps:
|
||||||
|
|
||||||
|
1. Untar the provided tarball:
|
||||||
|
tar xfv wrs-install-log-server-*.tgz
|
||||||
|
or using your favorite manager.
|
||||||
|
|
||||||
|
2. cd wrs-install-log-server-*
|
||||||
|
|
||||||
|
3. Execute the provided installer script:
|
||||||
|
sudo ./install-log-server.sh -i <IP Address> [ -u | -t ] [... Other Options ...]
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
-c Path to a ca certificate file that Logstash will use.
|
||||||
|
-h Show help options.
|
||||||
|
-i The IP address all Elasticsearch, Logstash, Kibana modules will use to bind and publish to.
|
||||||
|
-k Path to a server key file that Logstash will use.
|
||||||
|
-p The port Logstash will bind and listen to. The default port is 514. Privileged ports are redirected to port 10514.
|
||||||
|
-t Set this system up to receive logs through TCP. (at least one of TCP/TLS or UDP options must be selected)
|
||||||
|
-u Set this system up to receive logs through UDP. (at least one of TCP/TLS or UDP options must be selected)
|
||||||
|
|
||||||
|
This utility will install a remote log server and configures communications with Titanium Cloud.
|
||||||
|
Refer to the Titanium Cloud System Administration guide and README file for more details.
|
||||||
|
|
||||||
|
NOTE: Both TCP and UDP can be configured at the same time. Specifying -c and -k will have encryption on top of TCP.
|
||||||
|
|
||||||
|
Using the Kibana web interface
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
To begin using the log server, you must enable remote logging on the Titanium
|
||||||
|
Cloud system. Kibana provides a web-based interface for using an installed
|
||||||
|
and configured remote log server. Refer to the Titanium Cloud System
|
||||||
|
Administration guide and README file for additional to start exploring
|
||||||
|
with Kibana.
|
||||||
|
|
||||||
|
1. Open Kibana in your browser http://YOURDOMAIN.com:5601 or
|
||||||
|
http://<IP Address>:5601
|
||||||
|
|
||||||
|
2. To use Kibana dashboard visualizations, open Kibana in a browser, click the Dashboard tab, click the
|
||||||
|
+ button, click "manage visualizations" on the right above the Visualization Filter text box, click
|
||||||
|
"Import" and upload the tisElkDashboards.json file found in the directory containing this doc.
|
||||||
|
After it has loaded, you can view either Dashboards or Visualizations by going to the Settings tab
|
||||||
|
and clicking the Dashboard or Visualizations tab on that page. To view dashboards, select them and
|
||||||
|
click the eye icon on the right. Selecting multiple dashboards is not supported because some dashboards
|
||||||
|
are set to take up the entire page, meaning other dashboards might not be displayed, or that some of the
|
||||||
|
visualizations may be cut off. Thus, it is recommended that only one dashboard is viewed at a time, or
|
||||||
|
that you add and check dashboards one-by-one to verify that the selected dashboards can be displayed
|
||||||
|
together. To view an individual visualization, click the eye icon beside the visualization's name; to view
|
||||||
|
multiple visualizations, click the Dashboard tab at the top of the page, click the + button, and the
|
||||||
|
visualizations should appear in a droplist. Select as many as you'd like to view.
|
||||||
|
|
||||||
|
Visualizations are graphical visualizations of the log data grouped by things such as fieldname.
|
||||||
|
Dashboards are a collection of visualizations.
|
||||||
|
|
||||||
|
Note: The provided dashboards and visualizations are just samples of dashboards that can be constructed
|
||||||
|
based on logs collected from Titanium Cloud.
|
482
install-log-server/install-log-server/install-log-server/install-log-server.sh
Executable file
482
install-log-server/install-log-server/install-log-server/install-log-server.sh
Executable file
@ -0,0 +1,482 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016-2017 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
#The following paths are using for package installation
|
||||||
|
ELASTICSEARCH_RPM_URL=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.2/elasticsearch-2.3.2.rpm
|
||||||
|
ELASTICSEARCH_DEB_URL=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.3.2/elasticsearch-2.3.2.deb
|
||||||
|
LOGSTASH_RPM_URL=https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.4-1.noarch.rpm
|
||||||
|
LOGSTASH_DEB_URL=https://download.elastic.co/logstash/logstash/packages/debian/logstash_2.3.4-1_all.deb
|
||||||
|
KIBANA_RPM_URL=https://download.elastic.co/kibana/kibana/kibana-4.5.1-1.x86_64.rpm
|
||||||
|
KIBANA_DEB_URL=https://download.elastic.co/kibana/kibana/kibana_4.5.1_amd64.deb
|
||||||
|
|
||||||
|
printusage () {
|
||||||
|
echo "Usage:"
|
||||||
|
echo "install-log-server -i <IP Address> [OPTION...]"
|
||||||
|
echo "-c Path to a ca certificate file that logstash will use."
|
||||||
|
echo "-h Show help options."
|
||||||
|
echo "-i The IP address all Elasticsearch, Logstash, Kibana modules will use to bind and publish to."
|
||||||
|
echo "-k Path to a server key file that logstash will use."
|
||||||
|
echo "-p The port Logstash will bind and listen to. Privileged ports are redirected to port 10514."
|
||||||
|
echo "-t Set this system up to receive logs through TCP. (at least one of TCP/TLS or UDP options must be selected)"
|
||||||
|
echo "-u Set this system up to receive logs through UDP. (at least one of TCP/TLS or UDP options must be selected)"
|
||||||
|
echo ""
|
||||||
|
echo "This utility will install a remote log server and configures communications with Titanium Cloud."
|
||||||
|
echo "Refer to the Titanium Cloud System Administration guide and README file for more details."
|
||||||
|
}
|
||||||
|
|
||||||
|
PORT=514 # The default port to align with the Titanium Cloud remote logging component port is 514
|
||||||
|
while getopts ":c:h:i:k:p:tu" opt; do
|
||||||
|
case $opt in
|
||||||
|
c)
|
||||||
|
CERT_FILE=${OPTARG}
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
printusage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
IP_ADDRESS=${OPTARG}
|
||||||
|
;;
|
||||||
|
k)
|
||||||
|
KEY_FILE=${OPTARG}
|
||||||
|
;;
|
||||||
|
p)
|
||||||
|
PORT=${OPTARG}
|
||||||
|
;;
|
||||||
|
t)
|
||||||
|
USE_TCP=true
|
||||||
|
;;
|
||||||
|
u)
|
||||||
|
USE_UDP=true
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option: -$OPTARG, valid options are -h, -i, and -p."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# The -i option is mandatory
|
||||||
|
if [[ -z $IP_ADDRESS ]] ; then
|
||||||
|
echo "The IP Address option is mandatory: install-log-server -i <IP Address>"
|
||||||
|
# config must set logstash up for SOMETHING
|
||||||
|
if [ ! $USE_TCP ] && [ ! $USE_UDP ] ; then
|
||||||
|
echo "and at least one of TCP/TLS or UDP options must also be selected. "
|
||||||
|
fi
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TLS_PARAM_COUNT=0
|
||||||
|
# to enable TLS, both certificate and key must be provided, not 1 but not the other
|
||||||
|
if [[ ! -z "$CERT_FILE" ]]; then
|
||||||
|
TLS_PARAM_COUNT=$((TLS_PARAM_COUNT+1))
|
||||||
|
if [[ ! -e "$CERT_FILE" ]]; then
|
||||||
|
echo "$CERT_FILE is not a valid file path."
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -z "$KEY_FILE" ]]; then
|
||||||
|
TLS_PARAM_COUNT=$((TLS_PARAM_COUNT+1))
|
||||||
|
if [[ ! -e "$KEY_FILE" ]]; then
|
||||||
|
echo "$KEY_FILE is not a valid file path."
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $TLS_PARAM_COUNT -eq 1 ]; then
|
||||||
|
echo "Both cert file and key file must be provided for TLS."
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TLS is on top of TCP
|
||||||
|
if [ $TLS_PARAM_COUNT -eq 2 ]; then
|
||||||
|
if [ ! $USE_TCP ] ; then
|
||||||
|
echo "TLS can only be used with tcp, please also enable TCP by specifying -t"
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# config must set logstash up for SOMETHING
|
||||||
|
if [ ! $USE_TCP ] && [ ! $USE_UDP ] ; then
|
||||||
|
echo "Please specify at least one of -t for TCP and -u for UDP"
|
||||||
|
printusage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# wget is required and used for package download which is more reliable
|
||||||
|
# than downloading packages from the elastic.co repositories.
|
||||||
|
# One of apt-get or yum package managers is required.
|
||||||
|
# USE_APT is true when the APT package manager is installed.
|
||||||
|
USE_APT=false
|
||||||
|
install_wget=false
|
||||||
|
install_curl=false
|
||||||
|
install_iptables_save=false
|
||||||
|
if [[ ! -z "which wget" ]]; then
|
||||||
|
install_wget=true
|
||||||
|
fi
|
||||||
|
if [[ ! -z "which curl" ]]; then
|
||||||
|
install_curl=true
|
||||||
|
fi
|
||||||
|
if [[ "$PORT" -lt "1024" ]]; then
|
||||||
|
install_iptables_save=true
|
||||||
|
fi
|
||||||
|
YUM_CMD=$(which yum)
|
||||||
|
APT_GET_CMD=$(which apt-get)
|
||||||
|
if [[ ! -z $YUM_CMD ]]; then
|
||||||
|
PKG_NAME="yum"
|
||||||
|
if $install_wget ; then
|
||||||
|
echo "wget is required for Java installation."
|
||||||
|
yum install wget
|
||||||
|
fi
|
||||||
|
if $install_iptables_save; then
|
||||||
|
echo "iptables-services is required for Logstash with protected ports under 1024."
|
||||||
|
yum install iptables-services
|
||||||
|
fi
|
||||||
|
dist="$(cat /etc/*-release)"
|
||||||
|
firewallcmdStatus="$(firewall-cmd --state 2>/dev/null)"
|
||||||
|
if [[ "$dist" == *"CentOS"* ]] && [[ "$firewallcmdStatus" == *"running"* ]]; then
|
||||||
|
if [ "$USE_TCP" = true ]; then
|
||||||
|
firewall-cmd --zone=public --add-port="$PORT"/tcp --permanent
|
||||||
|
firewall-cmd --zone=public --add-port=10514/tcp --permanent
|
||||||
|
elif [ "$USE_UDP" = true ]; then
|
||||||
|
firewall-cmd --zone=public --add-port="$PORT"/udp --permanent
|
||||||
|
firewall-cmd --zone=public --add-port=10514/udp --permanent
|
||||||
|
fi
|
||||||
|
firewall-cmd --reload
|
||||||
|
fi
|
||||||
|
elif [[ ! -z $APT_GET_CMD ]]; then
|
||||||
|
PKG_NAME="apt-get"
|
||||||
|
USE_APT=true
|
||||||
|
if $install_wget ; then
|
||||||
|
echo "wget is required for Java installation."
|
||||||
|
apt-get install wget
|
||||||
|
fi
|
||||||
|
if $install_curl ; then
|
||||||
|
echo "curl is required for Elasticsearch package download."
|
||||||
|
apt-get install curl
|
||||||
|
fi
|
||||||
|
if $install_iptables_save; then
|
||||||
|
echo "iptables-persistent is required for Logstash with protected ports under 1024."
|
||||||
|
apt-get install iptables-persistent
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No supported package managers detected (apt-get, yum)"
|
||||||
|
echo "exiting installer..."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_install_package() {
|
||||||
|
# The URL parameter is required for this function
|
||||||
|
if [ -z "$1" ]
|
||||||
|
then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PACKAGE_URL=$1
|
||||||
|
PACKAGE_FILE=${1##*/}
|
||||||
|
echo $PACKAGE_URL
|
||||||
|
echo $PACKAGE_FILE
|
||||||
|
if $USE_APT ; then
|
||||||
|
if [ ! -f "$PACKAGE_FILE" ] ; then
|
||||||
|
curl -L -O $PACKAGE_URL
|
||||||
|
fi
|
||||||
|
dpkg -i $PACKAGE_FILE
|
||||||
|
else
|
||||||
|
if [ ! -f "$PACKAGE_FILE" ] ; then
|
||||||
|
echo Downloading $PACKAGE_URL
|
||||||
|
curl -L -O $PACKAGE_URL
|
||||||
|
#wget $PACKAGE_URL
|
||||||
|
fi
|
||||||
|
echo Installing $PACKAGE_FILE
|
||||||
|
yum localinstall --nogpgcheck $PACKAGE_FILE
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
boot_at_startup () {
|
||||||
|
if [ -z "$1" ]
|
||||||
|
then
|
||||||
|
echo "A URL parameter must be passed to boot_at_startup"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SYSTEMCTL=$(which systemctl)
|
||||||
|
if [[ ! -z $SYSTEMCTL ]]; then
|
||||||
|
systemctl daemon-reload
|
||||||
|
echo "Starting $1 with systemctl."
|
||||||
|
systemctl enable $1.service
|
||||||
|
systemctl restart $1.service
|
||||||
|
else
|
||||||
|
update-rc.d $1 defaults 95 10
|
||||||
|
echo "Starting $1 with update-rc.d."
|
||||||
|
/etc/init.d/$1 restart
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Checking for required Java version."
|
||||||
|
if type -p java; then
|
||||||
|
_java=java
|
||||||
|
elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
|
||||||
|
_java="$JAVA_HOME/bin/java"
|
||||||
|
else
|
||||||
|
install_java=y
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$_java" ]]; then
|
||||||
|
# Get java version in format 1.8.0.73
|
||||||
|
version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}'| sed -r 's/[_]+/./g')
|
||||||
|
#minimum java version is 1.8.0.73
|
||||||
|
min=1.8.0.73
|
||||||
|
val=${version}
|
||||||
|
if (( ${val%%.*} < ${min%%.*} || ( ${val%%.*} == ${min%%.*} && ${val##*.} < ${min##*.} ) )) ; then
|
||||||
|
echo "Elasticsearch recommends that you use the Oracle JDK version 1.8.0_73."
|
||||||
|
echo "Refer to the current documentation: https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html"
|
||||||
|
read -p "Would you like to install Oracle Java 8? y/n: " PACKMAN_CONTINUE_INPUT
|
||||||
|
while [[ "$PACKMAN_CONTINUE_INPUT" != "y" && "$PACKMAN_CONTINUE_INPUT" != "n" ]]
|
||||||
|
do
|
||||||
|
echo invalid input: $PACKMAN_CONTINUE_INPUT
|
||||||
|
read -p "Continue with installation? y/n: " PACKMAN_CONTINUE_INPUT
|
||||||
|
done
|
||||||
|
if [[ "$PACKMAN_CONTINUE_INPUT" == "y" ]]; then
|
||||||
|
install_java=y
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$install_java" == "y" ]]; then
|
||||||
|
echo "Installing Java:"
|
||||||
|
if $USE_APT ; then
|
||||||
|
add-apt-repository ppa:webupd8team/java
|
||||||
|
apt-get update
|
||||||
|
apt-get install oracle-java8-installer
|
||||||
|
apt-get install oracle-java8-set-default
|
||||||
|
else
|
||||||
|
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jre-8u92-linux-x64.rpm"
|
||||||
|
yum localinstall jre-8u92-linux-x64.rpm
|
||||||
|
fi
|
||||||
|
echo "Java installation complete."
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait_for_elasticsearch() {
|
||||||
|
# elasticsearch can take some time to start
|
||||||
|
ES_ACTIVE=false
|
||||||
|
echo "Waiting for Elasticsearch to start."
|
||||||
|
for i in {1..15}; do
|
||||||
|
sleep 2
|
||||||
|
response=$(curl -s -XGET "http://${IP_ADDRESS}:9200/_cluster/health?pretty=true")
|
||||||
|
if [[ ! "$response" =~ "green" ]] && [[ ! "$response" =~ "yellow" ]]; then
|
||||||
|
echo "Waiting for Elasticsearch to start."
|
||||||
|
else
|
||||||
|
ES_ACTIVE=true
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$ES_ACTIVE" == false ]; then
|
||||||
|
echo "Elasticsearch is not responding. Please resolve the issue and rerun the script."
|
||||||
|
echo "More details at: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html"
|
||||||
|
echo "Refer to the install-log-server README file for more details"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Elasticsearch is installed and running."
|
||||||
|
}
|
||||||
|
# Install Elasticsearch if necessary
|
||||||
|
response=$(curl -s -XGET "http://${IP_ADDRESS}:9200/_cluster/health?pretty=true")
|
||||||
|
if [[ ! "$response" =~ "green" ]] && [[ ! "$response" =~ "yellow" ]]; then
|
||||||
|
echo "Installing Elasticsearch."
|
||||||
|
if $USE_APT ; then
|
||||||
|
get_install_package $ELASTICSEARCH_DEB_URL
|
||||||
|
else
|
||||||
|
get_install_package $ELASTICSEARCH_RPM_URL
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove a previously configured network host ip address
|
||||||
|
sed -i "/^network.host:.*/d" /etc/elasticsearch/elasticsearch.yml
|
||||||
|
# Add the IP address in the elasticsearch config file
|
||||||
|
sed -i "/# network.host:.*/a network.host: ${IP_ADDRESS}" /etc/elasticsearch/elasticsearch.yml
|
||||||
|
boot_at_startup elasticsearch
|
||||||
|
wait_for_elasticsearch
|
||||||
|
else
|
||||||
|
echo "Elasticsearch is already installed and running."
|
||||||
|
fi
|
||||||
|
|
||||||
|
config_logstash() {
|
||||||
|
if [ -f "./wrs-logstash.conf" ] ; then
|
||||||
|
cp -f ./wrs-logstash.conf /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
else
|
||||||
|
echo "Error: wrs-logstash.conf is missing from install package!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fill in the config file based on what transport the user specified
|
||||||
|
if [ $USE_TCP ] ; then
|
||||||
|
TCP_PARAMS="tcp {\n host => \"127.0.0.1\"\n port => 514\n #OPTIONAL_TLS_PARAMS\n }"
|
||||||
|
sed -i "s/#TCP_PARAMS/${TCP_PARAMS}/g" /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_UDP ] ; then
|
||||||
|
UDP_PARAMS="udp {\n host => \"127.0.0.1\"\n port => 514\n }"
|
||||||
|
sed -i "s/#UDP_PARAMS/${UDP_PARAMS}/g" /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update conf file with IP_ADDRESS
|
||||||
|
sed -i "s/ host => .*/ host => \"${IP_ADDRESS}\"/" /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
sed -i "s/.*elasticsearch { hosts.*/ elasticsearch { hosts => [\"${IP_ADDRESS}:9200\"] }/" /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
|
||||||
|
# install certificate, key, and set TLS config
|
||||||
|
if [ $TLS_PARAM_COUNT -eq 2 ]; then
|
||||||
|
mkdir -p /etc/pki/tls/certs
|
||||||
|
mkdir -p /etc/pki/tls/private
|
||||||
|
cp $CERT_FILE /etc/pki/tls/certs/remote-logging-ca-cert.pem
|
||||||
|
cp $KEY_FILE /etc/pki/tls/private/remote-logging-server-key.pem
|
||||||
|
SSL_PARAMS="ssl_enable => true\n ssl_verify => false\n ssl_cert => \"\/etc\/pki\/tls\/certs\/remote-logging-ca-cert.pem\"\n ssl_key => \"\/etc\/pki\/tls\/private\/remote-logging-server-key.pem\""
|
||||||
|
sed -i "s/#OPTIONAL_TLS_PARAMS/${SSL_PARAMS}/g" /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the user entered a privileged port then redirect to a non-privileged port logstash can use.
|
||||||
|
if [[ "$PORT" -lt "1024" ]]; then
|
||||||
|
# Make iptables rules persistent after restart
|
||||||
|
if [ -f "/bin/systemctl" ] ; then
|
||||||
|
systemctl enable iptables
|
||||||
|
else
|
||||||
|
update-rc.d iptables defaults 95 10
|
||||||
|
fi
|
||||||
|
|
||||||
|
port_in_use=$( netstat -an | grep 10514 )
|
||||||
|
if [ -f "/bin/systemctl" ] ; then
|
||||||
|
systemctl enable iptables
|
||||||
|
else
|
||||||
|
update-rc.d iptables defaults 95 10
|
||||||
|
fi
|
||||||
|
netstat -an | grep 10514
|
||||||
|
# Delete any pre-existing rules forwarding to port 10514
|
||||||
|
old_rules_list=$(iptables -t nat --line-numbers -L | grep '^[0-9].*10514' | awk '{ print $1 }' | tac)
|
||||||
|
old_rules_count=0
|
||||||
|
for i in $old_rules_list; do
|
||||||
|
iptables -t nat -D PREROUTING $i
|
||||||
|
old_rules_count=$((old_rules_count+1))
|
||||||
|
done
|
||||||
|
echo Deleted $old_rules_count NAT PREROUTING rules to Logstash listening authorized port 10514.
|
||||||
|
|
||||||
|
# Update conf file with non-priviledged port
|
||||||
|
echo "Priviledged port $PORT redirected to Logstash listening authorized port 10514."
|
||||||
|
sed -i "s/ port =>.*/ port => 10514/" /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
# Use iptables for IPv4 or ip6tables for IPv6
|
||||||
|
if [[ $IP_ADDRESS =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||||
|
if [ "$USE_TCP" = true ]; then
|
||||||
|
iptables -A INPUT -p tcp --dport "$PORT" -j ACCEPT
|
||||||
|
elif [ "$USE_UDP" = true ]; then
|
||||||
|
iptables -A INPUT -p udp --dport "$PORT" -j ACCEPT
|
||||||
|
fi
|
||||||
|
iptables -t nat -A PREROUTING -p UDP -m udp --dport $PORT -j REDIRECT --to-ports 10514
|
||||||
|
iptables -t nat -A PREROUTING -p tcp -m tcp --dport $PORT -j REDIRECT --to-ports 10514
|
||||||
|
else
|
||||||
|
if [ "$USE_TCP" = true ]; then
|
||||||
|
ip6tables -A INPUT -p tcp --dport "$PORT" -j ACCEPT
|
||||||
|
elif [ "$USE_UDP" = true ]; then
|
||||||
|
ip6tables -A INPUT -p udp --dport "$PORT" -j ACCEPT
|
||||||
|
fi
|
||||||
|
ip6tables -t nat -A PREROUTING -p UDP -m udp --dport $PORT -j REDIRECT --to-ports 10514
|
||||||
|
ip6tables -t nat -A PREROUTING -p tcp -m tcp --dport $PORT -j REDIRECT --to-ports 10514
|
||||||
|
fi
|
||||||
|
# Save iptables rules permanently (after restart)
|
||||||
|
if [ -f "/usr/sbin/netfilter-persistent" ] ; then
|
||||||
|
netfilter-persistent save
|
||||||
|
netfilter-persistent reload
|
||||||
|
elif [ -f "/etc/init.d/iptables-persistent" ] ; then
|
||||||
|
/etc/init.d/iptables-persistent save
|
||||||
|
/etc/init.d/iptables-persistent reload
|
||||||
|
elif [ -f "/etc/centos-release" ] ; then
|
||||||
|
# CentOS 7 https://wiki.centos.org/HowTos/Network/IPTables
|
||||||
|
/sbin/service iptables save
|
||||||
|
else
|
||||||
|
iptables-save
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pidfile="/var/run/logstash.pid"
|
||||||
|
logstash_running() {
|
||||||
|
if [ -f "$pidfile" ] ; then
|
||||||
|
echo "Logstash is installed and running."
|
||||||
|
else
|
||||||
|
echo "Logstash is not responding. Please resolve the issue and rerun the script."
|
||||||
|
echo "More details at: https://www.elastic.co/guide/en/logstash/current/installing-logstash.html"
|
||||||
|
echo "Refer to the install-log-server README file for more details"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install Logstash if necessary
|
||||||
|
if [ ! -f "$pidfile" ] ; then
|
||||||
|
echo "Logstash is being downloaded."
|
||||||
|
if $USE_APT ; then
|
||||||
|
get_install_package $LOGSTASH_DEB_URL
|
||||||
|
else
|
||||||
|
get_install_package $LOGSTASH_RPM_URL
|
||||||
|
fi
|
||||||
|
config_logstash
|
||||||
|
boot_at_startup logstash
|
||||||
|
logstash_running
|
||||||
|
else
|
||||||
|
config_logstash
|
||||||
|
boot_at_startup logstash
|
||||||
|
logstash_running
|
||||||
|
fi
|
||||||
|
|
||||||
|
config_kibana() {
|
||||||
|
if [ -f "./kibana.svg" ] ; then
|
||||||
|
mv -f kibana.svg /opt/kibana/optimize/bundles/src/ui/public/images/kibana.svg
|
||||||
|
fi
|
||||||
|
sed -i "s/^.*server\.host: .*/server\.host: \"${IP_ADDRESS}\"/" /opt/kibana/config/kibana.yml
|
||||||
|
sed -i "s/^.*elasticsearch\.url:.*/elasticsearch\.url: \"http:\/\/${IP_ADDRESS}:9200\"/" /opt/kibana/config/kibana.yml
|
||||||
|
}
|
||||||
|
|
||||||
|
kibana_active=false
|
||||||
|
kibana_running() {
|
||||||
|
kibana_active=$(curl -s -XGET "http://${IP_ADDRESS}:5601")
|
||||||
|
if [[ ! "$kibana_active" =~ "false" ]] ; then
|
||||||
|
echo "Kibana is installed and running. Updating Kibana settings."
|
||||||
|
curl -XPUT http://$IP_ADDRESS:9200/.kibana/index-pattern/logstash-* -d '{"title" : "logstash-*", "timeFieldName": "@timestamp"}'
|
||||||
|
curl -XPUT http://$IP_ADDRESS:9200/.kibana/config/4.5.1 -d '{"defaultIndex" : "logstash-*"}'
|
||||||
|
echo
|
||||||
|
echo "To begin using the log server, you must enable remote logging on the Titanium Cloud system."
|
||||||
|
echo "Kibana provides a web-based interface for using an installed and configured remote log server."
|
||||||
|
echo "Open Kibana in your browser http://YOURDOMAIN.com:5601 or http://${IP_ADDRESS}:5601"
|
||||||
|
echo "Refer to the Titanium Cloud System Administration guide and README file for additional to start exploring with Kibana."
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
echo "Kibana is not responding. Please resolve the issue and rerun the script."
|
||||||
|
echo "More details at: https://www.elastic.co/guide/en/kibana/current/setup.html"
|
||||||
|
echo "Refer to the install-log-server README file for more details"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install Kibana if necessary
|
||||||
|
cfgfile="/opt/kibana/config/kibana.yml"
|
||||||
|
if [ ! -f "$cfgfile" ] ; then
|
||||||
|
echo "Kibana is being downloaded."
|
||||||
|
if $USE_APT ; then
|
||||||
|
get_install_package $KIBANA_DEB_URL
|
||||||
|
else
|
||||||
|
get_install_package $KIBANA_RPM_URL
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
config_kibana
|
||||||
|
boot_at_startup kibana
|
||||||
|
kibana_running
|
||||||
|
|
||||||
|
exit 0
|
@ -0,0 +1,91 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="svg3354"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
width="234.375"
|
||||||
|
height="40.3125"
|
||||||
|
viewBox="0 0 234.375 40.3125"
|
||||||
|
sodipodi:docname="kibana.svg">
|
||||||
|
<metadata
|
||||||
|
id="metadata3360">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs3358" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="458"
|
||||||
|
inkscape:window-height="405"
|
||||||
|
id="namedview3356"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="7.5306667"
|
||||||
|
inkscape:cx="117.1875"
|
||||||
|
inkscape:cy="20.15625"
|
||||||
|
inkscape:window-x="1021"
|
||||||
|
inkscape:window-y="107"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg3354" />
|
||||||
|
<image
|
||||||
|
width="234.375"
|
||||||
|
height="40.3125"
|
||||||
|
preserveAspectRatio="none"
|
||||||
|
style="image-rendering:optimizeQuality"
|
||||||
|
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAArCAIAAADe7ALgAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
|
||||||
|
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAW3SURBVHhe7ZxhiBVVFMfPK6PCIh+7YEEl3AKj
|
||||||
|
gu1DHwIliGUDsaggNosks0ADoQLDYoUIiooKCRfaQKFIyowIKypapCwFP/hBPyQGeUBSaOltb3ur
|
||||||
|
ZBTR/51753Zn3owrOrNuc8+PYc55M3fvvJn3v+eee+dqwxhDihIHFzirKBGgclciQuWuRITKXYkI
|
||||||
|
lbsSESp3JSJU7kpEqNyViFC5KxGhclciQuWuRERjv3PqzHDxuqDFzKNEJ4gWEN1x2uVDG5hvE+cy
|
||||||
|
oqGk5GfMf1svYB7RB0TvJ2W+YZ6yXhoUu3umBUufMFsHF11PdFDKr2MetEcLQM2ew0THiA4Q7c67
|
||||||
|
1gjzAKolwv43orXG2COneWL/a6KI7jcmoullLVGb6C+iX4meLC4GlkoxbNvdgS5/iBAXJqfslmkA
|
||||||
|
OIsNzSksgw1/i9biChXwp2wofEr2lj6ifqnzkuRsZkPNfltEtIToKbnWZubr0ld8SWS9vtnE/mci
|
||||||
|
nL1GjteVRlNutWbc3G5vEwVbfiB6oSBcQQTQBPiHaH5xuEWDeVXUc2lBmQeYV4jUwEVEHwXR3fMQ
|
||||||
|
873O/Q8Uvq/gomC7qBMxCdfdQHSop+QYMxqSD1oTRF8R/UJ0tdzO7ei+gucAcLlJoseDenYwDzWb
|
||||||
|
4+32czhOtIXo5fpG99ouAH5NApXVweVEy/JuM9QoQLFnk4Qhwybmq6S2TlorIb7lFMkd+DIhJ4ke
|
||||||
|
LahzRrnfybw6uU1cF1H8aE+ZhcwQcXjdsNHi1p42BqKHxJHJIN7bI/ZszfBxoW4gul/sXJpGbpqX
|
||||||
|
NtwVaB2g2CrnZrkleVLfy/6sCbNqD8Lw8zNlNefChDEQNxqqB9K3DQlYZdtwbnObumod1FbuCNJI
|
||||||
|
bT0Y52XoY0banQGy7uUeZiQJAOHz3fKkgBDruUlSHfchwLfYcwedEr6/BzXnXrHe1Fbu4ICzXXqV
|
||||||
|
jbzFhnaM9rwOkOY+0iMCZAj2MeVOsJw1SJSRPnkeLOiCSuQdZ7vg3oecGxF1ljsGlz6C4tcdTIvp
|
||||||
|
etljhAoRhLOxy511oBPwKn/b2XJAjvFi0NKQYLxOtKBKxe80JmxgGOPGRp3lPmVMOCe4xtku6Mdt
|
||||||
|
aL+WaJcxY0HDgP4WB5rbGOT3+8pOavca83mg+LZM2FdKZvCwqOL+ZK5RZ7mDb53Nskz2CO17xZk0
|
||||||
|
BiEcHwHE/bA4lhucpePOlsxWY35ybpffg1dLVTDprMN2cfFQc7m/mY7Hj4mS/CD1CqJRccB7ybgQ
|
||||||
|
og8HrNOyRwBG4lERzxiD8YMFvwf8LZUp3vdUlgudjYWayx2E2SoGZ51OZ13yq58KZqm/NsZ29PaJ
|
||||||
|
LGdGyR3MUL+N+ugBxFbCyqByfIE+WbOAL+AOlceVzjqOOBsL9Zf7K852mS/7W2UPkDeH+MwHo8YV
|
||||||
|
4qCp4AFh2yMfK2XYmHBgvZTo/lbLR/2yQAsPOVJlG56D1F/uu43xyySg4y9aLft+EdpC3iyu442g
|
||||||
|
JBKbna2Wz2S2ilM16HZ8X4Qv+UTS2MpiMP1ON5PYxED95Q6OOtvF33DuJPrhJHUBPpVHiJ2alSiI
|
||||||
|
zGpTMFFTuhzRnEK+czYiopD7ZmdTbHQ2xVtJwuOB6D917myAIcQu55bMSDL3akGjGo0skwFRyP1g
|
||||||
|
kKVY8LF3KRU4lJ6qt+Qu9qoOqDDsjkoBY+4B53ZBytS7qiIGopA72OdsF+Qn4Zr1DNucdRxzdlYJ
|
||||||
|
pybPHARvv8D4RKczwLyGeZw5M5GPuL4qvkGqJRa5jwU5MdKVzCA15OP0m/aiF1VVs1ImavxA4gxZ
|
||||||
|
QvQlM7bxVmsEY9PkH69YUOGHsrx+Ikqtg1jkfjyIlyedLWR/ojPoA+oX9zww2N8/r9Gwfu7K4Vym
|
||||||
|
ZfMSRyP/UZYPDcsy4PN4O3MB/f/dlYiIJborClC5KxGhclciQuWuRITKXYkIlbsSESp3JSJU7kpE
|
||||||
|
qNyViFC5K9FA9C9eeaA7E62h+QAAAABJRU5ErkJggg==
|
||||||
|
"
|
||||||
|
id="image3362"
|
||||||
|
x="0"
|
||||||
|
y="0" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,563 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"_id": "Overview",
|
||||||
|
"_type": "dashboard",
|
||||||
|
"_source": {
|
||||||
|
"title": "Overview",
|
||||||
|
"hits": 0,
|
||||||
|
"description": "",
|
||||||
|
"panelsJSON": "[{\"col\":4,\"id\":\"Unique-Systems-ampersand-Hosts-Counts\",\"panelIndex\":1,\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":1,\"id\":\"Alarm-Severity-Summary\",\"panelIndex\":3,\"row\":1,\"size_x\":3,\"size_y\":2,\"type\":\"visualization\"},{\"col\":1,\"id\":\"Log-Activity-PER-HOST\",\"panelIndex\":5,\"row\":3,\"size_x\":12,\"size_y\":3,\"type\":\"visualization\"},{\"col\":6,\"id\":\"Raw-Log-Severity-Pie-Chart\",\"panelIndex\":6,\"row\":1,\"size_x\":3,\"size_y\":2,\"type\":\"visualization\"},{\"col\":9,\"id\":\"Customer-Log-Severity-Summary\",\"panelIndex\":9,\"row\":1,\"size_x\":4,\"size_y\":2,\"type\":\"visualization\"},{\"id\":\"All-Logs\",\"type\":\"search\",\"panelIndex\":10,\"size_x\":12,\"size_y\":6,\"col\":1,\"row\":6,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]}]",
|
||||||
|
"optionsJSON": "{\"darkTheme\":false}",
|
||||||
|
"uiStateJSON": "{\"P-1\":{\"spy\":{\"mode\":{\"fill\":false,\"name\":null}}},\"P-3\":{\"spy\":{\"mode\":{\"fill\":false,\"name\":null}},\"vis\":{\"legendOpen\":false}},\"P-4\":{\"vis\":{\"legendOpen\":false}},\"P-5\":{\"spy\":{\"mode\":{\"fill\":false,\"name\":null}},\"vis\":{\"legendOpen\":false}},\"P-6\":{\"vis\":{\"legendOpen\":true}},\"P-9\":{\"spy\":{\"mode\":{\"fill\":false,\"name\":null}},\"vis\":{\"legendOpen\":false}}}",
|
||||||
|
"version": 1,
|
||||||
|
"timeRestore": false,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Host-ampersand-VM-Event-Activity",
|
||||||
|
"_type": "dashboard",
|
||||||
|
"_source": {
|
||||||
|
"title": "Host & VM Customer Log Event Activity",
|
||||||
|
"hits": 0,
|
||||||
|
"description": "",
|
||||||
|
"panelsJSON": "[\n {\n \"col\": 1,\n \"columns\": [\n \"_source\"\n ],\n \"id\": \"Logs-Host-events\",\n \"panelIndex\": 5,\n \"row\": 4,\n \"size_x\": 6,\n \"size_y\": 5,\n \"sort\": [\n \"@timestamp\",\n \"desc\"\n ],\n \"type\": \"search\"\n },\n {\n \"col\": 7,\n \"columns\": [\n \"_source\"\n ],\n \"id\": \"Logs-VM-events\",\n \"panelIndex\": 6,\n \"row\": 4,\n \"size_x\": 6,\n \"size_y\": 5,\n \"sort\": [\n \"@timestamp\",\n \"desc\"\n ],\n \"type\": \"search\"\n },\n {\n \"col\": 1,\n \"id\": \"Customer-Host-slash-VM-Log-Severity-Summary\",\n \"panelIndex\": 7,\n \"row\": 1,\n \"size_x\": 3,\n \"size_y\": 3,\n \"type\": \"visualization\"\n },\n {\n \"id\": \"Host-and-VM-Events-Date-Histogram\",\n \"type\": \"visualization\",\n \"panelIndex\": 8,\n \"size_x\": 9,\n \"size_y\": 3,\n \"col\": 4,\n \"row\": 1\n }\n]",
|
||||||
|
"optionsJSON": "{\n \"darkTheme\": false\n}",
|
||||||
|
"uiStateJSON": "{\n \"P-7\": {\n \"vis\": {\n \"legendOpen\": false\n }\n },\n \"P-8\": {\n \"vis\": {\n \"legendOpen\": false\n }\n }\n}",
|
||||||
|
"version": 1,
|
||||||
|
"timeRestore": false,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\n \"filter\": [\n {\n \"query\": {\n \"query_string\": {\n \"analyze_wildcard\": true,\n \"query\": \"*\"\n }\n }\n }\n ]\n}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Resource-Add-slash-Delete-Activity",
|
||||||
|
"_type": "dashboard",
|
||||||
|
"_source": {
|
||||||
|
"title": "Resource Add / Delete Activity",
|
||||||
|
"hits": 0,
|
||||||
|
"description": "",
|
||||||
|
"panelsJSON": "[{\"col\":1,\"id\":\"Unique-Systems-ampersand-Hosts-Counts\",\"panelIndex\":1,\"row\":1,\"size_x\":2,\"size_y\":3,\"type\":\"visualization\"},{\"col\":3,\"id\":\"Resource-Add-slash-Delete-Activity\",\"panelIndex\":2,\"row\":1,\"size_x\":10,\"size_y\":3,\"type\":\"visualization\"},{\"id\":\"Resource-Add-slash-Delete-Table\",\"type\":\"search\",\"panelIndex\":3,\"size_x\":12,\"size_y\":5,\"col\":1,\"row\":4,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]}]",
|
||||||
|
"optionsJSON": "{\"darkTheme\":false}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"version": 1,
|
||||||
|
"timeRestore": false,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Login-Authentication-Audit-Log",
|
||||||
|
"_type": "dashboard",
|
||||||
|
"_source": {
|
||||||
|
"title": "Login Authentication Audit Log",
|
||||||
|
"hits": 0,
|
||||||
|
"description": "",
|
||||||
|
"panelsJSON": "[{\"id\":\"Horizon-Authentication-Audit-Log\",\"type\":\"search\",\"panelIndex\":1,\"size_x\":6,\"size_y\":4,\"col\":7,\"row\":1,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"SSH-slash-SFTP-slash-SUDO-slash-Postgres-Authentication-Audit-Log\",\"type\":\"search\",\"panelIndex\":2,\"size_x\":6,\"size_y\":4,\"col\":7,\"row\":5,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"Horizon-Authentication-Audit-Log-Date-Histogram\",\"type\":\"visualization\",\"panelIndex\":3,\"size_x\":6,\"size_y\":4,\"col\":1,\"row\":1},{\"id\":\"SSH-slash-SFTP-slash-sudo-slash-postgres-Authentication-Audit-Log-Date-Histogram\",\"type\":\"visualization\",\"panelIndex\":4,\"size_x\":6,\"size_y\":4,\"col\":1,\"row\":5}]",
|
||||||
|
"optionsJSON": "{\"darkTheme\":false}",
|
||||||
|
"uiStateJSON": "{\"P-3\":{\"vis\":{\"legendOpen\":false}},\"P-4\":{\"vis\":{\"legendOpen\":false}}}",
|
||||||
|
"version": 1,
|
||||||
|
"timeRestore": false,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}}}]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Command-Audit-Log",
|
||||||
|
"_type": "dashboard",
|
||||||
|
"_source": {
|
||||||
|
"title": "Command Audit Log",
|
||||||
|
"hits": 0,
|
||||||
|
"description": "",
|
||||||
|
"panelsJSON": "[{\"id\":\"Bash-Audit-Log\",\"type\":\"search\",\"panelIndex\":1,\"size_x\":6,\"size_y\":4,\"col\":7,\"row\":1,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"REST-API-Audit-Log\",\"type\":\"search\",\"panelIndex\":2,\"size_x\":6,\"size_y\":4,\"col\":7,\"row\":5,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"BASH-Audit-Log-Date-Histogram\",\"type\":\"visualization\",\"panelIndex\":3,\"size_x\":6,\"size_y\":4,\"col\":1,\"row\":1},{\"id\":\"REST-API-Audit-Log-Histogram\",\"type\":\"visualization\",\"panelIndex\":4,\"size_x\":6,\"size_y\":4,\"col\":1,\"row\":5}]",
|
||||||
|
"optionsJSON": "{\"darkTheme\":false}",
|
||||||
|
"uiStateJSON": "{\"P-3\":{\"vis\":{\"legendOpen\":false}},\"P-4\":{\"vis\":{\"legendOpen\":false}}}",
|
||||||
|
"version": 1,
|
||||||
|
"timeRestore": false,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}}}]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "System-Troubleshooting",
|
||||||
|
"_type": "dashboard",
|
||||||
|
"_source": {
|
||||||
|
"title": "System Troubleshooting",
|
||||||
|
"hits": 0,
|
||||||
|
"description": "",
|
||||||
|
"panelsJSON": "[{\"id\":\"DEBUG-Maintenance-ampersand-Inventory-Logs-(First-Level)\",\"type\":\"search\",\"panelIndex\":1,\"size_x\":6,\"size_y\":3,\"col\":7,\"row\":3,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"DEBUG-Service-Manager-Logs\",\"type\":\"search\",\"panelIndex\":2,\"size_x\":6,\"size_y\":3,\"col\":1,\"row\":3,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"DEBUG-VM-Logs-(First-Level-NOVA)\",\"type\":\"search\",\"panelIndex\":3,\"size_x\":12,\"size_y\":4,\"col\":1,\"row\":6,\"columns\":[\"_source\"],\"sort\":[\"@timestamp\",\"desc\"]},{\"id\":\"System-Troubleshooting-Logs-Date-Histogram\",\"type\":\"visualization\",\"panelIndex\":4,\"size_x\":12,\"size_y\":2,\"col\":1,\"row\":1}]",
|
||||||
|
"optionsJSON": "{\"darkTheme\":false}",
|
||||||
|
"uiStateJSON": "{\"P-4\":{\"vis\":{\"legendOpen\":false}}}",
|
||||||
|
"version": 1,
|
||||||
|
"timeRestore": false,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}}}]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Resource-Add-slash-Delete-Table",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "Resource Add / Delete Table",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"( filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:200* AND ( message:\\\"added\\\" OR message:\\\"delete\\\" ) ) OR ( filename:\\\"cinder-volume.log\\\" AND message:\\\"volume successfully\\\" ) OR ( filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND ( message:700.108 OR message:700.114 ))\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Alarms",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "Alarm Activity",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"fm-event.log\\\" AND ( message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"set\\\\\\\"\\\" OR message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"clear\\\\\\\"\\\" )\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Logs",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "Customer Logs",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\"\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "All-Logs",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "All Logs",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "DEBUG-Maintenance-ampersand-Inventory-Logs-(First-Level)",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "DEBUG - Maintenance & Inventory Logs (First Level)",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"mtcAgent.log\\\" OR filename:\\\"mtcClient.log\\\" OR filename:\\\"sysinv.log\\\"\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Logs-Host-events",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "Customer Logs - Host events",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:200*\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "DEBUG-VM-Logs-(First-Level-NOVA)",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "DEBUG - VM Logs (First Level - NOVA)",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"nova-compute\\\" OR filename:\\\"nova-scheduler.log\\\" OR filename:\\\"nova-conductor.log\\\"\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "DEBUG-Service-Manager-Logs",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "DEBUG - Service Manager Logs (First Level)",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"sm.log\\\" OR filename:\\\"sm-customer\\\" OR filename:\\\"daemon-ocf.log\\\"\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Logs-VM-events",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "Customer Logs - VM events",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:700* AND message:instance\",\"analyze_wildcard\":true}},\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Horizon-Authentication-Audit-Log",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "Horizon Authentication Audit Log",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647},\"query\":{\"query_string\":{\"query\":\"filename:horizon.log\",\"analyze_wildcard\":true}}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "REST-API-Audit-Log",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "REST API Audit Log",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"filter\":[],\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"require_field_match\":false,\"fragment_size\":2147483647},\"query\":{\"query_string\":{\"query\":\"filename:api.log\",\"analyze_wildcard\":true}}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "SSH-slash-SFTP-slash-SUDO-slash-Postgres-Authentication-Audit-Log",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "SSH / SFTP / sudo / postgres Authentication Audit Log",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\n \"index\": \"logstash-*\",\n \"filter\": [],\n \"highlight\": {\n \"pre_tags\": [\n \"@kibana-highlighted-field@\"\n ],\n \"post_tags\": [\n \"@/kibana-highlighted-field@\"\n ],\n \"fields\": {\n \"*\": {}\n },\n \"require_field_match\": false,\n \"fragment_size\": 2147483647\n },\n \"query\": {\n \"query_string\": {\n \"query\": \"filename:auth.log\",\n \"analyze_wildcard\": true\n }\n }\n}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Bash-Audit-Log",
|
||||||
|
"_type": "search",
|
||||||
|
"_source": {
|
||||||
|
"title": "BASH Audit Log",
|
||||||
|
"description": "",
|
||||||
|
"hits": 0,
|
||||||
|
"columns": [
|
||||||
|
"_source"
|
||||||
|
],
|
||||||
|
"sort": [
|
||||||
|
"@timestamp",
|
||||||
|
"desc"
|
||||||
|
],
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\n \"index\": \"logstash-*\",\n \"filter\": [],\n \"highlight\": {\n \"pre_tags\": [\n \"@kibana-highlighted-field@\"\n ],\n \"post_tags\": [\n \"@/kibana-highlighted-field@\"\n ],\n \"fields\": {\n \"*\": {}\n },\n \"require_field_match\": false,\n \"fragment_size\": 2147483647\n },\n \"query\": {\n \"query_string\": {\n \"query\": \"filename:bash.log\",\n \"analyze_wildcard\": true\n }\n }\n}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Customer-Log-Severity-Summary",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Customer Log Severity Summary",
|
||||||
|
"visState": "{\"title\":\"Customer Log Severity Summary\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"filters\",\"schema\":\"segment\",\"params\":{\"filters\":[{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"critical\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"CRITICAL\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"major\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"MAJOR\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"minor\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"Minor\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"warning\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"Warning\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"not-applicable\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"Not-Applicable\"}]}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"savedSearchId": "Logs",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Alarm-Severity-Summary",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Alarm Severity Summary",
|
||||||
|
"visState": "{\"title\":\"Alarm Severity Summary\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"filters\",\"schema\":\"segment\",\"params\":{\"filters\":[{\"input\":{\"query\":{\"query_string\":{\"query\":\"( message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"set\\\\\\\"\\\" OR message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"clear\\\\\\\"\\\" ) AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"critical\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"CRITICAL\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"( message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"set\\\\\\\"\\\" OR message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"clear\\\\\\\"\\\" ) AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"major\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"Major\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"( message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"set\\\\\\\"\\\" OR message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"clear\\\\\\\"\\\" ) AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"minor\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"minor\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"( message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"set\\\\\\\"\\\" OR message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"clear\\\\\\\"\\\" ) AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"warning\\\\\\\"\\\"\",\"analyze_wildcard\":true}}},\"label\":\"warning\"}]}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"savedSearchId": "Alarms",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Log-Activity-PER-HOST",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Log Activity PER HOST",
|
||||||
|
"visState": "{\"title\":\"Log Activity PER HOST\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"node.raw\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"_term\",\"customLabel\":\"Log Activity per Host\"}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Raw-Log-Severity-Pie-Chart",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Raw Log Severity Pie Chart",
|
||||||
|
"visState": "{\"title\":\"Raw Log Severity Pie Chart\",\"type\":\"pie\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"level.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Unique-Systems-ampersand-Hosts-Counts",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Unique Systems & Hosts Counts",
|
||||||
|
"visState": "{\"title\":\"Unique Systems & Hosts Counts\",\"type\":\"metric\",\"params\":{\"handleNoResults\":true,\"fontSize\":60},\"aggs\":[{\"id\":\"2\",\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"system_name.raw\",\"customLabel\":\"Systems\"}},{\"id\":\"3\",\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"node.raw\",\"customLabel\":\"Hosts\"}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Resource-Add-slash-Delete-Activity",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Resource Add & Delete Activity",
|
||||||
|
"visState": "{\n \"title\": \"Resource Add / Delete Activity\",\n \"type\": \"histogram\",\n \"params\": {\n \"shareYAxis\": true,\n \"addTooltip\": true,\n \"addLegend\": true,\n \"scale\": \"linear\",\n \"mode\": \"stacked\",\n \"times\": [],\n \"addTimeMarker\": false,\n \"defaultYExtents\": false,\n \"setYExtents\": false,\n \"yAxis\": {}\n },\n \"aggs\": [\n {\n \"id\": \"1\",\n \"type\": \"count\",\n \"schema\": \"metric\",\n \"params\": {}\n },\n {\n \"id\": \"2\",\n \"type\": \"date_histogram\",\n \"schema\": \"split\",\n \"params\": {\n \"field\": \"@timestamp\",\n \"interval\": \"d\",\n \"customInterval\": \"2h\",\n \"min_doc_count\": 1,\n \"extended_bounds\": {},\n \"customLabel\": \"\",\n \"row\": false\n }\n },\n {\n \"id\": \"3\",\n \"type\": \"filters\",\n \"schema\": \"group\",\n \"params\": {\n \"filters\": [\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:200* AND ( message:\\\"added\\\" OR message:\\\"delete\\\" )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"Hosts\"\n },\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"filename:\\\"fm-event.log\\\" AND ( message:700.108 OR message:700.114 )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"VMs\"\n },\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:\\\"volume successfully\\\"\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"Volumes\"\n }\n ]\n }\n }\n ],\n \"listeners\": {}\n}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\n \"index\": \"logstash-*\",\n \"query\": {\n \"query_string\": {\n \"query\": \"( filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" ) OR filename:\\\"cinder-volume.log\\\" OR filename:\\\"openstack.log\\\"\",\n \"analyze_wildcard\": true\n }\n },\n \"filter\": []\n}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Resource-Add-ampersand-Delete-Activity",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Resource Add & Delete Activity",
|
||||||
|
"visState": "{\"title\":\"Resource Add & Delete Activity\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"split\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"\",\"row\":false}},{\"id\":\"3\",\"type\":\"filters\",\"schema\":\"group\",\"params\":{\"filters\":[{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:200* AND ( message:\\\"added\\\" OR message:\\\"delete\\\" )\",\"analyze_wildcard\":true}}},\"label\":\"Hosts\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"filename:\\\"fm-event.log\\\" AND ( message:700.108 OR message:700.114 )\",\"analyze_wildcard\":true}}},\"label\":\"VMs\"},{\"input\":{\"query\":{\"query_string\":{\"query\":\"message:\\\"volume successfully\\\"\",\"analyze_wildcard\":true}}},\"label\":\"Volumes\"}]}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"( filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" ) OR filename:\\\"cinder-volume.log\\\" OR filename:\\\"openstack.log\\\"\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Customer-Host-slash-VM-Log-Severity-Summary",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Host & VM Customer Log Severity Summary",
|
||||||
|
"visState": "{\n \"title\": \"Customer Host / VM Log Severity Summary\",\n \"type\": \"histogram\",\n \"params\": {\n \"shareYAxis\": true,\n \"addTooltip\": true,\n \"addLegend\": true,\n \"scale\": \"linear\",\n \"mode\": \"stacked\",\n \"times\": [],\n \"addTimeMarker\": false,\n \"defaultYExtents\": false,\n \"setYExtents\": false,\n \"yAxis\": {}\n },\n \"aggs\": [\n {\n \"id\": \"1\",\n \"type\": \"count\",\n \"schema\": \"metric\",\n \"params\": {}\n },\n {\n \"id\": \"2\",\n \"type\": \"filters\",\n \"schema\": \"segment\",\n \"params\": {\n \"filters\": [\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"critical\\\\\\\"\\\" AND ( message:200* OR message:700* )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"CRITICAL\"\n },\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"major\\\\\\\"\\\" AND ( message:200* OR message:700* )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"MAJOR\"\n },\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"minor\\\\\\\"\\\" AND ( message:200* OR message:700* )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"Minor\"\n },\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"warning\\\\\\\"\\\" AND ( message:200* OR message:700* )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"Warning\"\n },\n {\n \"input\": {\n \"query\": {\n \"query_string\": {\n \"query\": \"message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND message:\\\"\\\\\\\"severity\\\\\\\" : \\\\\\\"not-applicable\\\\\\\"\\\" AND ( message:200* OR message:700* )\",\n \"analyze_wildcard\": true\n }\n }\n },\n \"label\": \"Not-Applicable\"\n }\n ]\n }\n }\n ],\n \"listeners\": {}\n}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"savedSearchId": "Logs",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\n \"filter\": []\n}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Host-and-VM-Events-Date-Histogram",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Host & VM Customer Log Events Date Histogram",
|
||||||
|
"visState": "{\n \"title\": \"New Visualization\",\n \"type\": \"histogram\",\n \"params\": {\n \"shareYAxis\": true,\n \"addTooltip\": true,\n \"addLegend\": true,\n \"scale\": \"linear\",\n \"mode\": \"stacked\",\n \"times\": [],\n \"addTimeMarker\": false,\n \"defaultYExtents\": false,\n \"setYExtents\": false,\n \"yAxis\": {}\n },\n \"aggs\": [\n {\n \"id\": \"1\",\n \"type\": \"count\",\n \"schema\": \"metric\",\n \"params\": {}\n },\n {\n \"id\": \"2\",\n \"type\": \"date_histogram\",\n \"schema\": \"segment\",\n \"params\": {\n \"field\": \"@timestamp\",\n \"interval\": \"auto\",\n \"customInterval\": \"2h\",\n \"min_doc_count\": 1,\n \"extended_bounds\": {}\n }\n }\n ],\n \"listeners\": {}\n}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\n \"index\": \"logstash-*\",\n \"query\": {\n \"query_string\": {\n \"query\": \"filename:\\\"fm-event.log\\\" AND message:\\\"\\\\\\\"state\\\\\\\" : \\\\\\\"msg\\\\\\\"\\\" AND ( message:200* OR ( message:700* AND message:instance ) )\",\n \"analyze_wildcard\": true\n }\n },\n \"filter\": []\n}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "System-Troubleshooting-Logs-Date-Histogram",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "System Troubleshooting Logs Date Histogram",
|
||||||
|
"visState": "{\"title\":\"New Visualization\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:\\\"sm.log\\\" OR filename:\\\"sm-customer\\\" OR filename:\\\"daemon-ocf.log\\\" OR filename:\\\"mtcAgent.log\\\" OR filename:\\\"mtcClient.log\\\" OR filename:\\\"sysinv.log\\\" OR filename:\\\"nova-compute\\\" OR filename:\\\"nova-scheduler.log\\\" OR filename:\\\"nova-conductor.log\\\"\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "SSH-slash-SFTP-slash-sudo-slash-postgres-Authentication-Audit-Log-Date-Histogram",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "SSH / SFTP / sudo / postgres Authentication Audit Log Date Histogram",
|
||||||
|
"visState": "{\"title\":\"New Visualization\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:auth.log\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "Horizon-Authentication-Audit-Log-Date-Histogram",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "Horizon Authentication Audit Log Date Histogram",
|
||||||
|
"visState": "{\"title\":\"New Visualization\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:horizon.log\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "BASH-Audit-Log-Date-Histogram",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "BASH Audit Log Date Histogram",
|
||||||
|
"visState": "{\"title\":\"New Visualization\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:bash.log\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "REST-API-Audit-Log-Histogram",
|
||||||
|
"_type": "visualization",
|
||||||
|
"_source": {
|
||||||
|
"title": "REST API Audit Log Histogram",
|
||||||
|
"visState": "{\"title\":\"New Visualization\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}",
|
||||||
|
"uiStateJSON": "{}",
|
||||||
|
"description": "",
|
||||||
|
"version": 1,
|
||||||
|
"kibanaSavedObjectMeta": {
|
||||||
|
"searchSourceJSON": "{\"index\":\"logstash-*\",\"query\":{\"query_string\":{\"query\":\"filename:api.log\",\"analyze_wildcard\":true}},\"filter\":[]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
76
install-log-server/install-log-server/install-log-server/wrs-logstash.conf
Executable file
76
install-log-server/install-log-server/install-log-server/wrs-logstash.conf
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
# The logstash configuration below takes Titanium Cloud syslog input and outputs the custom Titanium Cloud log data to elasticsearch.
|
||||||
|
# Extending the openstack log format, Titanium Cloud syslog messages required the use of grok to parse log data into something structured and queryable.
|
||||||
|
# - Inconsistent formating of log level, pid and program
|
||||||
|
# - custom Titanium Cloud syslog fields and naming
|
||||||
|
|
||||||
|
input {
|
||||||
|
# Do not use syslog input plugin (or type)
|
||||||
|
#TCP_PARAMS
|
||||||
|
#UDP_PARAMS
|
||||||
|
}
|
||||||
|
|
||||||
|
filter {
|
||||||
|
# "Grok is currently the best way in logstash to parse log data into something structured and queryable."
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html
|
||||||
|
# The input plugins above convert the
|
||||||
|
grok {
|
||||||
|
match => {
|
||||||
|
"message" => [
|
||||||
|
# The default break_on_match is used so first successful match by grok will result in the filter being finished.
|
||||||
|
# Use Titanium Cloud term node instead of host.
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}\: %{TIMESTAMP_ISO8601:syslog_trash} %{POSINT:pid} %{LOGLEVEL:level} %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program} %{TIMESTAMP_ISO8601:syslog_trash} %{POSINT:pid} %{LOGLEVEL:level} %{DATA:program} %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}(?:\[%{POSINT:pid}\])?: %{LOGLEVEL:level}?: %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program} \[%{POSINT:pid}\] %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}: %{LOGLEVEL:level} %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}: %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}\[%{POSINT:pid}\]?: %{LOGLEVEL:level} %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}\[%{POSINT:pid}\]?: %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{NOTSPACE:system_name} %{NOTSPACE:filename} %{SYSLOGHOST:node} %{DATA:program} %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{TIMESTAMP_ISO8601:syslog_timestamp} %{POSINT:pid} %{LOGLEVEL:level} %{DATA:program} %{GREEDYDATA:message}",
|
||||||
|
"<%{POSINT:syslog_pri}>%{DATESTAMP:syslog_timestamp} %{POSINT:pid} %{LOGLEVEL:level} %{DATA:program} %{GREEDYDATA:message}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
overwrite => [ "message" ]
|
||||||
|
remove_field => [ "syslog_trash" ]
|
||||||
|
add_field => { "host_timestamp" => "%{syslog_timestamp}" }
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-syslog_pri.html
|
||||||
|
syslog_pri {
|
||||||
|
facility_labels => ["kernel", "user-level", "mail", "daemon", "security/authorization", "syslogd", "line printer", "network news", "UUCP", "clock", "security/authorization", "FTP", "NTP", "log audit", "log alert", "clock", "postgres", "platform", "openstack", "sm", "local4", "mtce", "sysinv", "horizon"]
|
||||||
|
|
||||||
|
severity_labels => [
|
||||||
|
"emergency", "alert", "crit", "error", "warn", "notice", "info", "debug"
|
||||||
|
]
|
||||||
|
# syslog_pri has served its purpose, and syslog_facility_code isn't useful
|
||||||
|
remove_field => [ "syslog_pri", "syslog_facility_code", "syslog_severity_code", "severity_label", "syslog_severity" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html
|
||||||
|
date {
|
||||||
|
# set <at> timestamp from the grok'd syslog_timestamp and remove the field
|
||||||
|
match => [ "syslog_timestamp", "MMM d HH:mm:ss.SSS", "MMM dd HH:mm:ss.SSS" , "yyyy-MM-dd HH:mm:ss.SSS"]
|
||||||
|
remove_field => [ "syslog_timestamp" ]
|
||||||
|
timezone => [ "UTC" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rename and remove unwanted syslog fields
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html
|
||||||
|
mutate {
|
||||||
|
rename => [
|
||||||
|
"host", "system_address"
|
||||||
|
]
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-remove_field
|
||||||
|
remove_field => [ "type", "syslog_facility" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
if "_grokparsefailure" in [tags] {
|
||||||
|
file { path => "/var/log/logstash/wrs-grokparsefailure-%{+YYYY-MM-dd}" }
|
||||||
|
} else {
|
||||||
|
elasticsearch { hosts => ["127.0.0.1:9200"] }
|
||||||
|
}
|
||||||
|
}
|
86
install-log-server/tools/local-logstash.conf
Normal file
86
install-log-server/tools/local-logstash.conf
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
input {
|
||||||
|
file {
|
||||||
|
path => ""
|
||||||
|
start_position => beginning
|
||||||
|
ignore_older => 0
|
||||||
|
sincedb_path => "/dev/null"
|
||||||
|
codec => multiline {
|
||||||
|
pattern => "^%{TIMESTAMP_ISO8601}"
|
||||||
|
negate => true
|
||||||
|
what => previous
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filter {
|
||||||
|
# "Grok is currently the best way in logstash to parse log data into something structured and queryable."
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html
|
||||||
|
grok {
|
||||||
|
match => ["path","%{GREEDYDATA:system_name}(?:/(?<node>(.+?(?=_[0-9]{8}\.[0-9]{6}))))(.+?\b)/%{GREEDYDATA}/%{USERNAME:filename}"]
|
||||||
|
}
|
||||||
|
if [filename] =~ "(\s*)nfv\-vim(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE}(\s*)%{NOTSPACE:program}(\s*)%{NOTSPACE:level}(\s*)%{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else if [filename] =~ "(\s*)libvirtd(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} %{POSINT:pid}: %{LOGLEVEL:level} : %{NOTSPACE:program} %{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else if [filename] =~ "(\s*)horizon(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} \[(?<level>([a-zA-Z0-9.]*))\](\s*)%{NOTSPACE:program}: %{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else if [filename] =~ "(\s*)openstack_test(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE}(\s*)%{NOTSPACE:program} %{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else if [filename] =~ "(\s*)platform(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE}(\s*)%{NOTSPACE:program}(\s*)%{NOTSPACE:level}(\s*)%{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else if [filename] =~ "(\s*)mtcAgent\_api(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} \[(?<pid>([0-9]*))\](\s*) %{NOTSPACE}(\s*)%{NOTSPACE:program}(\s*)%{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else if [filename] =~ "(\s*)mtcAgent\_event(.*)" {
|
||||||
|
grok {
|
||||||
|
match => [ "message","%{TIMESTAMP_ISO8601:timestamp} \[(?<pid>([0-9]*))\](\s*)%{GREEDYDATA:message}"]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
grok {
|
||||||
|
match => {
|
||||||
|
"message" => [
|
||||||
|
# The default break_on_match is used so first successful match by grok will result in the filter being finished.
|
||||||
|
# Use Titanium Cloud term node instead of host.
|
||||||
|
"%{TIMESTAMP_ISO8601:timestamp} (\[[a-zA-Z0-9.]*\])(\s*)%{NOTSPACE}(\s*)%{NOTSPACE}(\s*)%{NOTSPACE}(\s*)%{NOTSPACE:program} %{GREEDYDATA:message}",
|
||||||
|
"%{TIMESTAMP_ISO8601:timestamp} %{POSINT:pid} %{LOGLEVEL:level} %{DATA:program} %{GREEDYDATA:message}",
|
||||||
|
"%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE} (?<program>(.+?(?=\()))(\(.+?\))(\[)(?<pid>(.*?))(\]\:) %{NOTSPACE:level} %{GREEDYDATA:message}",
|
||||||
|
"%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE}(\s*)%{NOTSPACE:program} %{GREEDYDATA:message}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html
|
||||||
|
date {
|
||||||
|
# set <at> timestamp from the grok'd syslog_timestamp and remove the field
|
||||||
|
match => [ "timestamp", "ISO8601", "yyyy-MM-dd HH:mm:ss.SSS", "yyyy/mm/dd/HH/mm/ss.SSS", "MMM d HH:mm:ss.SSS", "MMM dd HH:mm:ss.SSS" , "yyyy-MM-dd HH:mm:ss.SSS", "MMM dd HH:mm:ss,SSS", "yyyy-MM-dd HH:mm:ss,SSS", "yy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss" ]
|
||||||
|
target => "@timestamp"
|
||||||
|
timezone => [ "UTC" ]
|
||||||
|
remove_field => [ "timestamp" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rename and remove unwanted syslog fields
|
||||||
|
# https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html
|
||||||
|
mutate {
|
||||||
|
rename => [
|
||||||
|
"host", "system_address"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
if "_grokparsefailure" in [tags] {
|
||||||
|
drop { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
output {
|
||||||
|
elasticsearch { hosts => ["127.0.0.1:9200"] }
|
||||||
|
stdout {}
|
||||||
|
}
|
304
install-log-server/tools/locallog.sh
Executable file
304
install-log-server/tools/locallog.sh
Executable file
@ -0,0 +1,304 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Copyright (c) 2017 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Description: Changes a running ELK stack system to read in logs from either
|
||||||
|
# local log files or from a remote logging server.
|
||||||
|
#
|
||||||
|
# Behaviour : The script takes in a directory or file location, unzips any .tgz
|
||||||
|
# files found within the first two directory levels (node files
|
||||||
|
# within a collect file), and unzips any .gz files found within
|
||||||
|
# a var/log/ path found inside of the path designated by the user.
|
||||||
|
# Each ELK service is restarted, and current elasticsearch indices
|
||||||
|
# can optionally be wiped. A custom config file is modified to
|
||||||
|
# contain the user-specified filepath, and then logstash is set to
|
||||||
|
# begin reading in all logs found, starting from the user-specified
|
||||||
|
# location. Upon completion, the window displaying the logs being
|
||||||
|
# read into logstash will appear to hang up and no new text will be
|
||||||
|
# displayed. This is because all files have been read and no new
|
||||||
|
# information is available. It is not currently possible to detect
|
||||||
|
# when this happens and terminate the process. The user can manually
|
||||||
|
# terminate the script at this time without their ELK setup/data being
|
||||||
|
# affected. Logstash can be set to read from a remote logging server
|
||||||
|
# as per the settings in wrs-logstash.conf if the remote logging server
|
||||||
|
# had been set up and working with ELK prior to running this script. To
|
||||||
|
# return to viewing logs from a remote logger use the --remote command.
|
||||||
|
#
|
||||||
|
# This script should be kept in the same directory as the custom config file
|
||||||
|
# local-logstash.conf, otherwise this script will not be able to edit the config
|
||||||
|
# file to include the user-specified path.
|
||||||
|
#
|
||||||
|
# If after opening the Kibana webpage and clicking "create" on the "Configure an
|
||||||
|
# index pattern" page and selecting a Time-field name from the drop list and
|
||||||
|
# then navigating to the Discover page, if no logs are seen but no errors are
|
||||||
|
# displayed either, click the range information at the top right of the page, click
|
||||||
|
# "Absolute" on the left side, and then select the date range in which you expect
|
||||||
|
# the logs to have been created. Alternatively, you can click "Quick" instead of
|
||||||
|
# "Absolute" and choose one of those options. Kibana looking at too recent of a
|
||||||
|
# time range seems to be the most common issue when logs fail to appear after they
|
||||||
|
# have been read in.
|
||||||
|
#
|
||||||
|
# If you are trying to view logs from a local file and are noticing logs from a
|
||||||
|
# remote logger appearing in Kibana, check that you do not have any UDP port
|
||||||
|
# forwards set up. If you do, your ELK setup will continue to receive data from
|
||||||
|
# the remote logger while local logs are also being added, and you will simultanesouly
|
||||||
|
# add data from both sources to the indices and have them viewable in Kibana.
|
||||||
|
#
|
||||||
|
# To increase the speed in which logs are read into logstash, near the bottom of
|
||||||
|
# this script, change -8 to a higher number. This is the number of workers that
|
||||||
|
# read through the files within the specified location. The number of workers
|
||||||
|
# should correspond to the number of cores you have available, but numbers greater
|
||||||
|
# than your number of cores still seem to improve the rate at which logs are read
|
||||||
|
# and parsed.
|
||||||
|
#
|
||||||
|
# Dependencies: This script requires that /etc/logstash/conf.d/wrs-logstash.conf
|
||||||
|
# exists. This file is initially placed in this location by
|
||||||
|
# install-log-server.sh which is used to set up ELK on your system
|
||||||
|
# to receive logs from a remote logger. This file is used to allow
|
||||||
|
# logs to be received from a remote server when the --remote option
|
||||||
|
# is specified, and further, the IP designated to receive logstash
|
||||||
|
# input for remote and local logging is obtained from this file.
|
||||||
|
# If logs are being read from local files, ensure local-logstash.conf
|
||||||
|
# exists in the same directory as this script.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
ip=""
|
||||||
|
suffix=""
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # Directory that this script is contained in
|
||||||
|
if [ $UID -ne 0 ]; then
|
||||||
|
echo $'\tWarning: This script must be run as \'root\' user to restart ELK services. Please rerun with sudo.\n'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Check to see if required config files are present
|
||||||
|
if [[ ! -f "/etc/logstash/conf.d/wrs-logstash.conf" ]]; then
|
||||||
|
echo $'\tWarning: etc/logstash/conf.d/wrs-logstash.conf does not exist.'
|
||||||
|
echo $'\t\t Please make sure you have properly run the install-log-server.sh script.\n'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ ! -f "$DIR""/local-logstash.conf" ]]; then
|
||||||
|
echo $'\tWarning: local-logstash.conf does not exist in the directory containing this script.'
|
||||||
|
echo $'\t\t Please make sure both of these files are in the same location before re-running.\n'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
function help {
|
||||||
|
echo ""
|
||||||
|
echo "--------------------------------------------------------------------------------------"
|
||||||
|
echo "ELK Local Log Setup Script"
|
||||||
|
echo ""
|
||||||
|
echo "Usage:"
|
||||||
|
echo ""
|
||||||
|
echo "sudo ./locallog.sh [-clean] [Parent directory containing collect file(s) or location of specific log] [--remote]"
|
||||||
|
echo ""
|
||||||
|
echo " -clean ... wipes all elasticsearch indices clearing the log data shown"
|
||||||
|
echo " in Kibana. Omitting this will append any newly found log data"
|
||||||
|
echo " to the log data already seen in Kibana."
|
||||||
|
echo "[Location of logs] ... omitting the square braces, enter the location of a directory"
|
||||||
|
echo " containing untarred Collect files, or enter the path to a specific"
|
||||||
|
echo " log file. Drag and dropping files into terminal to get the location"
|
||||||
|
echo " is supported."
|
||||||
|
echo " --remote ... directs logstash to acquire logs remotely over the network."
|
||||||
|
echo " By default the log server created using the install-log-server.sh"
|
||||||
|
echo " script is connected to using the original configuration file at"
|
||||||
|
echo " /etc/logstash/conf.d/wrs-logstash.conf"
|
||||||
|
echo " to use a different server's .conf file please modify this script."
|
||||||
|
echo " --help | -h ... this info"
|
||||||
|
echo ""
|
||||||
|
echo " As an argument, enter the location of a parent directory containing one or more collect files"
|
||||||
|
echo " to have all of the logs contained within the specified path's subdirectories loaded into a local"
|
||||||
|
echo " Kibana server. Individual collect files or log files may also be specified."
|
||||||
|
echo ""
|
||||||
|
echo "Note: Only collect files that have already been untarred can be searched for logs. This script will"
|
||||||
|
echo " take care of unpacking .tgz files found inside of the specified path, as well as unzipping all"
|
||||||
|
echo " .gz files found in any var/log/ path found within any subdirectories."
|
||||||
|
echo " So as to only unpack the initial .tgz file for each node in a collect file, .tgz files will only"
|
||||||
|
echo " be unzipped if they are found within 2 directory-levels from your designated path."
|
||||||
|
echo " if the -clean option is not used, new and old log data will both be visible in Kibana."
|
||||||
|
echo ""
|
||||||
|
echo "Tips: -If the script is run multiple times without using the -clean option, some logs may not appear in Kibana"
|
||||||
|
echo " initially if their index does not use the same time-field name as the logs added in previous runs of the"
|
||||||
|
echo " script. To see the new logs, in Kibana go to Settings>Add New> Then select the appropriate time-field name"
|
||||||
|
echo " and click Create. The time-field name can be found in the grok statements used to parse your logs."
|
||||||
|
echo " -If you've created an index but no logs appear on the Discover page in Kibana, go to the top right"
|
||||||
|
echo " and modify the date range to include dates you believe might include when the logs were created on"
|
||||||
|
echo " their respective node. The date range being set to too recent an interval is the most common reason"
|
||||||
|
echo " for logs failing to appear."
|
||||||
|
echo " -To keep Kibana populated with previously read-in logs from either local files or a remote logger, simply"
|
||||||
|
echo " omit using -clean, and all logs obtained by the script will be appended to an index and kept in Kibana"
|
||||||
|
echo " -If you feel that log files are being parsed and read too slowly, modify this file at the bottom"
|
||||||
|
echo " and change -w 8 to a larger number. The number should correspond to the number of cores available,"
|
||||||
|
echo " but improvements have been seen with a number greater than the number of cores."
|
||||||
|
echo " -If you use the --remote option and you get an error, make sure that the wrs-logstash.conf file"
|
||||||
|
echo " is in /etc/logstash/conf.d/ or that you modify this script to point to whichever .conf you "
|
||||||
|
echo " originally used when setting up ELK to work with a remote logger."
|
||||||
|
echo " -If you use the --remote option and logs fail to populate, or you get an error about elasticsearch"
|
||||||
|
echo " make sure that the port your remote logger is using is still being forwarded correctly by re-entering"
|
||||||
|
echo " iptables -t nat -A PREROUTING -p UDP -m udp --dport $PORT -j REDIRECT --to-ports 10514"
|
||||||
|
echo " OR"
|
||||||
|
echo " ip6tables -t nat -A PREROUTING -p tcp -m tcp --dport $PORT -j REDIRECT --to-ports 10514"
|
||||||
|
echo " make sure you correctly specify tcp or udp, and use iptables for IPV4 and ip6tables for IPV6"
|
||||||
|
echo " -If you are noticing new logs from a remote logger present in Kibana even though you are populating it"
|
||||||
|
echo " with local logs, check and delete any UDP port forwards to 514/10514, as these forwards will result in"
|
||||||
|
echo " log data from remote sources being added into your index, even if you are also reading in local logs."
|
||||||
|
echo " -If you have stopped the script from reading from a remote logger but new logs from the remote server"
|
||||||
|
echo " continue to appear in Kibana even though the remote server wasn't connected via UDP, run the -clean"
|
||||||
|
echo " command on its own, then run -clean --remote to get the connection properly established again. Cancelling"
|
||||||
|
echo " and cleaning after this should clear up the issue. This issue seems to occur randomly and does not appear"
|
||||||
|
echo " to result from any particular sequence of events (This issue is not specifc to this script)."
|
||||||
|
echo ""
|
||||||
|
echo "Examples:"
|
||||||
|
echo ""
|
||||||
|
echo "sudo ./locallog.sh -clean"
|
||||||
|
echo "sudo ./locallog.sh -clean --remote"
|
||||||
|
echo "sudo ./locallog.sh -clean /localdisk/Collect/ALL_NODES_20170215.202328/"
|
||||||
|
echo "sudo ./locallog.sh --remote # Will wipe indices and begin receiving logs from remote logger again"
|
||||||
|
echo "sudo ./locallog.sh /localdisk/Collect/ALL_NODES_20170215.202328/"
|
||||||
|
echo "sudo ./locallog.sh /localdisk/Collect/ALL_NODES_20170215.202328/controller-0_20170215.202328/"
|
||||||
|
echo "sudo ./locallog.sh /localdisk/Collect/ALL_NODES_20170215.202328/controller-0_20170215.202328/var/log/sysinv.log"
|
||||||
|
echo ""
|
||||||
|
echo "Refer to the wiki at: http://wiki.wrs.com/PBUeng/LocalLogsInELK"
|
||||||
|
echo "--------------------------------------------------------------------------------------"
|
||||||
|
echo ""
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function localLog {
|
||||||
|
# Address of parent directory for collect files to look through
|
||||||
|
address="$arg"
|
||||||
|
address="${address#\'}" # Remove ' from beginning of address if drag n' dropped into terminal
|
||||||
|
address="${address%\'}" # Remove ' from end of address if drag n' dropped into terminal
|
||||||
|
|
||||||
|
# unzips .tgz files within first 2 directory levels from given path. This is intended to unzip the files corresponding
|
||||||
|
# to each of the nodes contained in a Collect file.
|
||||||
|
for i in $(find "$address" -maxdepth 2 -type f -path '*/*.tgz'); do
|
||||||
|
loc="$(readlink -f $i)"
|
||||||
|
tar -zxvf "$i" -C "${loc%/*}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# This unzips any .gz files found in var/log/ which is where log files are stored (meant for rotated logs)
|
||||||
|
for i in $(find "$address" -type f -path '*/var/log/*.gz'); do
|
||||||
|
gunzip "$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Changes suffix to designate whether a directory is being looked through or if an individual log file was specified
|
||||||
|
address="\"${address%\/}""$suffix"
|
||||||
|
hostAddr="\[\"""$ip""\"\]"
|
||||||
|
# Changes the input filepath in the custom config file to point to the user-specified location
|
||||||
|
perl -pi -e 's#(^\s*path\s*=> ).*\"#$1'"$address"'#g' "$confLoc" # Replaces current input path in config file with the new one specified
|
||||||
|
perl -pi -e 's#(^\s*elasticsearch\s*\{\s*hosts\s*=> ).*#$1'"$hostAddr \}"'#g' "$confLoc" # Replaces current output hosts' address with the one in wrs-logstash.conf
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Restarts each of the ELK services
|
||||||
|
function restart {
|
||||||
|
if [[ "${dist}" == *"CentOS"* ]]; then
|
||||||
|
echo "Restarting elasticsearch..."
|
||||||
|
systemctl restart elasticsearch
|
||||||
|
echo "Restarting logstash..."
|
||||||
|
systemctl restart logstash
|
||||||
|
echo "Restarting kibana..."
|
||||||
|
systemctl restart kibana
|
||||||
|
elif [[ "${dist}" == *"Ubuntu"* ]]; then
|
||||||
|
echo "Restarting elasticsearch..."
|
||||||
|
/etc/init.d/elasticsearch status/restart
|
||||||
|
echo "Restarting logstash..."
|
||||||
|
/etc/init.d/logstash status/restart
|
||||||
|
echo "Restarting kibana..."
|
||||||
|
/etc/init.d/kibana status/restart
|
||||||
|
else
|
||||||
|
# If host OS cannot be determined to be CentOS or Ubuntu, run commands for both systems to see if they will work
|
||||||
|
echo "Unknown OS detected."
|
||||||
|
echo "Attempting all solutions. If none pass, please look up how to restart elasticsearch, logstash and kibana"
|
||||||
|
echo "for your system and continue final steps manually."
|
||||||
|
echo "Attempting to restart elasticsearch"
|
||||||
|
systemctl restart elasticsearch
|
||||||
|
/etc/init.d/elasticsearch status/restart
|
||||||
|
echo "Attempting to restart logstash"
|
||||||
|
systemctl restart logstash
|
||||||
|
/etc/init.d/logstash status/restart
|
||||||
|
echo "Attempting to restart kibana"
|
||||||
|
systemctl restart kibana
|
||||||
|
/etc/init.d/kibana status/restart
|
||||||
|
sleep 5s # Sleep to give user time to see if any of the restarts passed
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deletes all indices in elasticsearch (clears logs in Kibana)
|
||||||
|
function wipeIndices {
|
||||||
|
# Changes index API settings to allow indices to be deleted so past local logs aren't always visible
|
||||||
|
curl -s -XPUT "$ip"/_cluster/settings -d '{
|
||||||
|
"persistent" : {
|
||||||
|
"action.destructive_requires_name" : false
|
||||||
|
}
|
||||||
|
}' > /dev/null
|
||||||
|
curl -s -XDELETE "$ip"/_all > /dev/null # Deletes all elasticsearch indices
|
||||||
|
echo "Indices wiped"
|
||||||
|
}
|
||||||
|
|
||||||
|
function getIP {
|
||||||
|
# Your IP since elasticsearch doesn't always get hosted at localhost
|
||||||
|
origConf="/etc/logstash/conf.d/wrs-logstash.conf"
|
||||||
|
if [[ "${dist}" == *"CentOS"* ]] || [[ "${dist}" == *"Ubuntu"* ]]; then
|
||||||
|
# Pulls IP from output specified in wrs-logstash.conf
|
||||||
|
ip=$(perl -ne'/(?:^\s*elasticsearch\s*\{\s*hosts\s*=> )(.*)/ and print $1' "$origConf")
|
||||||
|
else
|
||||||
|
read -p "Enter the IP that ELK modules will bind and publish to: " ip
|
||||||
|
fi
|
||||||
|
ip="${ip#[\"}"
|
||||||
|
ip="${ip%\"] \}}"
|
||||||
|
}
|
||||||
|
echo ""
|
||||||
|
# Determines which OS you are using and runs the corresponding reset commands
|
||||||
|
dist="$(lsb_release -a)"
|
||||||
|
while [[ $# > 0 ]]; do
|
||||||
|
arg="$1"
|
||||||
|
case $arg in
|
||||||
|
|
||||||
|
-h|--help)
|
||||||
|
help
|
||||||
|
;;
|
||||||
|
|
||||||
|
--remote)
|
||||||
|
confLoc="/etc/logstash/conf.d/wrs-logstash.conf"
|
||||||
|
restart
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
-clean)
|
||||||
|
getIP
|
||||||
|
wipeIndices
|
||||||
|
if [ -z "$2" ]; then # If no arguments follow -clean then exit
|
||||||
|
echo "Error: Log path not specified."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
getIP
|
||||||
|
confLoc="$DIR""/local-logstash.conf" # Location of the custom config file
|
||||||
|
# Sets the config file to either look for logs in subdirectories or just a single specified log
|
||||||
|
if [[ -f "$arg" ]]; then
|
||||||
|
suffix="\""
|
||||||
|
elif [[ -d "$arg" ]]; then
|
||||||
|
suffix="/**/*.log*\""
|
||||||
|
else
|
||||||
|
printf "Unknown input.\nTerminating...\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
localLog
|
||||||
|
restart
|
||||||
|
break
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
echo "Reading logs..."
|
||||||
|
# Changes which config file logstash reads in and sets the number of workers to 8
|
||||||
|
/opt/logstash/bin/logstash -f "$confLoc" -w 8
|
||||||
|
exit
|
2
mwa-delphi.map
Normal file
2
mwa-delphi.map
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
cgcs/openstack/recipes-remote-clients/install-log-server|install-log-server
|
||||||
|
cgcs/openstack/recipes-remote-clients/remote-clients|remote-clients
|
3
remote-clients/centos/build_srpm.data
Normal file
3
remote-clients/centos/build_srpm.data
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
SRC_DIR=remote-clients
|
||||||
|
COPY_LIST="$SRC_DIR/*"
|
||||||
|
TIS_PATCH_VER=5
|
46
remote-clients/centos/remote-clients.spec
Normal file
46
remote-clients/centos/remote-clients.spec
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
Summary: Remote-Clients
|
||||||
|
Name: remote-clients
|
||||||
|
Version: 2.0.1
|
||||||
|
Release: %{tis_patch_ver}%{?_tis_dist}
|
||||||
|
License: Apache-2.0
|
||||||
|
Group: devel
|
||||||
|
Packager: Wind River <info@windriver.com>
|
||||||
|
URL: unknown
|
||||||
|
|
||||||
|
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
BuildRequires: python-ceilometerclient-sdk
|
||||||
|
BuildRequires: python-cinderclient-sdk
|
||||||
|
BuildRequires: python-glanceclient-sdk
|
||||||
|
BuildRequires: python-heatclient-sdk
|
||||||
|
BuildRequires: python-keystoneclient-sdk
|
||||||
|
BuildRequires: python-keystoneauth1-sdk
|
||||||
|
BuildRequires: python-neutronclient-sdk
|
||||||
|
BuildRequires: python-novaclient-sdk
|
||||||
|
BuildRequires: python-openstackclient-sdk
|
||||||
|
BuildRequires: python-openstacksdk-sdk
|
||||||
|
BuildRequires: cgts-client-sdk
|
||||||
|
BuildRequires: python-osc-lib-sdk
|
||||||
|
BuildRequires: python-muranoclient-sdk
|
||||||
|
|
||||||
|
%define cgcs_sdk_deploy_dir /opt/deploy/cgcs_sdk
|
||||||
|
%define remote_client_dir /usr/share/remote-clients
|
||||||
|
|
||||||
|
%description
|
||||||
|
Remote-Client files
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup
|
||||||
|
mv %{name} wrs-%{name}-%{version}
|
||||||
|
find %{remote_client_dir} -name "*.tgz" -exec cp '{}' wrs-%{name}-%{version}/ \;
|
||||||
|
sed -i 's/xxxVERSIONxxx/%{version}/g' wrs-%{name}-%{version}/README
|
||||||
|
tar czf wrs-%{name}-%{version}.tgz wrs-%{name}-%{version}
|
||||||
|
|
||||||
|
# Install for guest-client package
|
||||||
|
%install
|
||||||
|
install -D -m 644 wrs-%{name}-%{version}.tgz %{buildroot}%{cgcs_sdk_deploy_dir}/wrs-%{name}-%{version}.tgz
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{cgcs_sdk_deploy_dir}/wrs-%{name}-%{version}.tgz
|
||||||
|
|
202
remote-clients/remote-clients/LICENSE
Normal file
202
remote-clients/remote-clients/LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
202
remote-clients/remote-clients/remote-clients/LICENSE
Normal file
202
remote-clients/remote-clients/remote-clients/LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
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.
|
86
remote-clients/remote-clients/remote-clients/README
Normal file
86
remote-clients/remote-clients/remote-clients/README
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
Copyright © 2016-2017 Wind River Systems, Inc.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Titanium Cloud Remote CLI Clients
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
To enable access to the Titanium Cloud CLI remotely, clients and
|
||||||
|
installer script have been packaged for install on a remote Linux distribution.
|
||||||
|
This tarball includes several clients which can be used to issue CLI commands
|
||||||
|
to an existing Titanium Cloud.
|
||||||
|
|
||||||
|
|
||||||
|
Installing the Remote CLI Clients (system install)
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
To install the clients to the system packages on a Linux machine follow these
|
||||||
|
steps:
|
||||||
|
|
||||||
|
1. Untar the provided tarball:
|
||||||
|
tar xfv wrs-remote-clients-xxxVERSIONxxx.tgz
|
||||||
|
cd wrs-remote-clients-xxxVERSIONxxx
|
||||||
|
|
||||||
|
2. Execute the provided installer script:
|
||||||
|
sudo ./install_clients.sh
|
||||||
|
|
||||||
|
NOTE: please open a new terminal after installing for the installed bash
|
||||||
|
completion to take effect
|
||||||
|
|
||||||
|
|
||||||
|
Installing the Remote CLI Clients (virtualenv)
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
To install the clients within an isolated virtualenv follow these steps:
|
||||||
|
|
||||||
|
1. Create a virtualenv (if it does not already exist)
|
||||||
|
virtualenv MYENV
|
||||||
|
|
||||||
|
2. Activate the virtualenv
|
||||||
|
source MYENV/bin/activate
|
||||||
|
|
||||||
|
3. Untar the provided tarball:
|
||||||
|
tar xfv wrs-remote-clients-xxxVERSIONxxx.tgz
|
||||||
|
cd wrs-remote-clients-xxxVERSIONxxx
|
||||||
|
|
||||||
|
4. Execute the provided installer script:
|
||||||
|
./install_clients.sh
|
||||||
|
|
||||||
|
5. Remember to deactivate the virtualenv when you are finished using the
|
||||||
|
remote clients.
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
6. Run /etc/bash_completion to update bash completion, if your system
|
||||||
|
supports it. You may need to do this when opening a new console as well.
|
||||||
|
|
||||||
|
Using the Remote CLI Clients
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
1. Download the openrc file from Horizon.
|
||||||
|
Log in to horizon, go to:
|
||||||
|
Project -> API Access -> Download OpenStack RC File
|
||||||
|
|
||||||
|
2. On your console, source the file you have just downloaded. You will be
|
||||||
|
asked for your openstack password. You will also be asked for an optional
|
||||||
|
CA certificate. Enter the path to your CA certificate used for Titanium
|
||||||
|
Cloud if you have HTTPS configured. Press Enter if you are not using HTTPS
|
||||||
|
|
||||||
|
3 Run CLI commands in the same way you would run them on the Titanium
|
||||||
|
Cloud Controller
|
||||||
|
|
||||||
|
NOTE: The open-source OpenStack CLI Clients can NOT be installed at the same
|
||||||
|
time as the Titanium Cloud CLI Clients, however the Titanium Cloud CLI
|
||||||
|
Clients can be used to manage an open-source OpenStack cloud by sourcing
|
||||||
|
the appropriate openrc file for that cloud.
|
||||||
|
|
||||||
|
NOTE: The remote cli installer uses pip to install depdencies. The default pip
|
||||||
|
package that comes with Ubuntu 16.04 has issues. Please upgrade pip to
|
||||||
|
the 'latest' version before running the remote client installer if you
|
||||||
|
are installing remote clients on a Ubuntu 16.04 system.
|
||||||
|
pip install --upgrade pip
|
||||||
|
Failure to do so can result in installation issues. The Ubuntu pip
|
||||||
|
package issue is currently being tracked here
|
||||||
|
https://bugs.launchpad.net/ubuntu/+source/salt/+bug/1586381
|
||||||
|
|
165
remote-clients/remote-clients/remote-clients/install_clients.sh
Executable file
165
remote-clients/remote-clients/remote-clients/install_clients.sh
Executable file
@ -0,0 +1,165 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016-2017 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
while getopts ":hs" opt; do
|
||||||
|
case $opt in
|
||||||
|
h)
|
||||||
|
echo "Usage:"
|
||||||
|
echo "install_clients [OPTION...]"
|
||||||
|
echo "-h show help options"
|
||||||
|
echo "-s skip installing of dependencies through package manager"
|
||||||
|
echo ""
|
||||||
|
echo "This script installs the remote clients for Titanium Cloud. It automatically"
|
||||||
|
echo "uses the package manager detected on your system to pull in dependencies. The"
|
||||||
|
echo "installation process is dependent on the following packages. If your system"
|
||||||
|
echo "already includes these packages, or you prefer to manage them manually, then"
|
||||||
|
echo "you can skip this step by specifying the -s option."
|
||||||
|
echo " python-dev python-setuptools gcc git python-pip libxml2-dev libxslt-dev"
|
||||||
|
echo " libssl-dev libffi-dev libssl-dev"
|
||||||
|
echo ""
|
||||||
|
echo "If this script is run within a virtualenv then dependent packages will not be"
|
||||||
|
echo "installed and client packages will be installed within the virtualenv."
|
||||||
|
echo ""
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
skip_req=1
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option: -$OPTARG, valid options are -h and -s"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "${VIRTUAL_ENV}" ]; then
|
||||||
|
if [ $EUID != 0 ]; then
|
||||||
|
echo "Root access is required. Please run with sudo or as root."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install tools for the script, like pip
|
||||||
|
if [[ ! -v skip_req ]]; then
|
||||||
|
which apt-get > /dev/null
|
||||||
|
aptget_missing=$?
|
||||||
|
which yum > /dev/null
|
||||||
|
yum_missing=$?
|
||||||
|
|
||||||
|
if [[ "$aptget_missing" == "0" ]]; then
|
||||||
|
apt-get install python-dev python-setuptools gcc git libxml2-dev libxslt-dev libssl-dev libffi-dev libssl-dev --no-upgrade || exit 1
|
||||||
|
easy_install pip || exit 1
|
||||||
|
elif [[ "$yum_missing" == "0" ]]; then
|
||||||
|
yum install python-devel python-setuptools gcc git libxml2-devel libxslt-devel openssl-devel libffi-devel || exit 1
|
||||||
|
easy_install pip || exit 1
|
||||||
|
else
|
||||||
|
echo "No supported package managers detected (apt-get, yum)"
|
||||||
|
echo "Please ensure the following are installed on your system before continuing:"
|
||||||
|
echo "python-dev python-setuptools gcc git python-pip"
|
||||||
|
read -p "Continue with installation? y/n: " PACKMAN_CONTINUE_INPUT
|
||||||
|
while [[ "$PACKMAN_CONTINUE_INPUT" != "y" && "$PACKMAN_CONTINUE_INPUT" != "n" ]]
|
||||||
|
do
|
||||||
|
echo invalid input: $PACKMAN_CONTINUE_INPUT
|
||||||
|
read -p "Continue with installation? y/n: " PACKMAN_CONTINUE_INPUT
|
||||||
|
done
|
||||||
|
if [[ "$PACKMAN_CONTINUE_INPUT" == "n" ]]; then
|
||||||
|
echo "exiting installer..."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Installing clients to virtual env: ${VIRTUAL_ENV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# log standard output and standard error, because there is quite a lot of it
|
||||||
|
# only output what is being installed and the progress to the console (echo)
|
||||||
|
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
exec 3>&1 1>> $SCRIPTDIR/client_installation.log 2>&1
|
||||||
|
|
||||||
|
# extract all clients
|
||||||
|
echo -n Extracting individual clients ... 1>&3
|
||||||
|
|
||||||
|
# centos 7 have an issue where the "positional" package does not install
|
||||||
|
# the pbr requirement. We will manually install it here.
|
||||||
|
if ! pip install "pbr>=1.8"; then
|
||||||
|
echo "Failed to install requirements" 1>&3
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while true;do echo -n . 1>&3;sleep 1;done &
|
||||||
|
trap 'kill $! 2>/dev/null' EXIT
|
||||||
|
for file in *.tgz
|
||||||
|
do
|
||||||
|
if ! tar -zxf $file; then
|
||||||
|
echo "Failed to extract file $file" 1>&3
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -f "requirements.txt" ]
|
||||||
|
then
|
||||||
|
if ! pip -q install -r requirements.txt -c upper_constraints.txt; then
|
||||||
|
echo "Failed to install requirements" 1>&3
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
kill $!
|
||||||
|
echo [DONE] 1>&3
|
||||||
|
|
||||||
|
# first remove any clients already installed
|
||||||
|
# we need to do this in order to downgrade to the ones we are installing
|
||||||
|
# because some of our tis clients are older than the most recent openstack clients
|
||||||
|
pip freeze | grep -wF -f installed_clients.txt | xargs pip uninstall -y
|
||||||
|
|
||||||
|
for dir in ./*/
|
||||||
|
do
|
||||||
|
cd $dir
|
||||||
|
if [ -f "setup.py" ]
|
||||||
|
then
|
||||||
|
echo -n Installing $(python setup.py --name) ... 1>&3
|
||||||
|
fi
|
||||||
|
|
||||||
|
while true;do echo -n . 1>&3;sleep 1;done &
|
||||||
|
if [ -f "requirements.txt" ]
|
||||||
|
then
|
||||||
|
grep -vwF -f ../installed_clients.txt requirements.txt > requirements.txt.temp
|
||||||
|
mv requirements.txt.temp requirements.txt
|
||||||
|
sed -i -e 's/# Apache-2.0//g' requirements.txt
|
||||||
|
if ! pip -q install -r requirements.txt -c ../upper_constraints.txt; then
|
||||||
|
echo "Failed to install requirements for $(python setup.py --name)" 1>&3
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "setup.py" ]
|
||||||
|
then
|
||||||
|
if ! python setup.py -q install; then
|
||||||
|
echo "Failed to install $(python setup.py --name)" 1>&3
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install bash completion
|
||||||
|
if [ -d "tools" -a -z "${VIRTUAL_ENV}" ]
|
||||||
|
then
|
||||||
|
cd tools
|
||||||
|
if [ -d "/etc/bash_completion.d" ]
|
||||||
|
then
|
||||||
|
count=`ls -1 *.bash_completion 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]
|
||||||
|
then
|
||||||
|
cp *.bash_completion /etc/bash_completion.d
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
cd ../
|
||||||
|
fi
|
||||||
|
kill $!
|
||||||
|
echo [DONE] 1>&3
|
||||||
|
cd ../
|
||||||
|
done
|
@ -0,0 +1,13 @@
|
|||||||
|
cgtsclient
|
||||||
|
python-ceilometerclient
|
||||||
|
python-cinderclient
|
||||||
|
python-glanceclient
|
||||||
|
python-heatclient
|
||||||
|
python-keystoneclient
|
||||||
|
python-neutronclient
|
||||||
|
python-novaclient
|
||||||
|
python-openstackclient
|
||||||
|
osc-lib
|
||||||
|
keystoneauth1
|
||||||
|
openstacksdk
|
||||||
|
python-muranoclient
|
@ -0,0 +1,12 @@
|
|||||||
|
requests==2.11.1
|
||||||
|
oslo.i18n==3.9.0
|
||||||
|
tablib
|
||||||
|
os-client-config==1.21.1
|
||||||
|
pyopenssl
|
||||||
|
ndg-httpsclient
|
||||||
|
pyasn1
|
||||||
|
httplib2
|
||||||
|
python-swiftclient==3.1.0
|
||||||
|
python-muranoclient==0.11.0
|
||||||
|
python-magnumclient==2.3.1
|
||||||
|
python-ironicclient==1.7.1
|
22
remote-clients/remote-clients/remote-clients/uninstall_clients.sh
Executable file
22
remote-clients/remote-clients/remote-clients/uninstall_clients.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016-2017 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -z "${VIRTUAL_ENV}" ]; then
|
||||||
|
if [ $EUID != 0 ]; then
|
||||||
|
echo "Root access is required. Please run with sudo or as root."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# log standard output and standard error, because there is quite a lot of it
|
||||||
|
# only output what is being installed and the progress to the console (echo)
|
||||||
|
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
exec 3>&1 1>> $SCRIPTDIR/client_uninstallation.log 2>&1
|
||||||
|
|
||||||
|
pip freeze | grep -wF -f installed_clients.txt | xargs --no-run-if-empty pip uninstall -y
|
@ -0,0 +1,542 @@
|
|||||||
|
ntlm-auth===1.0.5
|
||||||
|
voluptuous===0.10.5
|
||||||
|
chardet===3.0.4
|
||||||
|
enum-compat===0.0.2
|
||||||
|
rsa===3.4.2
|
||||||
|
restructuredtext-lint===1.1.1
|
||||||
|
netmiko===1.4.2
|
||||||
|
instack-undercloud===7.4.5
|
||||||
|
PasteDeploy===1.5.2
|
||||||
|
typing===3.6.1
|
||||||
|
python-saharaclient===1.3.0
|
||||||
|
python-hnvclient===0.1.0
|
||||||
|
Routes===2.4.1
|
||||||
|
rtslib-fb===2.1.63
|
||||||
|
smmap===0.9.0
|
||||||
|
XStatic-Angular-Bootstrap===2.2.0.0
|
||||||
|
paunch===1.5.2
|
||||||
|
WebOb===1.7.3
|
||||||
|
sphinxcontrib-actdiag===0.8.5
|
||||||
|
pecan===1.2.1
|
||||||
|
ryu===4.15
|
||||||
|
os-api-ref===1.4.0
|
||||||
|
oslo.concurrency===3.21.1
|
||||||
|
websocket-client===0.44.0
|
||||||
|
osprofiler===1.11.0
|
||||||
|
bandit===1.4.0
|
||||||
|
tabulate===0.7.7
|
||||||
|
python-ironic-inspector-client===2.1.0
|
||||||
|
lxml===3.8.0
|
||||||
|
jdcal===1.3
|
||||||
|
python-kingbirdclient===0.2.0
|
||||||
|
setproctitle===1.1.10
|
||||||
|
pytest===3.1.3
|
||||||
|
python-etcd===0.4.5
|
||||||
|
cursive===0.1.2
|
||||||
|
oslo.service===1.25.1
|
||||||
|
django-appconf===1.0.2
|
||||||
|
pykerberos===1.1.14
|
||||||
|
certifi===2017.4.17
|
||||||
|
sphinxcontrib-nwdiag===0.9.5
|
||||||
|
requests-aws===0.1.8
|
||||||
|
alabaster===0.7.10
|
||||||
|
pbr===3.1.1
|
||||||
|
munch===2.2.0
|
||||||
|
microversion-parse===0.1.4
|
||||||
|
Pint===0.8.1
|
||||||
|
oslo.i18n===3.17.1
|
||||||
|
jsonpath-rw-ext===1.1.2
|
||||||
|
python-mistralclient===3.1.4
|
||||||
|
oslo.context===2.17.1
|
||||||
|
python-senlinclient===1.4.0
|
||||||
|
rcssmin===1.0.6
|
||||||
|
pycadf===2.6.0
|
||||||
|
grpcio===1.4.0
|
||||||
|
pysendfile===2.0.1
|
||||||
|
fixtures===3.0.0
|
||||||
|
neutron-lib===1.9.1
|
||||||
|
pystache===0.5.4
|
||||||
|
XStatic-Font-Awesome===4.7.0.0
|
||||||
|
nose===1.3.7
|
||||||
|
click-spinner===0.1.7
|
||||||
|
nosehtmloutput===0.0.5
|
||||||
|
waitress===1.0.2
|
||||||
|
os-refresh-config===7.1.0
|
||||||
|
jsbeautifier===1.6.14;python_version=='3.4'
|
||||||
|
jsbeautifier===1.6.14;python_version=='3.5'
|
||||||
|
pysnmp===4.3.9
|
||||||
|
sphinxcontrib-websupport===1.0.1
|
||||||
|
Mako===1.0.7
|
||||||
|
XStatic-angular-ui-router===0.3.1.2
|
||||||
|
pyScss===1.3.4
|
||||||
|
XStatic-jQuery===1.10.2.1
|
||||||
|
jsonmodels===2.1.5
|
||||||
|
ddt===1.1.1
|
||||||
|
ipaddress===1.0.18
|
||||||
|
python-freezerclient===1.5.0
|
||||||
|
os-xenapi===0.2.0
|
||||||
|
python-vitrageclient===1.4.0
|
||||||
|
nosexcover===1.0.11
|
||||||
|
krest===1.3.1
|
||||||
|
psycopg2===2.7.3
|
||||||
|
networkx===1.11
|
||||||
|
bashate===0.5.1
|
||||||
|
XStatic-Angular===1.5.8.0
|
||||||
|
pyngus===2.2.1
|
||||||
|
Pillow===4.2.1
|
||||||
|
python-mimeparse===1.6.0
|
||||||
|
tripleo-common===7.6.5
|
||||||
|
Tempita===0.5.2
|
||||||
|
ply===3.10
|
||||||
|
requests-toolbelt===0.8.0
|
||||||
|
simplejson===3.11.1
|
||||||
|
suds-jurko===0.6
|
||||||
|
python-swiftclient===3.4.0
|
||||||
|
pyOpenSSL===17.2.0
|
||||||
|
monasca-common===2.3.0
|
||||||
|
hyperframe===4.0.2;python_version=='3.4'
|
||||||
|
hyperframe===4.0.2;python_version=='3.5'
|
||||||
|
cssutils===1.0.2;python_version=='3.4'
|
||||||
|
cssutils===1.0.2;python_version=='3.5'
|
||||||
|
scipy===0.19.1
|
||||||
|
MySQL-python===1.2.5;python_version=='2.7'
|
||||||
|
XStatic-Jasmine===2.4.1.1
|
||||||
|
python-glanceclient===2.8.0
|
||||||
|
pyinotify===0.9.6
|
||||||
|
debtcollector===1.17.1
|
||||||
|
requests-unixsocket===0.1.5
|
||||||
|
odfpy===1.3.5
|
||||||
|
asn1crypto===0.22.0
|
||||||
|
croniter===0.3.17
|
||||||
|
python-watcherclient===1.3.0
|
||||||
|
MarkupSafe===1.0
|
||||||
|
pypowervm===1.1.6
|
||||||
|
doc8===0.8.0
|
||||||
|
pymongo===3.4.0
|
||||||
|
sqlparse===0.2.3
|
||||||
|
oslotest===2.17.1
|
||||||
|
jsonpointer===1.10
|
||||||
|
netaddr===0.7.19
|
||||||
|
pyghmi===1.0.22
|
||||||
|
sphinxcontrib-blockdiag===1.5.5
|
||||||
|
kaitaistruct===0.6;python_version=='3.4'
|
||||||
|
kaitaistruct===0.6;python_version=='3.5'
|
||||||
|
gnocchiclient===3.3.1
|
||||||
|
wcwidth===0.1.7
|
||||||
|
jsonpath-rw===1.4.0
|
||||||
|
prettytable===0.7.2
|
||||||
|
vine===1.1.4
|
||||||
|
taskflow===2.14.1
|
||||||
|
traceback2===1.4.0
|
||||||
|
semantic-version===2.6.0
|
||||||
|
tablib===0.11.5
|
||||||
|
virtualbmc===1.2.0
|
||||||
|
deprecation===1.0.1
|
||||||
|
SQLAlchemy===1.1.12
|
||||||
|
pyroute2===0.4.21
|
||||||
|
google-auth===1.0.1
|
||||||
|
kazoo===2.4.0
|
||||||
|
XStatic-roboto-fontface===0.5.0.0
|
||||||
|
pyudev===0.21.0
|
||||||
|
eventlet===0.20.0
|
||||||
|
openstack-doc-tools===1.6.0
|
||||||
|
frozendict===1.2
|
||||||
|
oslo.messaging===5.30.1
|
||||||
|
extras===1.0.0
|
||||||
|
PyJWT===1.5.2
|
||||||
|
et-xmlfile===1.0.1
|
||||||
|
paramiko===2.2.1
|
||||||
|
ordereddict===1.1
|
||||||
|
reno===2.5.0
|
||||||
|
unicodecsv===0.14.1
|
||||||
|
imagesize===0.7.1
|
||||||
|
pathlib===1.0.1;python_version=='2.7'
|
||||||
|
urllib3===1.22
|
||||||
|
graphviz===0.8
|
||||||
|
PyKMIP===0.6.0
|
||||||
|
python-subunit===1.2.0
|
||||||
|
tornado===4.4.3;python_version=='3.4'
|
||||||
|
tornado===4.4.3;python_version=='3.5'
|
||||||
|
pycparser===2.18
|
||||||
|
mock===2.0.0
|
||||||
|
PyYAML===3.12
|
||||||
|
beautifulsoup4===4.6.0
|
||||||
|
os-net-config===7.3.2
|
||||||
|
ovs===2.7.0
|
||||||
|
cryptography===2.0.2
|
||||||
|
backports.ssl-match-hostname===3.5.0.1
|
||||||
|
pylxd===2.2.4
|
||||||
|
anyjson===0.3.3
|
||||||
|
requests-mock===1.3.0
|
||||||
|
os-apply-config===7.2.1
|
||||||
|
oslosphinx===4.15.2
|
||||||
|
mox3===0.23.0
|
||||||
|
gunicorn===19.7.1
|
||||||
|
unittest2===1.1.0
|
||||||
|
django-compressor===2.1.1
|
||||||
|
libvirt-python===3.5.0
|
||||||
|
python-zunclient===0.4.1
|
||||||
|
tzlocal===1.4
|
||||||
|
python-novaclient===9.1.1
|
||||||
|
bcrypt===3.1.3
|
||||||
|
os-client-config===1.28.0
|
||||||
|
XStatic-Angular-Gettext===2.3.8.0
|
||||||
|
Pygments===2.2.0
|
||||||
|
XStatic-Hogan===2.0.0.2
|
||||||
|
XStatic-objectpath===1.2.1.0
|
||||||
|
python-manilaclient===1.17.2
|
||||||
|
requests===2.18.2
|
||||||
|
snowballstemmer===1.2.1
|
||||||
|
Jinja2===2.9.6
|
||||||
|
XStatic-Bootstrap-SCSS===3.3.7.1
|
||||||
|
pyzabbix===0.7.4
|
||||||
|
ptyprocess===0.5.2
|
||||||
|
amqp===2.2.1
|
||||||
|
ruamel.yaml===0.13.14;python_version=='3.4'
|
||||||
|
ruamel.yaml===0.13.14;python_version=='3.5'
|
||||||
|
websockify===0.8.0
|
||||||
|
html2text===2016.9.19;python_version=='3.4'
|
||||||
|
html2text===2016.9.19;python_version=='3.5'
|
||||||
|
XStatic-JQuery.quicksearch===2.0.3.1
|
||||||
|
mpmath===0.19
|
||||||
|
XStatic-JQuery-Migrate===1.2.1.1
|
||||||
|
appdirs===1.4.3
|
||||||
|
tinyrpc===0.5
|
||||||
|
Flask-SQLAlchemy===2.2
|
||||||
|
daiquiri===1.2.1
|
||||||
|
influxdb===4.1.1
|
||||||
|
funcparserlib===0.3.6
|
||||||
|
passlib===1.7.1
|
||||||
|
dib-utils===0.0.11
|
||||||
|
xlwt===1.2.0
|
||||||
|
cliff===2.8.0
|
||||||
|
os-brick===1.15.4
|
||||||
|
trollius===2.1
|
||||||
|
scp===0.10.2
|
||||||
|
xlrd===1.0.0
|
||||||
|
python-zaqarclient===1.7.0
|
||||||
|
funcsigs===1.0.2;python_version=='2.7'
|
||||||
|
zhmcclient===0.14.0
|
||||||
|
dnspython3===1.15.0;python_version=='3.4'
|
||||||
|
dnspython3===1.15.0;python_version=='3.5'
|
||||||
|
ldappool===2.1.0
|
||||||
|
termcolor===1.1.0
|
||||||
|
hpack===3.0.0;python_version=='3.4'
|
||||||
|
hpack===3.0.0;python_version=='3.5'
|
||||||
|
hiredis===0.2.0
|
||||||
|
google-api-python-client===1.6.2
|
||||||
|
castellan===0.12.1
|
||||||
|
oslo.versionedobjects===1.26.1
|
||||||
|
webcolors===1.7
|
||||||
|
aodhclient===0.9.0
|
||||||
|
autobahn===17.7.1
|
||||||
|
SQLAlchemy-Utils===0.32.14
|
||||||
|
coverage===4.4.1
|
||||||
|
freezegun===0.3.9
|
||||||
|
python-pytun===2.2.1
|
||||||
|
pyperclip===1.5.27
|
||||||
|
cassandra-driver===3.11.0
|
||||||
|
mox===0.5.3
|
||||||
|
XStatic-Angular-Schema-Form===0.8.13.0
|
||||||
|
gabbi===1.35.0
|
||||||
|
nwdiag===1.0.4
|
||||||
|
XStatic-bootswatch===3.3.7.0
|
||||||
|
XStatic-term.js===0.0.7.0
|
||||||
|
oslo.log===3.30.1
|
||||||
|
nodeenv===1.1.4
|
||||||
|
pylev===1.3.0
|
||||||
|
python-searchlightclient===1.2.0
|
||||||
|
oslo.middleware===3.30.1
|
||||||
|
brotlipy===0.6.0;python_version=='3.4'
|
||||||
|
brotlipy===0.6.0;python_version=='3.5'
|
||||||
|
XStatic-mdi===1.4.57.0
|
||||||
|
django-pyscss===2.0.2
|
||||||
|
uritemplate===3.0.0
|
||||||
|
django-babel===0.6.1
|
||||||
|
docutils===0.13.1
|
||||||
|
notifier===1.0.3
|
||||||
|
pycrypto===2.6.1
|
||||||
|
ujson===1.35
|
||||||
|
selenium===3.4.3
|
||||||
|
python-glareclient===0.4.3
|
||||||
|
mypy===0.521;python_version=='3.4'
|
||||||
|
mypy===0.521;python_version=='3.5'
|
||||||
|
mistral-lib===0.3.3
|
||||||
|
python-masakariclient===3.0.1
|
||||||
|
dogtag-pki===10.3.5.1
|
||||||
|
sphinxcontrib-seqdiag===0.8.5
|
||||||
|
os-win===2.2.0
|
||||||
|
pydot3===1.0.9
|
||||||
|
retrying===1.3.3
|
||||||
|
pathlib2===2.3.0
|
||||||
|
pydotplus===2.0.2
|
||||||
|
flask-oslolog===0.1
|
||||||
|
urwid===1.3.1;python_version=='3.4'
|
||||||
|
urwid===1.3.1;python_version=='3.5'
|
||||||
|
singledispatch===3.4.0.3;python_version=='2.7'
|
||||||
|
oslo.serialization===2.20.1
|
||||||
|
warlock===1.2.0
|
||||||
|
exabgp===4.0.2
|
||||||
|
sphinxcontrib-httpdomain===1.5.0
|
||||||
|
thriftpy===0.3.9;python_version=='2.7'
|
||||||
|
murano-pkg-check===0.3.0
|
||||||
|
oslo.vmware===2.23.1
|
||||||
|
sqlalchemy-migrate===0.11.0
|
||||||
|
gitdb===0.6.4
|
||||||
|
python-monascaclient===1.7.0
|
||||||
|
ldap3===2.2.4
|
||||||
|
requests-ntlm===1.0.0
|
||||||
|
automaton===1.12.1
|
||||||
|
argh===0.26.2;python_version=='3.4'
|
||||||
|
argh===0.26.2;python_version=='3.5'
|
||||||
|
os-service-types===1.0.0
|
||||||
|
keyring===10.4.0
|
||||||
|
testscenarios===0.5.0
|
||||||
|
sphinxcontrib-pecanwsme===0.8.0
|
||||||
|
enum34===1.1.6
|
||||||
|
packaging===16.8
|
||||||
|
flask-keystone===0.2
|
||||||
|
nose-exclude===0.5.0
|
||||||
|
psutil===5.2.2
|
||||||
|
py===1.4.34
|
||||||
|
txaio===2.8.1
|
||||||
|
elasticsearch===2.4.1
|
||||||
|
django-nose===1.4.4
|
||||||
|
XStatic-JQuery.TableSorter===2.14.5.1
|
||||||
|
pifpaf===1.9.2
|
||||||
|
pysmi===0.1.3
|
||||||
|
blockdiag===1.5.3
|
||||||
|
testtools===2.3.0
|
||||||
|
Parsley===1.3
|
||||||
|
XStatic-tv4===1.2.7.0
|
||||||
|
positional===1.1.2
|
||||||
|
XStatic-JSEncrypt===2.3.1.1
|
||||||
|
python-cinderclient===3.1.0
|
||||||
|
keystonemiddleware===4.17.0
|
||||||
|
django-formtools===2.0
|
||||||
|
python-ceilometerclient===2.9.0
|
||||||
|
XStatic-Spin===1.2.5.2
|
||||||
|
os-traits===0.3.3
|
||||||
|
SecretStorage===2.3.1
|
||||||
|
XStatic-Rickshaw===1.5.0.0
|
||||||
|
iso8601===0.1.11
|
||||||
|
tooz===1.58.0
|
||||||
|
linecache2===1.0.0
|
||||||
|
oauth2client===4.1.2
|
||||||
|
idna===2.5
|
||||||
|
python-karborclient===0.6.0
|
||||||
|
weakrefmethod===1.0.3;python_version=='2.7'
|
||||||
|
PuLP===1.6.8
|
||||||
|
crc16===0.1.1
|
||||||
|
protobuf===3.3.0
|
||||||
|
os-dpm===1.1.0
|
||||||
|
sushy===1.1.0
|
||||||
|
python-neutronclient===6.5.0
|
||||||
|
pika===0.10.0
|
||||||
|
oslo.cache===1.25.1
|
||||||
|
WebTest===2.0.27
|
||||||
|
openstack.nose-plugin===0.11
|
||||||
|
os-collect-config===7.2.1
|
||||||
|
python-qpid-proton===0.17.0
|
||||||
|
python-octaviaclient===1.2.0
|
||||||
|
pysaml2===4.0.2
|
||||||
|
oslo.reports===1.22.1
|
||||||
|
ceilometermiddleware===1.1.0
|
||||||
|
python-nss===1.0.1
|
||||||
|
testrepository===0.0.20
|
||||||
|
sympy===1.1.1
|
||||||
|
sphinxmark===0.1.19
|
||||||
|
openpyxl===2.4.8
|
||||||
|
PyNaCl===1.1.2
|
||||||
|
osc-lib===1.7.0
|
||||||
|
python-consul===0.7.0
|
||||||
|
seqdiag===0.9.5
|
||||||
|
numpy===1.13.1
|
||||||
|
repoze.who===2.3
|
||||||
|
Sphinx===1.6.3
|
||||||
|
oslo.config===4.11.1
|
||||||
|
tempest===17.0.0
|
||||||
|
django-floppyforms===1.7.0
|
||||||
|
openstackdocstheme===1.16.1
|
||||||
|
progressbar2===3.32.1
|
||||||
|
zake===0.2.2
|
||||||
|
python-solumclient===2.5.0
|
||||||
|
PyMySQL===0.7.11
|
||||||
|
kubernetes===2.0.0
|
||||||
|
httplib2===0.10.3
|
||||||
|
bottle===0.12.13
|
||||||
|
betamax===0.8.0
|
||||||
|
construct===2.8.12
|
||||||
|
pyparsing===2.2.0
|
||||||
|
dogpile.cache===0.6.4
|
||||||
|
python-barbicanclient===4.5.2
|
||||||
|
blinker===1.4;python_version=='3.4'
|
||||||
|
blinker===1.4;python_version=='3.5'
|
||||||
|
tricircleclient===0.1.1
|
||||||
|
WSME===0.9.2
|
||||||
|
msgpack-python===0.4.8
|
||||||
|
proboscis===1.2.6.0
|
||||||
|
fortiosclient===0.0.2
|
||||||
|
stevedore===1.25.1
|
||||||
|
botocore===1.5.89
|
||||||
|
xmltodict===0.11.0
|
||||||
|
pyasn1===0.3.1
|
||||||
|
python-utils===2.2.0
|
||||||
|
oslo.rootwrap===5.9.1
|
||||||
|
Django===1.11.3
|
||||||
|
pexpect===4.2.1
|
||||||
|
cmd2===0.7.5
|
||||||
|
redis===2.10.5
|
||||||
|
jmespath===0.9.3
|
||||||
|
click===6.7
|
||||||
|
docker-pycreds===0.2.1
|
||||||
|
XStatic-smart-table===1.4.13.2
|
||||||
|
kuryr-lib===0.5.0
|
||||||
|
scrypt===0.8.0
|
||||||
|
jsonpatch===1.16
|
||||||
|
typed-ast===1.0.4;python_version=='3.4'
|
||||||
|
typed-ast===1.0.4;python_version=='3.5'
|
||||||
|
os-testr===0.8.2
|
||||||
|
cotyledon===1.6.8
|
||||||
|
stomp.py===4.1.18
|
||||||
|
xattr===0.9.2
|
||||||
|
systemd-python===234
|
||||||
|
python-memcached===1.58
|
||||||
|
openstacksdk===0.9.17
|
||||||
|
six===1.10.0
|
||||||
|
h2===2.6.2;python_version=='3.4'
|
||||||
|
h2===2.6.2;python_version=='3.5'
|
||||||
|
dulwich===0.17.3
|
||||||
|
pykafka===2.6.0
|
||||||
|
kombu===4.1.0
|
||||||
|
mitmproxy===2.0.2;python_version=='3.4'
|
||||||
|
mitmproxy===2.0.2;python_version=='3.5'
|
||||||
|
betamax-matchers===0.4.0
|
||||||
|
yaql===1.1.3
|
||||||
|
requestsexceptions===1.3.0
|
||||||
|
testresources===2.0.1
|
||||||
|
falcon===1.2.0
|
||||||
|
etcd3gw===0.1.0
|
||||||
|
pycryptodome===3.4.6
|
||||||
|
pyldap===2.4.37
|
||||||
|
Flask-RESTful===0.3.6
|
||||||
|
GitPython===2.1.5
|
||||||
|
python-ironicclient===1.17.0
|
||||||
|
XStatic===1.0.1
|
||||||
|
click-repl===0.1.2
|
||||||
|
XStatic-Angular-FileUpload===12.0.4.0
|
||||||
|
python-openstackclient===3.12.0
|
||||||
|
pika-pool===0.1.3
|
||||||
|
pyzmq===16.0.2
|
||||||
|
EditorConfig===0.12.1;python_version=='3.4'
|
||||||
|
EditorConfig===0.12.1;python_version=='3.5'
|
||||||
|
oslo.db===4.25.1
|
||||||
|
simplegeneric===0.8.1
|
||||||
|
abclient===0.2.3
|
||||||
|
pymemcache===1.4.3
|
||||||
|
wrapt===1.10.10
|
||||||
|
oslo.privsep===1.22.1
|
||||||
|
zope.interface===4.4.2
|
||||||
|
oslo.policy===1.25.2
|
||||||
|
python-muranoclient===0.14.0
|
||||||
|
pyeclib===1.5.0
|
||||||
|
django-openstack-auth===3.5.0
|
||||||
|
wsgi-intercept===1.5.0
|
||||||
|
ndg-httpsclient===0.4.2;python_version=='2.7'
|
||||||
|
tempest-lib===1.0.0
|
||||||
|
spec-cleaner===0.9.8
|
||||||
|
repoze.lru===0.6
|
||||||
|
rfc3986===1.1.0
|
||||||
|
tenacity===4.4.0
|
||||||
|
XStatic-Magic-Search===0.2.5.1
|
||||||
|
python-designateclient===2.7.0
|
||||||
|
Paste===2.0.3
|
||||||
|
boto===2.48.0
|
||||||
|
functools32===3.2.3.post2;python_version=='2.7'
|
||||||
|
watchdog===0.8.3;python_version=='3.4'
|
||||||
|
watchdog===0.8.3;python_version=='3.5'
|
||||||
|
gevent===1.2.2
|
||||||
|
os-vif===1.7.0
|
||||||
|
Werkzeug===0.12.2
|
||||||
|
pyasn1-modules===0.0.10
|
||||||
|
APScheduler===3.3.1
|
||||||
|
monotonic===1.3
|
||||||
|
python-smaugclient===0.0.8
|
||||||
|
python-troveclient===2.12.0
|
||||||
|
etcd3===0.6.2
|
||||||
|
cliff-tablib===2.0
|
||||||
|
XStatic-Bootstrap-Datepicker===1.3.1.0
|
||||||
|
CouchDB===1.1
|
||||||
|
netifaces===0.10.6
|
||||||
|
cachetools===2.0.0
|
||||||
|
ws4py===0.4.2
|
||||||
|
backports-abc===0.5;python_version=='3.4'
|
||||||
|
backports-abc===0.5;python_version=='3.5'
|
||||||
|
keystoneauth1===3.1.0
|
||||||
|
statsd===3.2.1
|
||||||
|
XenAPI===1.2
|
||||||
|
python-keystoneclient===3.13.0
|
||||||
|
demjson===2.2.4
|
||||||
|
diskimage-builder===2.7.2
|
||||||
|
heat-translator===0.9.0
|
||||||
|
python-magnumclient===2.7.0
|
||||||
|
docker===2.4.2
|
||||||
|
prompt-toolkit===1.0.15
|
||||||
|
pathtools===0.1.2;python_version=='3.4'
|
||||||
|
pathtools===0.1.2;python_version=='3.5'
|
||||||
|
qpid-python===1.36.0.post1;python_version=='2.7'
|
||||||
|
contextlib2===0.5.5
|
||||||
|
XStatic-Angular-lrdragndrop===1.0.2.2
|
||||||
|
python-congressclient===1.8.0
|
||||||
|
ovsdbapp===0.4.1
|
||||||
|
aniso8601===1.2.1
|
||||||
|
rjsmin===1.0.12
|
||||||
|
icalendar===3.11.5
|
||||||
|
decorator===4.1.2
|
||||||
|
cffi===1.10.0
|
||||||
|
futurist===1.3.1
|
||||||
|
jsonschema===2.6.0
|
||||||
|
alembic===0.9.3
|
||||||
|
glance-store===0.22.0
|
||||||
|
sphinx-testing===0.7.2
|
||||||
|
dnspython===1.15.0
|
||||||
|
oauthlib===2.0.2
|
||||||
|
Babel===2.3.4
|
||||||
|
logutils===0.3.5
|
||||||
|
scandir===1.5
|
||||||
|
sphinxcontrib-fulltoc===1.2.0
|
||||||
|
smmap2===2.0.3
|
||||||
|
olefile===0.44
|
||||||
|
greenlet===0.4.12
|
||||||
|
xvfbwrapper===0.2.9
|
||||||
|
futures===3.1.1;python_version=='2.7'
|
||||||
|
tosca-parser===0.8.1
|
||||||
|
Flask===0.12.2
|
||||||
|
pymod2pkg===0.8.4
|
||||||
|
happybase===1.1.0;python_version=='2.7'
|
||||||
|
marathon===0.9.0
|
||||||
|
docker-py===1.10.6
|
||||||
|
fasteners===0.14.1
|
||||||
|
sortedcontainers===1.5.7;python_version=='3.4'
|
||||||
|
sortedcontainers===1.5.7;python_version=='3.5'
|
||||||
|
python-tackerclient===0.10.0
|
||||||
|
python-heatclient===1.11.1
|
||||||
|
kafka-python===1.3.3
|
||||||
|
oslo.utils===3.28.1
|
||||||
|
python-editor===1.0.3
|
||||||
|
gitdb2===2.0.2
|
||||||
|
requests-kerberos===0.11.0
|
||||||
|
itsdangerous===0.24
|
||||||
|
XStatic-jquery-ui===1.12.0.1
|
||||||
|
monasca-statsd===1.7.0
|
||||||
|
python-dateutil===2.6.1
|
||||||
|
virtualenv===15.1.0
|
||||||
|
colorama===0.3.9
|
||||||
|
ironic-lib===2.10.0
|
||||||
|
pytz===2017.2
|
||||||
|
XStatic-D3===3.5.17.0
|
||||||
|
actdiag===0.5.4
|
||||||
|
sysv-ipc===0.7.0
|
||||||
|
scikit-learn===0.18.2
|
||||||
|
zuul-sphinx===0.1.2
|
||||||
|
shade===1.22.2
|
Loading…
Reference in New Issue
Block a user