├── LICENSE
├── README.md
├── server
└── externalscripts
│ └── openstack-discovery
└── templates
├── Template_OpenStack.xml
├── Template_OpenStack_Node.xml
└── Template_OpenStack_v3.xml
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {yyyy} {name of copyright owner}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
203 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Monitoring OpenStack with Zabbix
2 |
3 | This repository contains Zabbix resources for monitoring OpenStack environment.
4 |
5 | # Features
6 | The following features are currently available:
7 | * Automatically discover (using API), add service endpoints and monitor their availability and performance
8 | * Automatically discover (using API), add hypervisor hosts and monitor availability, performance and other metrics
9 | * Active monitoring of OpenStack nodes - connections are initiated by agents installed on nodes
10 | * Flexible configuration based on variables (Zabbix macros)
11 |
12 | # Installation
13 | * Install **python-keystoneclient** and **python-novaclient** on you Zabbix server
14 | * Install Zabbix agents on your OpenStack nodes and define **ServerActive** with IP address of the Zabbix server
15 | * Copy scripts from **server/externalscripts/** to your Zabbix server to **ExternalScripts** location
16 | * Import templates from **templates/** into your Zabbix server
17 | * Add OpenStack controller host (the one with Keystone component) to Zabbix and link **Template OpenStack** or **Template OpenStack Identity V3** template to it
18 | * Wait for Zabbix to add discovered hypervisor hosts and endpoints items (look for them in the controller host)
19 |
20 | # Configuration
21 | Configure the following macros on the **controller host level** in Zabbix so that server could connect to keystone:
22 | * **{$OS_AUTHURL}** - OpenStack keystone auth url (*http://127.0.0.1:5000/v2.0* by default)
23 | * **{$OS_TENANT}** - OpenStack tenant name (*admin* by default)
24 | * **{$OS_USER}** - OpenStack user name (*admin* by default)
25 | * **{$OS_PASSWORD}** - OpenStack user password (*admin* by default)
26 | * **{$OS_USER}** - OpenStack user name (*admin* by default)
27 | * **{$OS_PASSWORD}** - OpenStack user password (*admin* by default)
28 | * **{$OS_USER_DOMAIN_NAME}** - (only for Identity API v3) OpenStack User domain name (*Default* by default)
29 | * **{$OS_PROJECT_DOMAIN_NAME}}** - (only for Identity API v3) OpenStack User domain name (*Default* by default)
30 |
31 |
32 | # License
33 | This project is licensed under Apache License 2.0
34 |
35 | # Contribute
36 | Feel free to test, break, experiment and contribute :-)
37 |
--------------------------------------------------------------------------------
/server/externalscripts/openstack-discovery:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 |
4 | from sys import exit
5 | from sys import argv
6 | from sys import stderr
7 | import json
8 | from datetime import datetime
9 | import re
10 |
11 | from urlparse import urlparse
12 |
13 | try:
14 | from keystoneclient.v2_0 import client as keystone_client
15 | from keystoneclient.auth.identity import v2
16 | from novaclient import client
17 | except ImportError:
18 | print 'ZBX_NOTSUPPORTED\x00 Failed to import openstack python modules'
19 | exit(1)
20 |
21 | try:
22 | from keystoneauth1.identity import v3
23 | from keystoneauth1 import session
24 | from keystoneclient.v3 import client as kv3client
25 | except ImportError:
26 | # endpoints_v3 and hypervisors_v3 will failed...
27 | pass
28 |
29 | def get_host_port(url):
30 | parsed = urlparse(url)
31 | if parsed:
32 | # Case of https/http endpoints where port wasn't explicitly define
33 | if not parsed.port:
34 | if "https" in url:
35 | return (parsed.hostname, 443)
36 | else:
37 | return(parsed.hostname, 80)
38 | else:
39 | return (parsed.hostname, parsed.port)
40 |
41 | def print_json(data):
42 | print json.dumps({'data':data},sort_keys=True,indent=7,separators=(',',':'))
43 |
44 | def discover_endpoints(auth_url, tenant_name, username, password):
45 | conn = keystone_client.Client(username=username, password=password, tenant_name=tenant_name, auth_url=auth_url)
46 |
47 | services = []
48 | for e in conn.endpoints.list():
49 | host = get_host_port(e.publicurl)
50 | if e.enabled:
51 | service = conn.services.get(e.service_id)
52 | services.append({'{#OS_SERVICENAME}':service.name, '{#OS_SERVICEURL}':e.publicurl, '{#OS_SERVICEHOST}':host[0], '{#OS_SERVICEPORT}':host[1] })
53 |
54 | print_json(services)
55 |
56 | def discover_endpoints_v3(auth_url, tenant_name, username, password, user_domain_name, project_domain_name):
57 | auth = v3.Password(auth_url=auth_url, username=username,
58 | password=password, project_name=tenant_name,
59 | user_domain_name=user_domain_name, project_domain_name=project_domain_name)
60 | sess = session.Session(auth=auth)
61 | conn = kv3client.Client(session=sess)
62 |
63 | services = []
64 | for e in conn.endpoints.list(interface='public'):
65 | host = get_host_port(e.url)
66 | if e.enabled:
67 | service = conn.services.get(e.service_id)
68 | services.append({'{#OS_SERVICENAME}':service.name, '{#OS_SERVICEURL}':e.url, '{#OS_SERVICEHOST}':host[0], '{#OS_SERVICEPORT}':host[1] })
69 |
70 | print_json(services)
71 |
72 | def discover_hypervisors(auth_url, tenant_name, username, password):
73 | conn = nova = client.Client(2, username, password, tenant_name, auth_url)
74 |
75 | hypervisors = []
76 | for h in conn.hypervisors.list(detailed=True):
77 | if h.status == 'enabled':
78 | hypervisors.append({'{#OS_HYPERVISOR_HOSTNAME}':h.hypervisor_hostname, '{#OS_HYPERVISOR_IP}':h.host_ip, '{#OS_HYPERVISOR_TYPE}':h.hypervisor_type })
79 |
80 | print_json(hypervisors)
81 |
82 | def discover_hypervisors_v3(auth_url, tenant_name, username, password, user_domain_name, project_domain_name):
83 | auth = v3.Password(auth_url=auth_url, username=username,
84 | password=password, project_name=tenant_name,
85 | user_domain_name=user_domain_name, project_domain_name=project_domain_name)
86 | sess = session.Session(auth=auth)
87 | conn = client.Client(2, session=sess)
88 |
89 | hypervisors = []
90 | for h in conn.hypervisors.list(detailed=True):
91 | if h.status == 'enabled':
92 | hypervisors.append({'{#OS_HYPERVISOR_HOSTNAME}':h.hypervisor_hostname, '{#OS_HYPERVISOR_IP}':h.host_ip, '{#OS_HYPERVISOR_TYPE}':h.hypervisor_type })
93 |
94 | print_json(hypervisors)
95 |
96 |
97 | if __name__ == '__main__':
98 | if (len(argv) not in [6,8]):
99 | print """Usage: %s TYPE AUTH_URL TENANT USERNAME PASSWORD
100 | where
101 |
102 | TYPE - one of the following: endpoints hypervisors endpoints_v3 hypervisors_v3
103 | AUTH_URL - URL to keystone
104 | TENANT - tenant name
105 | USERNAME - user name
106 | PASSWORD - password for user
107 | (v3 only) USER_DOMAIN_NAME - user domain name
108 | (v3 only) PROJECT_DOMAIN_NAME - project domain name
109 | """ % argv[0]
110 | exit(2)
111 | else:
112 | (TYPE,AUTH_URL,TENANT,USERNAME,PASSWORD) = argv[1:6]
113 |
114 | if TYPE in ['endpoints_v3', 'hypervisors_v3']:
115 | (USER_DOMAIN_NAME, PROJECT_DOMAIN_NAME) = argv[6:]
116 |
117 | if TYPE == 'endpoints':
118 | discover_endpoints(AUTH_URL,TENANT,USERNAME,PASSWORD)
119 | elif TYPE == 'hypervisors':
120 | discover_hypervisors(AUTH_URL,TENANT,USERNAME,PASSWORD)
121 | elif TYPE == 'endpoints_v3':
122 | discover_endpoints_v3(AUTH_URL,TENANT,USERNAME,PASSWORD, USER_DOMAIN_NAME, PROJECT_DOMAIN_NAME)
123 | elif TYPE == 'hypervisors_v3':
124 | discover_hypervisors_v3(AUTH_URL,TENANT,USERNAME,PASSWORD, USER_DOMAIN_NAME, PROJECT_DOMAIN_NAME)
125 | else:
126 | print 'ZBX_NOTSUPPORTED\x00 Unknown type: %s' % TYPE
127 | exit(1)
128 |
129 |
130 |
131 |
--------------------------------------------------------------------------------
/templates/Template_OpenStack.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 | 2015-06-25T10:43:58Z
5 |
6 |
7 | Discovered hosts
8 |
9 |
10 | Templates
11 |
12 |
13 |
14 |
15 | Template OpenStack
16 | Template OpenStack
17 |
18 |
19 | Templates
20 |
21 |
22 |
23 |
24 | OpenStack Compute
25 |
26 |
27 | Openstack Endpoints
28 |
29 |
30 |
31 |
32 |
33 | OpenStack Compute Hypervisor
34 | 10
35 |
36 |
37 | openstack-discovery["hypervisors","{$OS_AUTHURL}","{$OS_TENANT}","{$OS_USER}","{$OS_PASSWORD}"]
38 | 3600
39 | 0
40 |
41 |
42 |
43 | 0
44 | 0
45 |
46 | 0
47 |
48 |
49 |
50 |
51 | 0
52 |
53 |
54 |
55 |
56 |
57 | :
58 | 7
59 |
60 |
61 |
62 |
63 |
64 |
65 | {#OS_HYPERVISOR_HOSTNAME}
66 | {#OS_HYPERVISOR_HOSTNAME}
67 | 0
68 |
69 |
70 |
71 | Discovered hosts
72 |
73 |
74 |
75 |
76 |
77 | OpenStack {#OS_HYPERVISOR_TYPE} Hypervisors
78 |
79 |
80 |
81 |
82 | Template OpenStack Node
83 |
84 |
85 |
86 |
87 |
88 |
89 | OpenStack Endpoints
90 | 10
91 |
92 |
93 | openstack-discovery["endpoints","{$OS_AUTHURL}","{$OS_TENANT}","{$OS_USER}","{$OS_PASSWORD}"]
94 | 3600
95 | 0
96 |
97 |
98 |
99 | 0
100 | 0
101 |
102 | 0
103 |
104 |
105 |
106 |
107 | 0
108 |
109 |
110 |
111 |
112 |
113 | :
114 | 30
115 |
116 |
117 |
118 | Response time of endpoint {#OS_SERVICENAME} on host {#OS_SERVICEHOST}
119 | 3
120 |
121 | 0
122 |
123 | net.tcp.service.perf[http,{#OS_SERVICEHOST},{#OS_SERVICEPORT}]
124 | 60
125 | 90
126 | 365
127 | 0
128 | 0
129 |
130 |
131 | 0
132 |
133 |
134 | 0
135 | 0
136 |
137 | 0
138 |
139 | 1
140 |
141 |
142 |
143 | 0
144 | 0
145 |
146 |
147 |
148 |
149 |
150 |
151 | 0
152 |
153 |
154 | Openstack Endpoints
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 | {Template OpenStack:net.tcp.service.perf[http,{#OS_SERVICEHOST},{#OS_SERVICEPORT}].sum(#2)}=0
164 | Endpoint of service {#OS_SERVICENAME} on host {#OS_SERVICEHOST} is unavailable
165 |
166 | 0
167 | 3
168 | Trigger an event if we couldn't get proper connections over last 2 checks.
169 | 0
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 | {$OS_AUTHURL}
179 | http://127.0.0.1:5000/v2.0
180 |
181 |
182 | {$OS_PASSWORD}
183 | admin
184 |
185 |
186 | {$OS_TENANT}
187 | admin
188 |
189 |
190 | {$OS_USER}
191 | admin
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
--------------------------------------------------------------------------------
/templates/Template_OpenStack_Node.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 | 2015-06-25T10:43:01Z
5 |
6 |
7 | Templates
8 |
9 |
10 |
11 |
12 | Template OpenStack Node
13 | Template OpenStack Node
14 |
15 |
16 | Templates
17 |
18 |
19 |
20 |
21 | Availability
22 |
23 |
24 | CPU
25 |
26 |
27 | Filesystems
28 |
29 |
30 | General
31 |
32 |
33 | Memory
34 |
35 |
36 | Network interfaces
37 |
38 |
39 | OS
40 |
41 |
42 | Performance
43 |
44 |
45 | Processes
46 |
47 |
48 | Security
49 |
50 |
51 |
52 | -
53 | Agent ping
54 | 7
55 |
56 | 0
57 |
58 | agent.ping
59 | 30
60 | 7
61 | 365
62 | 0
63 | 3
64 |
65 |
66 | 0
67 |
68 |
69 | 0
70 | 0
71 |
72 | 0
73 |
74 | 1
75 |
76 |
77 |
78 | 0
79 | 0
80 |
81 |
82 |
83 |
84 |
85 |
86 | 0
87 |
88 |
89 | Availability
90 |
91 |
92 |
93 |
94 |
95 | -
96 | Available memory
97 | 7
98 |
99 | 0
100 |
101 | vm.memory.size[available]
102 | 60
103 | 7
104 | 365
105 | 0
106 | 3
107 |
108 | B
109 | 0
110 |
111 |
112 | 0
113 | 0
114 |
115 | 0
116 |
117 | 1
118 |
119 |
120 |
121 | 0
122 | 0
123 |
124 |
125 |
126 |
127 |
128 | Available memory is defined as free+cached+buffers memory.
129 | 0
130 |
131 |
132 | Memory
133 |
134 |
135 |
136 |
137 |
138 | -
139 | Checksum of $1
140 | 7
141 |
142 | 0
143 |
144 | vfs.file.cksum[/etc/passwd]
145 | 3600
146 | 7
147 | 365
148 | 0
149 | 3
150 |
151 |
152 | 0
153 |
154 |
155 | 0
156 | 0
157 |
158 | 0
159 |
160 | 1
161 |
162 |
163 |
164 | 0
165 | 0
166 |
167 |
168 |
169 |
170 |
171 |
172 | 0
173 |
174 |
175 | Security
176 |
177 |
178 |
179 |
180 |
181 | -
182 | Context switches per second
183 | 7
184 |
185 | 0
186 |
187 | system.cpu.switches
188 | 60
189 | 7
190 | 365
191 | 0
192 | 3
193 |
194 | sps
195 | 1
196 |
197 |
198 | 0
199 | 0
200 |
201 | 0
202 |
203 | 1
204 |
205 |
206 |
207 | 0
208 | 0
209 |
210 |
211 |
212 |
213 |
214 |
215 | 0
216 |
217 |
218 | CPU
219 |
220 |
221 | Performance
222 |
223 |
224 |
225 |
226 |
227 | -
228 | CPU $2 time
229 | 7
230 |
231 | 0
232 |
233 | system.cpu.util[,steal]
234 | 60
235 | 7
236 | 365
237 | 0
238 | 0
239 |
240 | %
241 | 0
242 |
243 |
244 | 0
245 | 0
246 |
247 | 0
248 |
249 | 1
250 |
251 |
252 |
253 | 0
254 | 0
255 |
256 |
257 |
258 |
259 |
260 | The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine).
261 | 0
262 |
263 |
264 | CPU
265 |
266 |
267 | Performance
268 |
269 |
270 |
271 |
272 |
273 | -
274 | CPU $2 time
275 | 7
276 |
277 | 0
278 |
279 | system.cpu.util[,user]
280 | 60
281 | 7
282 | 365
283 | 0
284 | 0
285 |
286 | %
287 | 0
288 |
289 |
290 | 0
291 | 0
292 |
293 | 0
294 |
295 | 1
296 |
297 |
298 |
299 | 0
300 | 0
301 |
302 |
303 |
304 |
305 |
306 | The time the CPU has spent running users' processes that are not niced.
307 | 0
308 |
309 |
310 | CPU
311 |
312 |
313 | Performance
314 |
315 |
316 |
317 |
318 |
319 | -
320 | CPU $2 time
321 | 7
322 |
323 | 0
324 |
325 | system.cpu.util[,interrupt]
326 | 60
327 | 7
328 | 365
329 | 0
330 | 0
331 |
332 | %
333 | 0
334 |
335 |
336 | 0
337 | 0
338 |
339 | 0
340 |
341 | 1
342 |
343 |
344 |
345 | 0
346 | 0
347 |
348 |
349 |
350 |
351 |
352 | The amount of time the CPU has been servicing hardware interrupts.
353 | 0
354 |
355 |
356 | CPU
357 |
358 |
359 | Performance
360 |
361 |
362 |
363 |
364 |
365 | -
366 | CPU $2 time
367 | 7
368 |
369 | 0
370 |
371 | system.cpu.util[,iowait]
372 | 60
373 | 7
374 | 365
375 | 0
376 | 0
377 |
378 | %
379 | 0
380 |
381 |
382 | 0
383 | 0
384 |
385 | 0
386 |
387 | 1
388 |
389 |
390 |
391 | 0
392 | 0
393 |
394 |
395 |
396 |
397 |
398 | Amount of time the CPU has been waiting for I/O to complete.
399 | 0
400 |
401 |
402 | CPU
403 |
404 |
405 | Performance
406 |
407 |
408 |
409 |
410 |
411 | -
412 | CPU $2 time
413 | 7
414 |
415 | 0
416 |
417 | system.cpu.util[,system]
418 | 60
419 | 7
420 | 365
421 | 0
422 | 0
423 |
424 | %
425 | 0
426 |
427 |
428 | 0
429 | 0
430 |
431 | 0
432 |
433 | 1
434 |
435 |
436 |
437 | 0
438 | 0
439 |
440 |
441 |
442 |
443 |
444 | The time the CPU has spent running the kernel and its processes.
445 | 0
446 |
447 |
448 | CPU
449 |
450 |
451 | Performance
452 |
453 |
454 |
455 |
456 |
457 | -
458 | CPU $2 time
459 | 7
460 |
461 | 0
462 |
463 | system.cpu.util[,softirq]
464 | 60
465 | 7
466 | 365
467 | 0
468 | 0
469 |
470 | %
471 | 0
472 |
473 |
474 | 0
475 | 0
476 |
477 | 0
478 |
479 | 1
480 |
481 |
482 |
483 | 0
484 | 0
485 |
486 |
487 |
488 |
489 |
490 | The amount of time the CPU has been servicing software interrupts.
491 | 0
492 |
493 |
494 | CPU
495 |
496 |
497 | Performance
498 |
499 |
500 |
501 |
502 |
503 | -
504 | CPU $2 time
505 | 7
506 |
507 | 0
508 |
509 | system.cpu.util[,nice]
510 | 60
511 | 7
512 | 365
513 | 0
514 | 0
515 |
516 | %
517 | 0
518 |
519 |
520 | 0
521 | 0
522 |
523 | 0
524 |
525 | 1
526 |
527 |
528 |
529 | 0
530 | 0
531 |
532 |
533 |
534 |
535 |
536 | The time the CPU has spent running users' processes that have been niced.
537 | 0
538 |
539 |
540 | CPU
541 |
542 |
543 | Performance
544 |
545 |
546 |
547 |
548 |
549 | -
550 | CPU $2 time
551 | 7
552 |
553 | 0
554 |
555 | system.cpu.util[,idle]
556 | 60
557 | 7
558 | 365
559 | 0
560 | 0
561 |
562 | %
563 | 0
564 |
565 |
566 | 0
567 | 0
568 |
569 | 0
570 |
571 | 1
572 |
573 |
574 |
575 | 0
576 | 0
577 |
578 |
579 |
580 |
581 |
582 | The time the CPU has spent doing nothing.
583 | 0
584 |
585 |
586 | CPU
587 |
588 |
589 | Performance
590 |
591 |
592 |
593 |
594 |
595 | -
596 | Free swap space
597 | 7
598 |
599 | 0
600 |
601 | system.swap.size[,free]
602 | 60
603 | 7
604 | 365
605 | 0
606 | 3
607 |
608 | B
609 | 0
610 |
611 |
612 | 0
613 | 0
614 |
615 | 0
616 |
617 | 1
618 |
619 |
620 |
621 | 0
622 | 0
623 |
624 |
625 |
626 |
627 |
628 |
629 | 0
630 |
631 |
632 | Memory
633 |
634 |
635 |
636 |
637 |
638 | -
639 | Free swap space in %
640 | 7
641 |
642 | 0
643 |
644 | system.swap.size[,pfree]
645 | 60
646 | 7
647 | 365
648 | 0
649 | 0
650 |
651 | %
652 | 0
653 |
654 |
655 | 0
656 | 0
657 |
658 | 0
659 |
660 | 1
661 |
662 |
663 |
664 | 0
665 | 0
666 |
667 |
668 |
669 |
670 |
671 |
672 | 0
673 |
674 |
675 | Memory
676 |
677 |
678 |
679 |
680 |
681 | -
682 | Host boot time
683 | 7
684 |
685 | 0
686 |
687 | system.boottime
688 | 600
689 | 7
690 | 365
691 | 0
692 | 3
693 |
694 | unixtime
695 | 0
696 |
697 |
698 | 0
699 | 0
700 |
701 | 0
702 |
703 | 1
704 |
705 |
706 |
707 | 0
708 | 0
709 |
710 |
711 |
712 |
713 |
714 |
715 | 0
716 |
717 |
718 | General
719 |
720 |
721 | OS
722 |
723 |
724 |
725 |
726 |
727 | -
728 | Host local time
729 | 7
730 |
731 | 0
732 |
733 | system.localtime
734 | 60
735 | 7
736 | 365
737 | 0
738 | 3
739 |
740 | unixtime
741 | 0
742 |
743 |
744 | 0
745 | 0
746 |
747 | 0
748 |
749 | 1
750 |
751 |
752 |
753 | 0
754 | 0
755 |
756 |
757 |
758 |
759 |
760 |
761 | 0
762 |
763 |
764 | General
765 |
766 |
767 | OS
768 |
769 |
770 |
771 |
772 |
773 | -
774 | Host name
775 | 7
776 |
777 | 0
778 |
779 | system.hostname
780 | 3600
781 | 7
782 | 365
783 | 0
784 | 1
785 |
786 |
787 | 0
788 |
789 |
790 | 0
791 | 0
792 |
793 | 0
794 |
795 | 1
796 |
797 |
798 |
799 | 0
800 | 0
801 |
802 |
803 |
804 |
805 |
806 | System host name.
807 | 3
808 |
809 |
810 | General
811 |
812 |
813 | OS
814 |
815 |
816 |
817 |
818 |
819 | -
820 | Interrupts per second
821 | 7
822 |
823 | 0
824 |
825 | system.cpu.intr
826 | 60
827 | 7
828 | 365
829 | 0
830 | 3
831 |
832 | ips
833 | 1
834 |
835 |
836 | 0
837 | 0
838 |
839 | 0
840 |
841 | 1
842 |
843 |
844 |
845 | 0
846 | 0
847 |
848 |
849 |
850 |
851 |
852 |
853 | 0
854 |
855 |
856 | CPU
857 |
858 |
859 | Performance
860 |
861 |
862 |
863 |
864 |
865 | -
866 | Maximum number of opened files
867 | 7
868 |
869 | 0
870 |
871 | kernel.maxfiles
872 | 3600
873 | 7
874 | 365
875 | 0
876 | 3
877 |
878 |
879 | 0
880 |
881 |
882 | 0
883 | 0
884 |
885 | 0
886 |
887 | 1
888 |
889 |
890 |
891 | 0
892 | 0
893 |
894 |
895 |
896 |
897 |
898 | It could be increased by using sysctrl utility or modifying file /etc/sysctl.conf.
899 | 0
900 |
901 |
902 | OS
903 |
904 |
905 |
906 |
907 |
908 | -
909 | Maximum number of processes
910 | 7
911 |
912 | 0
913 |
914 | kernel.maxproc
915 | 3600
916 | 7
917 | 365
918 | 0
919 | 3
920 |
921 |
922 | 0
923 |
924 |
925 | 0
926 | 0
927 |
928 | 0
929 |
930 | 1
931 |
932 |
933 |
934 | 0
935 | 0
936 |
937 |
938 |
939 |
940 |
941 | It could be increased by using sysctrl utility or modifying file /etc/sysctl.conf.
942 | 0
943 |
944 |
945 | OS
946 |
947 |
948 |
949 |
950 |
951 | -
952 | Number of logged in users
953 | 7
954 |
955 | 0
956 |
957 | system.users.num
958 | 60
959 | 7
960 | 365
961 | 0
962 | 3
963 |
964 |
965 | 0
966 |
967 |
968 | 0
969 | 0
970 |
971 | 0
972 |
973 | 1
974 |
975 |
976 |
977 | 0
978 | 0
979 |
980 |
981 |
982 |
983 |
984 | Number of users who are currently logged in.
985 | 0
986 |
987 |
988 | OS
989 |
990 |
991 | Security
992 |
993 |
994 |
995 |
996 |
997 | -
998 | Number of processes
999 | 7
1000 |
1001 | 0
1002 |
1003 | proc.num[]
1004 | 60
1005 | 7
1006 | 365
1007 | 0
1008 | 3
1009 |
1010 |
1011 | 0
1012 |
1013 |
1014 | 0
1015 | 0
1016 |
1017 | 0
1018 |
1019 | 1
1020 |
1021 |
1022 |
1023 | 0
1024 | 0
1025 |
1026 |
1027 |
1028 |
1029 |
1030 | Total number of processes in any state.
1031 | 0
1032 |
1033 |
1034 | Processes
1035 |
1036 |
1037 |
1038 |
1039 |
1040 | -
1041 | Number of running processes
1042 | 7
1043 |
1044 | 0
1045 |
1046 | proc.num[,,run]
1047 | 60
1048 | 7
1049 | 365
1050 | 0
1051 | 3
1052 |
1053 |
1054 | 0
1055 |
1056 |
1057 | 0
1058 | 0
1059 |
1060 | 0
1061 |
1062 | 1
1063 |
1064 |
1065 |
1066 | 0
1067 | 0
1068 |
1069 |
1070 |
1071 |
1072 |
1073 | Number of processes in running state.
1074 | 0
1075 |
1076 |
1077 | Processes
1078 |
1079 |
1080 |
1081 |
1082 |
1083 | -
1084 | Processor load (1 min average per core)
1085 | 7
1086 |
1087 | 0
1088 |
1089 | system.cpu.load[percpu,avg1]
1090 | 60
1091 | 7
1092 | 365
1093 | 0
1094 | 0
1095 |
1096 |
1097 | 0
1098 |
1099 |
1100 | 0
1101 | 0
1102 |
1103 | 0
1104 |
1105 | 1
1106 |
1107 |
1108 |
1109 | 0
1110 | 0
1111 |
1112 |
1113 |
1114 |
1115 |
1116 | The processor load is calculated as system CPU load divided by number of CPU cores.
1117 | 0
1118 |
1119 |
1120 | CPU
1121 |
1122 |
1123 | Performance
1124 |
1125 |
1126 |
1127 |
1128 |
1129 | -
1130 | Processor load (5 min average per core)
1131 | 7
1132 |
1133 | 0
1134 |
1135 | system.cpu.load[percpu,avg5]
1136 | 60
1137 | 7
1138 | 365
1139 | 0
1140 | 0
1141 |
1142 |
1143 | 0
1144 |
1145 |
1146 | 0
1147 | 0
1148 |
1149 | 0
1150 |
1151 | 1
1152 |
1153 |
1154 |
1155 | 0
1156 | 0
1157 |
1158 |
1159 |
1160 |
1161 |
1162 | The processor load is calculated as system CPU load divided by number of CPU cores.
1163 | 0
1164 |
1165 |
1166 | CPU
1167 |
1168 |
1169 | Performance
1170 |
1171 |
1172 |
1173 |
1174 |
1175 | -
1176 | Processor load (15 min average per core)
1177 | 7
1178 |
1179 | 0
1180 |
1181 | system.cpu.load[percpu,avg15]
1182 | 60
1183 | 7
1184 | 365
1185 | 0
1186 | 0
1187 |
1188 |
1189 | 0
1190 |
1191 |
1192 | 0
1193 | 0
1194 |
1195 | 0
1196 |
1197 | 1
1198 |
1199 |
1200 |
1201 | 0
1202 | 0
1203 |
1204 |
1205 |
1206 |
1207 |
1208 | The processor load is calculated as system CPU load divided by number of CPU cores.
1209 | 0
1210 |
1211 |
1212 | CPU
1213 |
1214 |
1215 | Performance
1216 |
1217 |
1218 |
1219 |
1220 |
1221 | -
1222 | System information
1223 | 7
1224 |
1225 | 0
1226 |
1227 | system.uname
1228 | 3600
1229 | 7
1230 | 365
1231 | 0
1232 | 1
1233 |
1234 |
1235 | 0
1236 |
1237 |
1238 | 0
1239 | 0
1240 |
1241 | 0
1242 |
1243 | 1
1244 |
1245 |
1246 |
1247 | 0
1248 | 0
1249 |
1250 |
1251 |
1252 |
1253 |
1254 | The information as normally returned by 'uname -a'.
1255 | 5
1256 |
1257 |
1258 | General
1259 |
1260 |
1261 | OS
1262 |
1263 |
1264 |
1265 |
1266 |
1267 | -
1268 | System uptime
1269 | 7
1270 |
1271 | 0
1272 |
1273 | system.uptime
1274 | 600
1275 | 7
1276 | 365
1277 | 0
1278 | 3
1279 |
1280 | uptime
1281 | 0
1282 |
1283 |
1284 | 0
1285 | 0
1286 |
1287 | 0
1288 |
1289 | 1
1290 |
1291 |
1292 |
1293 | 0
1294 | 0
1295 |
1296 |
1297 |
1298 |
1299 |
1300 |
1301 | 0
1302 |
1303 |
1304 | General
1305 |
1306 |
1307 | OS
1308 |
1309 |
1310 |
1311 |
1312 |
1313 | -
1314 | Total memory
1315 | 7
1316 |
1317 | 0
1318 |
1319 | vm.memory.size[total]
1320 | 3600
1321 | 7
1322 | 365
1323 | 0
1324 | 3
1325 |
1326 | B
1327 | 0
1328 |
1329 |
1330 | 0
1331 | 0
1332 |
1333 | 0
1334 |
1335 | 1
1336 |
1337 |
1338 |
1339 | 0
1340 | 0
1341 |
1342 |
1343 |
1344 |
1345 |
1346 |
1347 | 0
1348 |
1349 |
1350 | Memory
1351 |
1352 |
1353 |
1354 |
1355 |
1356 | -
1357 | Total swap space
1358 | 7
1359 |
1360 | 0
1361 |
1362 | system.swap.size[,total]
1363 | 3600
1364 | 7
1365 | 365
1366 | 0
1367 | 3
1368 |
1369 | B
1370 | 0
1371 |
1372 |
1373 | 0
1374 | 0
1375 |
1376 | 0
1377 |
1378 | 1
1379 |
1380 |
1381 |
1382 | 0
1383 | 0
1384 |
1385 |
1386 |
1387 |
1388 |
1389 |
1390 | 0
1391 |
1392 |
1393 | Memory
1394 |
1395 |
1396 |
1397 |
1398 |
1399 |
1400 |
1401 |
1402 | Mounted filesystem discovery
1403 | 0
1404 |
1405 |
1406 | vfs.fs.discovery
1407 | 3600
1408 | 0
1409 |
1410 |
1411 |
1412 | 0
1413 | 0
1414 |
1415 | 0
1416 |
1417 |
1418 |
1419 |
1420 | 0
1421 |
1422 |
1423 |
1424 |
1425 |
1426 | {#FSTYPE}:@File systems for discovery
1427 | 30
1428 | Discovery of file systems of different types as defined in global regular expression "File systems for discovery".
1429 |
1430 |
1431 | Free disk space on $1
1432 | 0
1433 |
1434 | 0
1435 |
1436 | vfs.fs.size[{#FSNAME},free]
1437 | 60
1438 | 7
1439 | 365
1440 | 0
1441 | 3
1442 |
1443 | B
1444 | 0
1445 |
1446 |
1447 | 0
1448 | 0
1449 |
1450 | 0
1451 |
1452 | 1
1453 |
1454 |
1455 |
1456 | 0
1457 | 0
1458 |
1459 |
1460 |
1461 |
1462 |
1463 |
1464 | 0
1465 |
1466 |
1467 | Filesystems
1468 |
1469 |
1470 |
1471 |
1472 |
1473 |
1474 | Free disk space on $1 (percentage)
1475 | 0
1476 |
1477 | 0
1478 |
1479 | vfs.fs.size[{#FSNAME},pfree]
1480 | 60
1481 | 7
1482 | 365
1483 | 0
1484 | 0
1485 |
1486 | %
1487 | 0
1488 |
1489 |
1490 | 0
1491 | 0
1492 |
1493 | 0
1494 |
1495 | 1
1496 |
1497 |
1498 |
1499 | 0
1500 | 0
1501 |
1502 |
1503 |
1504 |
1505 |
1506 |
1507 | 0
1508 |
1509 |
1510 | Filesystems
1511 |
1512 |
1513 |
1514 |
1515 |
1516 |
1517 | Free inodes on $1 (percentage)
1518 | 0
1519 |
1520 | 0
1521 |
1522 | vfs.fs.inode[{#FSNAME},pfree]
1523 | 60
1524 | 7
1525 | 365
1526 | 0
1527 | 0
1528 |
1529 | %
1530 | 0
1531 |
1532 |
1533 | 0
1534 | 0
1535 |
1536 | 0
1537 |
1538 | 1
1539 |
1540 |
1541 |
1542 | 0
1543 | 0
1544 |
1545 |
1546 |
1547 |
1548 |
1549 |
1550 | 0
1551 |
1552 |
1553 | Filesystems
1554 |
1555 |
1556 |
1557 |
1558 |
1559 |
1560 | Total disk space on $1
1561 | 0
1562 |
1563 | 0
1564 |
1565 | vfs.fs.size[{#FSNAME},total]
1566 | 3600
1567 | 7
1568 | 365
1569 | 0
1570 | 3
1571 |
1572 | B
1573 | 0
1574 |
1575 |
1576 | 0
1577 | 0
1578 |
1579 | 0
1580 |
1581 | 1
1582 |
1583 |
1584 |
1585 | 0
1586 | 0
1587 |
1588 |
1589 |
1590 |
1591 |
1592 |
1593 | 0
1594 |
1595 |
1596 | Filesystems
1597 |
1598 |
1599 |
1600 |
1601 |
1602 |
1603 | Used disk space on $1
1604 | 0
1605 |
1606 | 0
1607 |
1608 | vfs.fs.size[{#FSNAME},used]
1609 | 60
1610 | 7
1611 | 365
1612 | 0
1613 | 3
1614 |
1615 | B
1616 | 0
1617 |
1618 |
1619 | 0
1620 | 0
1621 |
1622 | 0
1623 |
1624 | 1
1625 |
1626 |
1627 |
1628 | 0
1629 | 0
1630 |
1631 |
1632 |
1633 |
1634 |
1635 |
1636 | 0
1637 |
1638 |
1639 | Filesystems
1640 |
1641 |
1642 |
1643 |
1644 |
1645 |
1646 |
1647 |
1648 | {Template OpenStack Node:vfs.fs.size[{#FSNAME},pfree].last(0)}<20
1649 | Free disk space is less than 20% on volume {#FSNAME}
1650 |
1651 | 0
1652 | 2
1653 |
1654 | 0
1655 |
1656 |
1657 | {Template OpenStack Node:vfs.fs.inode[{#FSNAME},pfree].last(0)}<20
1658 | Free inodes is less than 20% on volume {#FSNAME}
1659 |
1660 | 0
1661 | 2
1662 |
1663 | 0
1664 |
1665 |
1666 |
1667 |
1668 | Disk space usage {#FSNAME}
1669 | 600
1670 | 340
1671 | 0.0000
1672 | 100.0000
1673 | 0
1674 | 0
1675 | 2
1676 | 1
1677 | 1
1678 | 0.0000
1679 | 0.0000
1680 | 0
1681 | 0
1682 | 0
1683 | 0
1684 |
1685 |
1686 | 0
1687 | 0
1688 | C80000
1689 | 0
1690 | 2
1691 | 2
1692 | -
1693 | Template OpenStack Node
1694 | vfs.fs.size[{#FSNAME},total]
1695 |
1696 |
1697 |
1698 | 1
1699 | 0
1700 | 00C800
1701 | 0
1702 | 2
1703 | 0
1704 | -
1705 | Template OpenStack Node
1706 | vfs.fs.size[{#FSNAME},free]
1707 |
1708 |
1709 |
1710 |
1711 |
1712 |
1713 |
1714 |
1715 | Network interface discovery
1716 | 0
1717 |
1718 |
1719 | net.if.discovery
1720 | 3600
1721 | 0
1722 |
1723 |
1724 |
1725 | 0
1726 | 0
1727 |
1728 | 0
1729 |
1730 |
1731 |
1732 |
1733 | 0
1734 |
1735 |
1736 |
1737 |
1738 |
1739 | {#IFNAME}:@Network interfaces for discovery
1740 | 30
1741 | Discovery of network interfaces as defined in global regular expression "Network interfaces for discovery".
1742 |
1743 |
1744 | Incoming network traffic on $1
1745 | 0
1746 |
1747 | 1
1748 |
1749 | net.if.in[{#IFNAME}]
1750 | 60
1751 | 7
1752 | 365
1753 | 0
1754 | 3
1755 |
1756 | bps
1757 | 1
1758 |
1759 |
1760 | 0
1761 | 0
1762 |
1763 | 0
1764 |
1765 | 8
1766 |
1767 |
1768 |
1769 | 0
1770 | 0
1771 |
1772 |
1773 |
1774 |
1775 |
1776 |
1777 | 0
1778 |
1779 |
1780 | Network interfaces
1781 |
1782 |
1783 |
1784 |
1785 |
1786 |
1787 | Outgoing network traffic on $1
1788 | 0
1789 |
1790 | 1
1791 |
1792 | net.if.out[{#IFNAME}]
1793 | 60
1794 | 7
1795 | 365
1796 | 0
1797 | 3
1798 |
1799 | bps
1800 | 1
1801 |
1802 |
1803 | 0
1804 | 0
1805 |
1806 | 0
1807 |
1808 | 8
1809 |
1810 |
1811 |
1812 | 0
1813 | 0
1814 |
1815 |
1816 |
1817 |
1818 |
1819 |
1820 | 0
1821 |
1822 |
1823 | Network interfaces
1824 |
1825 |
1826 |
1827 |
1828 |
1829 |
1830 |
1831 |
1832 |
1833 | Network traffic on {#IFNAME}
1834 | 900
1835 | 200
1836 | 0.0000
1837 | 100.0000
1838 | 1
1839 | 1
1840 | 0
1841 | 1
1842 | 0
1843 | 0.0000
1844 | 0.0000
1845 | 1
1846 | 0
1847 | 0
1848 | 0
1849 |
1850 |
1851 | 0
1852 | 5
1853 | 00AA00
1854 | 0
1855 | 2
1856 | 0
1857 | -
1858 | Template OpenStack Node
1859 | net.if.in[{#IFNAME}]
1860 |
1861 |
1862 |
1863 | 1
1864 | 5
1865 | 3333FF
1866 | 0
1867 | 2
1868 | 0
1869 | -
1870 | Template OpenStack Node
1871 | net.if.out[{#IFNAME}]
1872 |
1873 |
1874 |
1875 |
1876 |
1877 |
1878 |
1879 |
1880 |
1881 |
1882 |
1883 |
1884 | System performance
1885 | 2
1886 | 3
1887 |
1888 |
1889 | 0
1890 | 500
1891 | 120
1892 | 0
1893 | 0
1894 | 1
1895 | 1
1896 | 0
1897 | 1
1898 | 0
1899 |
1900 |
1901 | 0
1902 | 0
1903 |
1904 | CPU load
1905 | Template OpenStack Node
1906 |
1907 |
1908 |
1909 |
1910 | 0
1911 | 500
1912 | 148
1913 | 1
1914 | 0
1915 | 1
1916 | 1
1917 | 0
1918 | 1
1919 | 0
1920 |
1921 |
1922 | 0
1923 | 0
1924 |
1925 | CPU utilization
1926 | Template OpenStack Node
1927 |
1928 |
1929 |
1930 |
1931 | 0
1932 | 500
1933 | 100
1934 | 0
1935 | 1
1936 | 1
1937 | 1
1938 | 0
1939 | 0
1940 | 0
1941 |
1942 |
1943 | 0
1944 | 0
1945 |
1946 | Memory usage
1947 | Template OpenStack Node
1948 |
1949 |
1950 |
1951 |
1952 | 0
1953 | 500
1954 | 300
1955 | 1
1956 | 1
1957 | 1
1958 | 1
1959 | 0
1960 | 0
1961 | 0
1962 |
1963 |
1964 | 0
1965 | 0
1966 |
1967 | Swap usage
1968 | Template OpenStack Node
1969 |
1970 |
1971 |
1972 |
1973 | 1
1974 | 500
1975 | 100
1976 | 0
1977 | 2
1978 | 1
1979 | 1
1980 | 0
1981 | 0
1982 | 0
1983 |
1984 |
1985 | 0
1986 | 0
1987 |
1988 | proc.num[]
1989 | Template OpenStack Node
1990 |
1991 |
1992 |
1993 |
1994 | 1
1995 | 500
1996 | 100
1997 | 1
1998 | 2
1999 | 1
2000 | 1
2001 | 0
2002 | 0
2003 | 0
2004 |
2005 |
2006 | 0
2007 | 0
2008 |
2009 | proc.num[,,run]
2010 | Template OpenStack Node
2011 |
2012 |
2013 |
2014 |
2015 |
2016 |
2017 |
2018 |
2019 |
2020 |
2021 | {Template OpenStack Node:vfs.file.cksum[/etc/passwd].diff(0)}>0
2022 | /etc/passwd has been changed on {HOST.NAME}
2023 |
2024 | 0
2025 | 2
2026 |
2027 | 0
2028 |
2029 |
2030 |
2031 | {Template OpenStack Node:kernel.maxfiles.last(0)}<1024
2032 | Configured max number of opened files is too low on {HOST.NAME}
2033 |
2034 | 0
2035 | 1
2036 |
2037 | 0
2038 |
2039 |
2040 |
2041 | {Template OpenStack Node:kernel.maxproc.last(0)}<256
2042 | Configured max number of processes is too low on {HOST.NAME}
2043 |
2044 | 0
2045 | 1
2046 |
2047 | 0
2048 |
2049 |
2050 |
2051 | {Template OpenStack Node:system.cpu.util[,iowait].avg(5m)}>20
2052 | Disk I/O is overloaded on {HOST.NAME}
2053 |
2054 | 0
2055 | 2
2056 | OS spends significant time waiting for I/O (input/output) operations. It could be indicator of performance issues with storage system.
2057 | 0
2058 |
2059 |
2060 |
2061 | {Template OpenStack Node:system.uname.diff(0)}>0
2062 | Host information was changed on {HOST.NAME}
2063 |
2064 | 0
2065 | 1
2066 |
2067 | 0
2068 |
2069 |
2070 |
2071 | {Template OpenStack Node:system.hostname.diff(0)}>0
2072 | Hostname was changed on {HOST.NAME}
2073 |
2074 | 0
2075 | 1
2076 |
2077 | 0
2078 |
2079 |
2080 |
2081 | {Template OpenStack Node:vm.memory.size[available].last(0)}<20M
2082 | Lack of available memory on server {HOST.NAME}
2083 |
2084 | 0
2085 | 3
2086 |
2087 | 0
2088 |
2089 |
2090 |
2091 | {Template OpenStack Node:system.swap.size[,pfree].last(0)}<50
2092 | Lack of free swap space on {HOST.NAME}
2093 |
2094 | 0
2095 | 2
2096 | It probably means that the systems requires more physical memory.
2097 | 0
2098 |
2099 |
2100 |
2101 | {Template OpenStack Node:system.cpu.load[percpu,avg1].avg(5m)}>5
2102 | Processor load is too high on {HOST.NAME}
2103 |
2104 | 0
2105 | 2
2106 |
2107 | 0
2108 |
2109 |
2110 |
2111 | {Template OpenStack Node:proc.num[].avg(5m)}>600
2112 | Too many processes on {HOST.NAME}
2113 |
2114 | 0
2115 | 2
2116 |
2117 | 0
2118 |
2119 |
2120 |
2121 | {Template OpenStack Node:proc.num[,,run].avg(5m)}>30
2122 | Too many processes running on {HOST.NAME}
2123 |
2124 | 0
2125 | 2
2126 |
2127 | 0
2128 |
2129 |
2130 |
2131 | {Template OpenStack Node:agent.ping.nodata(5m)}=1
2132 | Zabbix agent on {HOST.NAME} is unreachable for 5 minutes
2133 |
2134 | 0
2135 | 4
2136 |
2137 | 0
2138 |
2139 |
2140 |
2141 | {Template OpenStack Node:system.uptime.change(0)}<0
2142 | {HOST.NAME} has just been restarted
2143 |
2144 | 0
2145 | 1
2146 |
2147 | 0
2148 |
2149 |
2150 |
2151 |
2152 |
2153 | CPU jumps
2154 | 900
2155 | 200
2156 | 0.0000
2157 | 100.0000
2158 | 1
2159 | 1
2160 | 0
2161 | 1
2162 | 0
2163 | 0.0000
2164 | 0.0000
2165 | 0
2166 | 0
2167 | 0
2168 | 0
2169 |
2170 |
2171 | 1
2172 | 0
2173 | 000099
2174 | 0
2175 | 2
2176 | 0
2177 | -
2178 | Template OpenStack Node
2179 | system.cpu.intr
2180 |
2181 |
2182 |
2183 | 0
2184 | 0
2185 | 009900
2186 | 0
2187 | 2
2188 | 0
2189 | -
2190 | Template OpenStack Node
2191 | system.cpu.switches
2192 |
2193 |
2194 |
2195 |
2196 |
2197 | CPU load
2198 | 900
2199 | 200
2200 | 0.0000
2201 | 100.0000
2202 | 1
2203 | 1
2204 | 0
2205 | 1
2206 | 0
2207 | 0.0000
2208 | 0.0000
2209 | 1
2210 | 0
2211 | 0
2212 | 0
2213 |
2214 |
2215 | 0
2216 | 0
2217 | 009900
2218 | 0
2219 | 2
2220 | 0
2221 | -
2222 | Template OpenStack Node
2223 | system.cpu.load[percpu,avg1]
2224 |
2225 |
2226 |
2227 | 1
2228 | 0
2229 | 000099
2230 | 0
2231 | 2
2232 | 0
2233 | -
2234 | Template OpenStack Node
2235 | system.cpu.load[percpu,avg5]
2236 |
2237 |
2238 |
2239 | 2
2240 | 0
2241 | 990000
2242 | 0
2243 | 2
2244 | 0
2245 | -
2246 | Template OpenStack Node
2247 | system.cpu.load[percpu,avg15]
2248 |
2249 |
2250 |
2251 |
2252 |
2253 | CPU utilization
2254 | 900
2255 | 200
2256 | 0.0000
2257 | 100.0000
2258 | 1
2259 | 0
2260 | 1
2261 | 1
2262 | 0
2263 | 0.0000
2264 | 0.0000
2265 | 1
2266 | 1
2267 | 0
2268 | 0
2269 |
2270 |
2271 | 6
2272 | 1
2273 | 000099
2274 | 0
2275 | 2
2276 | 0
2277 | -
2278 | Template OpenStack Node
2279 | system.cpu.util[,user]
2280 |
2281 |
2282 |
2283 | 4
2284 | 1
2285 | 999900
2286 | 0
2287 | 2
2288 | 0
2289 | -
2290 | Template OpenStack Node
2291 | system.cpu.util[,iowait]
2292 |
2293 |
2294 |
2295 | 2
2296 | 1
2297 | 009999
2298 | 0
2299 | 2
2300 | 0
2301 | -
2302 | Template OpenStack Node
2303 | system.cpu.util[,interrupt]
2304 |
2305 |
2306 |
2307 | 7
2308 | 1
2309 | 009900
2310 | 0
2311 | 2
2312 | 0
2313 | -
2314 | Template OpenStack Node
2315 | system.cpu.util[,idle]
2316 |
2317 |
2318 |
2319 | 5
2320 | 1
2321 | 990000
2322 | 0
2323 | 2
2324 | 0
2325 | -
2326 | Template OpenStack Node
2327 | system.cpu.util[,system]
2328 |
2329 |
2330 |
2331 | 1
2332 | 1
2333 | 55FF55
2334 | 0
2335 | 2
2336 | 0
2337 | -
2338 | Template OpenStack Node
2339 | system.cpu.util[,softirq]
2340 |
2341 |
2342 |
2343 | 3
2344 | 1
2345 | 990099
2346 | 0
2347 | 2
2348 | 0
2349 | -
2350 | Template OpenStack Node
2351 | system.cpu.util[,nice]
2352 |
2353 |
2354 |
2355 | 0
2356 | 1
2357 | FF5555
2358 | 0
2359 | 2
2360 | 0
2361 | -
2362 | Template OpenStack Node
2363 | system.cpu.util[,steal]
2364 |
2365 |
2366 |
2367 |
2368 |
2369 | Memory usage
2370 | 900
2371 | 200
2372 | 0.0000
2373 | 100.0000
2374 | 1
2375 | 1
2376 | 0
2377 | 1
2378 | 0
2379 | 0.0000
2380 | 0.0000
2381 | 1
2382 | 2
2383 | 0
2384 |
2385 | Template OpenStack Node
2386 | vm.memory.size[total]
2387 |
2388 |
2389 |
2390 | 0
2391 | 5
2392 | 00C800
2393 | 0
2394 | 2
2395 | 0
2396 | -
2397 | Template OpenStack Node
2398 | vm.memory.size[available]
2399 |
2400 |
2401 |
2402 |
2403 |
2404 | Swap usage
2405 | 600
2406 | 340
2407 | 0.0000
2408 | 100.0000
2409 | 0
2410 | 0
2411 | 2
2412 | 1
2413 | 1
2414 | 0.0000
2415 | 0.0000
2416 | 0
2417 | 0
2418 | 0
2419 | 0
2420 |
2421 |
2422 | 1
2423 | 0
2424 | 00AA00
2425 | 0
2426 | 2
2427 | 0
2428 | -
2429 | Template OpenStack Node
2430 | system.swap.size[,free]
2431 |
2432 |
2433 |
2434 | 0
2435 | 0
2436 | AA0000
2437 | 0
2438 | 2
2439 | 2
2440 | -
2441 | Template OpenStack Node
2442 | system.swap.size[,total]
2443 |
2444 |
2445 |
2446 |
2447 |
2448 |
2449 |
--------------------------------------------------------------------------------
/templates/Template_OpenStack_v3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 | 2015-06-25T10:43:58Z
5 |
6 |
7 | Discovered hosts
8 |
9 |
10 | Templates
11 |
12 |
13 |
14 |
15 | Template OpenStack Identity V3
16 | Template OpenStack Identity V3
17 |
18 |
19 | Templates
20 |
21 |
22 |
23 |
24 | OpenStack Compute
25 |
26 |
27 | Openstack Endpoints
28 |
29 |
30 |
31 |
32 |
33 | OpenStack Compute Hypervisor
34 | 10
35 |
36 |
37 | openstack-discovery["hypervisors_v3","{$OS_AUTHURL}","{$OS_TENANT}","{$OS_USER}","{$OS_PASSWORD}","{$OS_USER_DOMAIN_NAME}","{$OS_PROJECT_DOMAIN_NAME}"]
38 | 3600
39 | 0
40 |
41 |
42 |
43 | 0
44 | 0
45 |
46 | 0
47 |
48 |
49 |
50 |
51 | 0
52 |
53 |
54 |
55 |
56 |
57 | :
58 | 7
59 |
60 |
61 |
62 |
63 |
64 |
65 | {#OS_HYPERVISOR_HOSTNAME}
66 | {#OS_HYPERVISOR_HOSTNAME}
67 | 0
68 |
69 |
70 |
71 | Discovered hosts
72 |
73 |
74 |
75 |
76 |
77 | OpenStack {#OS_HYPERVISOR_TYPE} Hypervisors
78 |
79 |
80 |
81 |
82 | Template OpenStack Node
83 |
84 |
85 |
86 |
87 |
88 |
89 | OpenStack Endpoints
90 | 10
91 |
92 |
93 | openstack-discovery["endpoints_v3","{$OS_AUTHURL}","{$OS_TENANT}","{$OS_USER}","{$OS_PASSWORD}","{$OS_USER_DOMAIN_NAME}","{$OS_PROJECT_DOMAIN_NAME}"]
94 | 3600
95 | 0
96 |
97 |
98 |
99 | 0
100 | 0
101 |
102 | 0
103 |
104 |
105 |
106 |
107 | 0
108 |
109 |
110 |
111 |
112 |
113 | :
114 | 30
115 |
116 |
117 |
118 | Response time of endpoint {#OS_SERVICENAME} on host {#OS_SERVICEHOST}
119 | 3
120 |
121 | 0
122 |
123 | net.tcp.service.perf[http,{#OS_SERVICEHOST},{#OS_SERVICEPORT}]
124 | 60
125 | 90
126 | 365
127 | 0
128 | 0
129 |
130 |
131 | 0
132 |
133 |
134 | 0
135 | 0
136 |
137 | 0
138 |
139 | 1
140 |
141 |
142 |
143 | 0
144 | 0
145 |
146 |
147 |
148 |
149 |
150 |
151 | 0
152 |
153 |
154 | Openstack Endpoints
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 | {Template OpenStack Identity V3:net.tcp.service.perf[http,{#OS_SERVICEHOST},{#OS_SERVICEPORT}].sum(#2)}=0
164 | Endpoint of service {#OS_SERVICENAME} on host {#OS_SERVICEHOST} is unavailable
165 |
166 | 0
167 | 3
168 | Trigger an event if we couldn't get proper connections over last 2 checks.
169 | 0
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 | {$OS_AUTHURL}
179 | http://127.0.0.1:5000/v2.0
180 |
181 |
182 | {$OS_PASSWORD}
183 | admin
184 |
185 |
186 | {$OS_TENANT}
187 | admin
188 |
189 |
190 | {$OS_USER}
191 | admin
192 |
193 |
194 | {$OS_USER_DOMAIN_NAME}
195 | Default
196 |
197 |
198 | {$OS_PROJECT_DOMAIN_NAME}
199 | Default
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
--------------------------------------------------------------------------------