Skip to content

Commit dc788a7

Browse files
authored
Rework README.md (#88)
1 parent fcf18ed commit dc788a7

File tree

1 file changed

+48
-239
lines changed

1 file changed

+48
-239
lines changed

README.md

Lines changed: 48 additions & 239 deletions
Original file line numberDiff line numberDiff line change
@@ -1,267 +1,76 @@
11
# NETWAYS support collector
22

3-
<!-- NOTE: Update `Readme` const in `main.go` when changing the text here -->
3+
The support collector allows to collect relevant information from servers. The resulting ZIP file can be given to second
4+
to get an insight into the system.
45

5-
The support collector allows our customers to collect relevant information from their servers.
6-
A resulting ZIP file can then be provided to our support team for further inspection.
6+
> **WARNING:** DO NOT transfer the generated file over insecure connections, it contains potential sensitive information!
77
88
If you are a customer, you can contact us at [support@netways.de](mailto:support@netways.de) or
99
[netways.de/en/contact/](https://www.netways.de/en/contact/).
1010

11-
> **WARNING:** DO NOT transfer the generated file over insecure connections or by
12-
email, it contains potential sensitive information!
13-
14-
Inspired by [icinga2-diagnostics](https://github.com/Icinga/icinga2-diagnostics).
11+
Inspired by [NETWAYS/icinga2-diagnostics](https://github.com/Icinga/icinga2-diagnostics).
1512

1613
## Usage
1714

18-
> **WARNING:** Some passwords or secrets are automatically removed, but this no guarantee, so be careful what you share.
15+
> **WARNING:** Some passwords or secrets are automatically removed, but this no guarantee, so be careful what you share!
1916
2017
The `--hide` flag can be used multiple times to hide sensitive data, it supports regular expressions.
2118

2219
```
23-
support-collector --hide "Secret:.*" --hide "Password:.*" --enable base
20+
support-collector --hide "Secret:.*" --hide "Password:.*"
2421
```
2522

2623
By default, we collect all we can find. You can control this by only enabling certain modules, or disabling some.
2724

2825
If you want to see what is collected, add `--verbose`.
2926

30-
```
31-
Usage of support-collector:
32-
-o, --output string Output file for the zip content
33-
--enable strings List of enabled module (default [base,icinga2,icingaweb2,icinga-director,icingadb,elastic,corosync,keepalived,mongodb,mysql,influxdb,postgresql,prometheus,ansible,puppet,grafana,graphite,graylog])
34-
--disable strings List of disabled module
35-
--hide stringArray List of keywords to obfuscate. Can be used multiple times.
36-
--command-timeout duration Timeout for command execution in modules (default 1m0s)
37-
-v, --verbose Enable verbose logging
38-
-V, --version Print version and exit
39-
```
27+
| Short | Long | Description |
28+
|-------|-------------------|------------------------------------------------------------------------------------------------------------------------|
29+
| -o | --output | Output file for the zip content (default: current directory and named like '$HOSTNAME'-netways-support-$TIMESTAMP.zip) |
30+
| | --enable | List of enabled modules (default: all) |
31+
| | --disable | List of disabled modules (default: none) |
32+
| | --hide | List of keywords to obfuscate. Can be used multiple times |
33+
| | --command-timeout | Timeout for command execution in modules (default: 1m0s) |
34+
| -v | --verbose | Enable verbose logging |
35+
| -V | --version | Print version and exit |
4036

4137
## Modules
4238

43-
A brief overview about the modules, you can check the source code under [modules](modules) for what exactly is collected.
44-
45-
Most modules check if the component is installed before trying to collect data.
46-
47-
### Base
48-
49-
Module: `base`
50-
51-
Will collect basic information about your system:
52-
53-
* Kernel and Operating system versions
54-
* CPU, memory, disk and other hardware and vendor information
55-
* Current process and load status
56-
* Status of AppArmor and SELinux
57-
* Repositories
58-
59-
See [modules/base/collector.go](modules/base/collector.go) for details.
60-
61-
### Icinga 2
62-
63-
Module: `icinga2`
64-
65-
* Configuration from `/etc/icinga2`
66-
* Files in PluginDir
67-
* Package information
68-
* Service status
69-
* Config check result
70-
* Log files from `/var/log/icinga2`
71-
* Object list for `Zone` and `Endpoint`
72-
* Variables like `NodeName` and `ZoneName`
73-
74-
See [modules/icinga2/collector.go](modules/icinga2/collector.go) for details.
75-
76-
### Icinga Web 2
77-
78-
Module: `icingaweb2`
79-
80-
* Configuration from `/etc/icingaweb2`
81-
* Package information
82-
* Log files from `/var/log/icingaweb2`
83-
* Version for icingaweb2 and its modules, including Git information
84-
* Installed PHP packages and php-fpm service status
85-
* Installed webserver packages
86-
87-
See [modules/icingaweb2/collector.go](modules/icingaweb2/collector.go) for details.
88-
89-
### IcingaDB
90-
91-
Module: `icingadb`
92-
93-
* Configuration from `/etc/icingadb`, `/etc/icingadb-redis` and `/etc/icinga2/features-enabled/icingadb.conf`
94-
* Service status from `icingadb`, `icingadb-redis` and `icingadb-redis-server`
95-
* Package information
96-
* Journal logs from `icingadb`, `icingadb-redis` and `icingadb-redis-server`
97-
98-
### Icinga Director
99-
100-
Module: `icinga-director`
101-
102-
* Package or Git version information
103-
* Service status
104-
* Health status
105-
106-
See [modules/icingadirector/collector.go](modules/icingadirector/collector.go) for details.
107-
108-
### Corosync
109-
110-
Module: `corosync`
111-
112-
* Version
113-
* Service status from `corosync` and `pacemaker`
114-
* Configuration from corosync
115-
* Logs from corosync and pacemaker
116-
117-
See [modules/corosync/collector.go](modules/corosync/collector.go) for details.
118-
119-
### Elastic Stack
120-
121-
Module: `elastic`
122-
123-
Includes `elasticsearch`, `logstash` and `kibana`.
124-
125-
* Version
126-
* Service status
127-
* Configuration
128-
129-
See [modules/elastic/collector.go](modules/elastic/collector.go) for details.
130-
131-
### Keepalived
132-
133-
Module: `keepalived`
134-
135-
* Version
136-
* Service status from keepalived
137-
* Configuration from keepalived
138-
139-
See [modules/keepalived/collector.go](modules/keepalived/collector.go)
140-
141-
### MongoDB
142-
143-
Module: `mongodb`
144-
145-
* MongoDB version
146-
* Package versions
147-
* Service status
148-
* Configuration from `/etc/mongod.conf`
149-
150-
See [modules/mongodb/collector.go](modules/mongodb/collector.go) for details.
151-
152-
### MySQL
153-
154-
Module: `mysql`
155-
156-
Is looking for standard MySQL or MariaDB installations.
157-
158-
* Mysql version
159-
* Package versions
160-
* Service status
161-
* Configuration files from `/etc/my*` (depending on the known paths)
162-
163-
See [modules/mysql/collector.go](modules/mysql/collector.go) for details.
164-
165-
### PostgreSQL
166-
167-
Module: `postgresql`
168-
169-
* PostgreSQL version
170-
* Package versions
171-
* Service status
172-
* Configuration files from `/etc/postgresql` and `/var/lib/pgsql` (depending on OS)
173-
174-
See [modules/postgresql/collector.go](modules/postgresql/collector.go) for details.
175-
176-
### Prometheus
177-
178-
Module: `prometheus`
179-
180-
Includes `prometheus`, `pushgateway` and `alertmanager`.
181-
182-
* Version
183-
* Service status
184-
* Configuration
185-
186-
See [modules/prometheus/collector.go](modules/prometheus/collector.go) for details.
187-
188-
### Ansible
189-
190-
Module: `ansible`
191-
192-
* Configuration from `/etc/ansible`
193-
* Package versions
194-
195-
See [modules/ansible/collector.go](modules/ansible/collector.go) for details.
196-
197-
### Puppet
198-
199-
Module: `puppet`
200-
201-
* Configuration from `/etc/puppetlabs`
202-
* Package Versions
203-
* Puppet module list
204-
205-
See [modules/puppet/collector.go](modules/puppet/collector.go) for details.
206-
207-
### InfluxDB
208-
209-
Module: `influxdb`
210-
211-
* Configuration file from `/etc/influxdb/config.*`
212-
* Package versions
213-
* Service status
214-
215-
See [modules/influxdb/collector.go](modules/influxdb/collector.go) for details.
216-
217-
### Grafana
218-
219-
Module `grafana`
220-
221-
* Configuration files from`/etc/grafana` and `/usr/share/grafana`
222-
* Package Versions
223-
* Service status
224-
* grafana-cli version
225-
* grafana-cli plugins list
226-
227-
See [modules/grafana/collector.go](modules/grafana/collector.go) for details.
228-
229-
### Graphite
230-
231-
Module: `graphite`
232-
233-
* Configuration from:
234-
* `/opt/graphite/conf`,
235-
* `/opt/graphite/webapp/graphite/local_settings.py`,
236-
* `/etc/carbon`
237-
* `/etc/graphite-api*`
238-
* `/etc/graphite-web*`
239-
* Package versions
240-
* Python and pip version & list
241-
* Process list for `*graphite*` and `*carbon*`
242-
243-
See [modules/graphite/collector.go](modules/graphite/collector.go) for details.
244-
245-
### Graylog
246-
247-
Module `graylog`
248-
249-
* Configuration files from`/etc/graylog`
250-
* Package Versions
251-
* Service status
252-
253-
See [modules/grafana/collector.go](modules/graylog/collector.go) for details.
39+
A brief overview about the modules, you can check the source code under [modules](modules) for what exactly is
40+
collected.
41+
42+
Most modules check if the component is installed before trying to collect data. If the module is not detected, it will
43+
not be collected.
44+
45+
| Module name | Description |
46+
|----------------|----------------------------------------------------------------------------------------------------|
47+
| ansible | Configuration and packages |
48+
| base | Basic information about the system (OS, memory, cpu, processes, etc.) |
49+
| corosync | Configuration, logs, packages and service status |
50+
| elastic | Includes elasticsearch, logstash and kibana. Collects configuration, packages and service statuses |
51+
| grafana | Configuration, plugins, packages and service status |
52+
| graphite | Configuration, python and pip version and list, packages and service statuses |
53+
| graylog | Configuration, packages and service status |
54+
| icinga2 | Configuration, packages, service status, logs, Icinga objects, Icinga variables and plugins |
55+
| icingadb | Includes IcingaDB and Icinga redis Collects configuration, logs, packages and service statuses |
56+
| icingadirector | Packages or git information, Director health status and service status |
57+
| icingaweb2 | Configuration, packages, logs, modules, PHP packages and service status |
58+
| influxdb | Configuration, packages and service status |
59+
| keepalived | Configuration, packages and service status |
60+
| mongodb | Configuration, packages and service status |
61+
| mysql | Configuration, packages and service status |
62+
| postgresql | Configuration, packages and service status |
63+
| prometheus | Configuration, packages and service status |
64+
| puppet | Configuration, module list, packages and service status |
25465

25566
## Supported systems
25667

257-
**Note:** Currently, only Linux is supported by the collector.
258-
259-
Distribution | Supported | Tested | Comment
260-
----------------|-----------|-------------|--------
261-
CentOS / EL | ✅️ | CentOS 7/8 | Should work on all similar enterprise platforms
262-
Debian | ✅ |
263-
Ubuntu | ✅ |
264-
SLES / OpenSUSE | ✅ |
68+
| Distribution | Tested on | Supported |
69+
|-----------------|--------------------------|:-----------:|
70+
| CentOS / EL | CentOS 7/8, RHEL 7/8 ||
71+
| Debian | Debian 10/11 ||
72+
| Ubuntu | Ubuntu 18.04/20.04/22.04 ||
73+
| SLES / OpenSUSE | openSUSE Leap 15.4 ||
26574

26675
## License
26776

@@ -275,4 +84,4 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY
27584
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
27685

27786
You should have received a copy of the GNU General Public License along with this program. If not,
278-
see <https://www.gnu.org/licenses/>.
87+
see <https://www.gnu.org/licenses/>.

0 commit comments

Comments
 (0)