Rework documentation (#13709)

* Rework documentation

* Slightly adjust theme

* wip

* fixes

* Remove unneeded header

* Re-added Acknowledgement.md file

* Added Acknowledgement.md to mkdocs.yml

Co-authored-by: Neil Lathwood <gh+n@laf.io>
This commit is contained in:
Jellyfrog 2022-02-09 00:02:28 +01:00 committed by GitHub
parent ee00f59ce6
commit 8f474dd4d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
163 changed files with 1226 additions and 2451 deletions

View File

@ -26,7 +26,7 @@ jobs:
-
name: Build mkdocs Docker image
run: |
docker build -t mkdocs -f ./doc/Dockerfile ./
docker build -t mkdocs - < doc/Dockerfile
-
name: Build docs
run: |

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/API" />

View File

@ -1,6 +1,3 @@
source: API/ARP.md
path: blob/master/doc/
### `list_arp`
Retrieve a specific ARP entry or all ARP entries for a device

View File

@ -1,6 +1,3 @@
source: API/Alerts.md
path: blob/master/doc/
### `get_alert`
Get details of an alert

View File

@ -1,6 +1,3 @@
source: API/Bills.md
path: blob/master/doc/
### `list_bills`
Retrieve the list of bills currently in the system.

View File

@ -1,6 +1,3 @@
source: API/DeviceGroups.md
path: blob/master/doc/
### `get_devicegroups`
List all device groups.

View File

@ -1,6 +1,3 @@
source: API/Devices.md
path: blob/master/doc/
### `del_device`
Delete a given device.

View File

@ -1,6 +1,3 @@
source: API/Inventory.md
path: blob/master/doc/
### `get_inventory`
Retrieve the inventory for a device. If you call this without any

View File

@ -1,6 +1,3 @@
source: API/Locations.md
path: blob/master/doc/
### `add_location`
Add a new location

View File

@ -1,6 +1,3 @@
source: API/Logs.md
path: blob/master/doc/
All the `list_*logs` calls are aliased to `list_logs`.
Retrieve all logs or logs for a specific device.

View File

@ -1,6 +1,3 @@
source: API/PortGroups.md
path: blob/master/doc/
### `get_graph_by_portgroup`
Get the graph based on the group type.

View File

@ -1,6 +1,3 @@
source: API/Port_Groups.md
path: blob/master/doc/
### `get_port_groups`
List all port groups.

View File

@ -1,6 +1,3 @@
source: API/Devices.md
path: blob/master/doc/
### `get_all_ports`
Get info for all ports on all devices. Strongly recommend that you use

View File

@ -1,6 +1,3 @@
source: API/Routing.md
path: blob/master/doc/
### `list_bgp`
List the current BGP sessions.

View File

@ -1,6 +1,3 @@
source: API/Services.md
path: blob/master/doc/
### `list_services`
Retrieve all services

View File

@ -1,6 +1,3 @@
source: API/Switching.md
path: blob/master/doc/
### `list_vlans`
Get a list of all VLANs.

View File

@ -1,6 +1,3 @@
source: API/System.md
path: blob/master/doc/
### `system`
Display Librenms instance information.

View File

@ -1,6 +1,3 @@
source: API/index.md
path: blob/master/doc/
## Versioning
Versioning an API is a minefield which saw us looking at numerous

View File

@ -1,6 +1,3 @@
source: Alerting/Creating-Transport.md
path: blob/master/doc/
# Creating a new Transport
## File location
@ -23,7 +20,7 @@ you want your alert to do.
`configTemplate()` - This is used to define the form that will accept
the transport config in the webui and then what data should be
validated and how. Validation is done using [Laravel validation](https://laravel.com/docs/5.7/validation)
validated and how. Validation is done using [Laravel validation](https://laravel.com/docs/validation)
The following function is __not__ required for new Transports and is
for legacy reasons only. `deliverAlertOld()`.

View File

@ -1,6 +1,3 @@
source: Alerting/Device-Dependencies.md
path: blob/master/doc/
# Device Dependencies
It is possible to set one or more parents for a device. The aim for

View File

@ -1,6 +1,3 @@
source: Alerting/Entities.md
path: blob/master/doc/
# Entities
Entities as described earlier are based on the table and column names

View File

@ -1,49 +0,0 @@
source: Alerting/Introduction.md
path: blob/master/doc/
# Introduction
To get started, you first need some alert rules which will react to
changes with your devices before raising an alert.
[Creating alert rules](Rules.md)
After that you also need to tell LibreNMS how to notify you when an
alert is raised, this is done using `Alert Transports`.
[Configuring alert transports](Transports.md)
The next step is not strictly required but most people find it
useful. Creating custom alert templates will help you get the benefit
out of the alert system in general. Whilst we include a default
template, it is limited in the data that you will receive in the alerts.
[Configuring alert templates](Templates.md)
## Managing alerts
When an alert has triggered you will see these in the Alerts ->
Notifications page within the Web UI.
This list has a couple of options available to it and we'll explain
what these are here.
### ACK
This column provides you visibility on the status of the alert:
![ack alert](img/ack.png) This alert is currently active and sending
alerts. Click this icon to acknowledge the alert.
![unack alert](img/unack.png) This alert is currently acknowledged
until the alert clears. Click this icon to un-acknowledge the alert.
![unack alert until fault worsens](img/nunack.png) This alert is
currently acknowledged until the alert worsens or gets
better, at which stage it will be automatically unacknowledged and
alerts will resume. Click this icon to un-acknowledge the alert.
### Notes
![alert notes](img/notes.png) This column will allow you access to the
acknowledge/unacknowledge notes for this alert.

View File

@ -1,6 +1,3 @@
source: Alerting/Macros.md
path: blob/master/doc/
# Macros
Macros are shorthands to either portion of rules or pure SQL enhanced with placeholders.

View File

@ -1,275 +0,0 @@
source: Alerting/Templates.md
path: blob/master/doc/
# Templates
Templates can be assigned to a single or a group of rules and can contain any kind of text. There is also a default template which is used for any rule that isn't associated with a template. This template can be found under `Alert Templates` page and can be edited. It also has an option revert it back to its default content.
The template-parser understands `if` and `foreach` controls and replaces certain placeholders with information gathered about the alert.
## Syntax
Controls:
- if-else (Else can be omitted): `{if %placeholder == value}Some Text{else}Other Text{/if}`
- foreach-loop: `{foreach %faults}Key: %key<br/>Value: %value{/foreach}`
Placeholders:
Placeholders are special variables that if used within the template will be replaced with the relevant data, I.e:
`The device %hostname has been up for %uptime seconds` would result in the following `The device localhost has been up for 30344 seconds`.
- Device ID: `%device_id`
- Hostname of the Device: `%hostname`
- sysName of the Device: `%sysName`
- sysDescr of the Device: `%sysDescr`
- hardware of the Device: `%hardware`
- Software version of the Device: `%version`
- location of the Device: `%location`
- uptime of the Device (in seconds): `%uptime`
- short uptime of the Device (28d 22h 30m 7s): `%uptime_short`
- long uptime of the Device (28 days, 22h 30m 7s): `%uptime_long`
- description (purpose db field) of the Device: `%description`
- notes of the Device: `%notes`
- notes of the alert: `%alert_notes`
- ping timestamp (if icmp enabled): `%ping_timestamp`
- ping loss (if icmp enabled): `%ping_loss`
- ping min (if icmp enabled): `%ping_min`
- ping max (if icmp enabled): `%ping_max`
- ping avg (if icmp enabled): `%ping_avg`
- Title for the Alert: `%title`
- Time Elapsed, Only available on recovery (`%state == 0`): `%elapsed`
- Alert-ID: `%id`
- Unique-ID: `%uid`
- Faults, Only available on alert (`%state != 0`), must be iterated in a foreach (`{foreach %faults}`). Holds all available information about the Fault, accessible in the format `%value.Column`, for example: `%value.ifDescr`. Special field `%value.string` has most Identification-information (IDs, Names, Descrs) as single string, this is the equivalent of the default used.
- State: `%state`
- Severity: `%severity`
- Rule: `%rule`
- Rule-Name: `%name`
- Timestamp: `%timestamp`
- Transport name: `%transport`
- Contacts, must be iterated in a foreach, `%key` holds email and `%value` holds name: `%contacts`
Placeholders can be used within the subjects for templates as well although %faults is most likely going to be worthless.
> NOTE: Placeholder names which are contained within another need to be ordered correctly. As an example:
```text
Limit: %value.sensor_limit / %value.sensor_limit_low
```
Should be done as:
```text
Limit: %value.sensor_limit_low / %value.sensor_limit
```
The Default Template is a 'one-size-fit-all'. We highly recommend defining your own templates for your rules to include more specific information.
## Examples
Default Template:
```text
%title
Severity: %severity
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp
Unique-ID: %uid
Rule: {if %name}%name{else}%rule{/if}
{if %faults}Faults:
{foreach %faults} #%key: %value.string{/foreach}{/if}
Alert sent to: {foreach %contacts}%value <%key> {/foreach}
```
Ports Utilization Template:
```text
%title
Device Name: %hostname
Severity: %severity
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp
Rule: {if %name}%name{else}%rule{/if}
{foreach %faults}
Physical Interface: %value.ifDescr
Interface Description: %value.ifAlias
Interface Speed: {calc (%value.ifSpeed/1000000000)} Gbs
Inbound Utilization: {calc ((%value.ifInOctets_rate*8)/%value.ifSpeed)*100}%
Outbound Utilization: {calc ((%value.ifOutOctets_rate*8)/%value.ifSpeed)*100}%
{/foreach}
```
Storage:
```text
%title
Device Name: %hostname
Severity: %severity
Uptime: %uptime_short
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp
Location: %location
Description: %description
Features: %features
Purpose: %purpose
Notes: %notes
Server: %sysName {foreach %faults}Mount Point: %value.storage_descr Percent Utilized: %value.storage_perc{/foreach}
```
Temperature Sensors:
```text
%title
Device Name: %hostname
Severity: %severity
Timestamp: %timestamp
Uptime: %uptime_short
{if %state == 0}Time elapsed: %elapsed{/if}
Location: %location
Description: %description
Features: %features
Purpose: %purpose
Notes: %notes
Rule: {if %name}%name{else}%rule{/if}
{if %faults}Faults:
{foreach %faults}
#%key: Temperature: %value.sensor_current°C
** {calc(%value.sensor_current-%value.sensor_limit)}°C over limit
Previous Measurement: %value.sensor_prev°C
High Temperature Limit: %value.sensor_limit°C
{/foreach}
{/if}
```
Value Sensors:
```text
%title
Device Name: %hostname
Severity: %severity
Timestamp: %timestamp
Uptime: %uptime_short
{if %state == 0}Time elapsed: %elapsed{/if}
Location: %location
Description: %description
Features: %features
Purpose: %purpose
Notes: %notes
Rule: {if %name}%name{else}%rule{/if}
{if %faults}Faults:
{foreach %faults}
#%key: Sensor%value.sensor_current
** {calc(%value.sensor_current-%value.sensor_limit)}over limit
Previous Measurement: %value.sensor_prev
Limit: %value.sensor_limit
{/foreach}
{/if}
```
Memory Alert:
```text
%title
Device Name: %hostname
Severity: %severity
Uptime: %uptime_short
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp
Location: %location
Description: %description
Notes: %notes
Server: %hostname {foreach %faults}
Memory Description: %value.mempool_descr
Percent Utilized: %value.mempool_perc{/foreach}
```
Conditional formatting example, will display a link to the host in email or just the hostname in any other transport:
```text
{if %transport == mail}<a href="https://my.librenms.install/device/device=%hostname/">%hostname</a>
{else}
%hostname
{/if}
```
Note the use of double-quotes. Single quotes (`'`) in templates will be escaped (replaced with `\'`) in the output and should therefore be avoided.
## Examples HTML
Note: To use HTML emails you must set HTML email to Yes in the WebUI under Global Settings > Alerting Settings > Email transport > Use HTML emails
Note: To include Graphs you must enable unauthorized graphs in config.php. Allow_unauth_graphs_cidr is optional, but more secure.
```
$config['allow_unauth_graphs_cidr'] = array('127.0.0.1/32');
$config['allow_unauth_graphs'] = true;
```
Service Alert:
```
<div style="font-family:Helvetica;">
<h2>{if %state == 1}<span style="color:red;">%severity{/if}
{if %state == 2}<span style="color:goldenrod;">acknowledged{/if}</span>
{if %state == 3}<span style="color:green;">recovering{/if}</span>
{if %state == 0}<span style="color:green;">recovered{/if}</span>
</h2>
<b>Host:</b> %hostname<br>
<b>Duration:</b> %elapsed<br>
<br>
{if %faults}
{foreach %faults}<b>%value.service_desc - %value.service_type</b><br>
%value.service_message<br>
<br>
{/foreach}
{/if}
</div>
```
Processor Alert with Graph:
```
%title <br>
Severity: %severity <br>
{if %state == 0}Time elapsed: %elapsed{/if}
Timestamp: %timestamp <br>
Alert-ID: %id <br>
Rule: {if %name}%name{else}%rule{/if} <br>
{if %faults}Faults:
{foreach %faults}
#%key: %value.string <br>
{/foreach}
{if %faults}<b>Faults:</b><br>
{foreach %faults}<img src="https://server/graph.php?device=%value.device_id&type=device_processor&width=459&height=213&lazy_w=552&from=end-72h%22/%3E<br>
https://server/graphs/id=%value.device_id/type=device_processor/<br>
{/foreach}
Template: CPU alert <br>
{/if}
{/if}
```
## Included
We include a few templates for you to use, these are specific to the type of alert rules you are creating. For example if you create a rule that would alert on BGP sessions then you can
assign the BGP template to this rule to provide more information.
The included templates apart from the default template are:
- BGP Sessions
- Ports
- Temperature

View File

@ -1,6 +1,3 @@
source: Alerting/Rules.md
path: blob/master/doc/
# Rules
Rules are defined using a logical language.

View File

@ -1,10 +1,7 @@
source: Alerting/Templates.md
path: blob/master/doc/
# Templates
> This page is for installs running version 1.42 or later. You can
> find the older docs [here](Old_Templates.md)
> find the older docs [here](https://github.com/librenms/librenms/blob/773411359489e0ffcc3ba763f1f138403343591a/doc/Alerting/Old_Templates.md)
Templates can be assigned to a single or a group of rules and can
contain any kind of text. There is also a default template which is
@ -20,7 +17,7 @@ button. You might hold down the CTRL key to select multiple rules at once.
The templating engine in use is Laravel Blade. We will cover some of
the basics here, however the official Laravel docs will have more
information [here](https://laravel.com/docs/5.7/blade)
information [here](https://laravel.com/docs/blade)
## Syntax
@ -140,7 +137,7 @@ In your alert template just use
@endsection
```
More info: [https://laravel.com/docs/5.7/blade#extending-a-layout](https://laravel.com/docs/5.7/blade#extending-a-layout)
More info: [https://laravel.com/docs/blade#extending-a-layout](https://laravel.com/docs/blade#extending-a-layout)
## Examples

View File

@ -1,6 +1,3 @@
source: Alerting/Testing.md
path: blob/master/doc/
### Rules
The simplest way of testing if an alert rule will match a device is by

View File

@ -1,6 +1,3 @@
source: Alerting/Transports.md
path: blob/master/doc/
# Transports
Transports are located within `LibreNMS/Alert/Transport/` and can be

View File

@ -1,66 +1,46 @@
source: Alerting/index.md
path: blob/master/doc/
# Introduction
# About
To get started, you first need some alert rules which will react to
changes with your devices before raising an alert.
LibreNMS includes a highly customizable alerting system.
The system requires a set of user-defined rules to evaluate the
situation of each device, port, service or any other entity.
[Creating alert rules](Rules.md)
> You can configure all options for alerting and transports via the
> WebUI, config options in this document are crossed out but left for reference.
After that you also need to tell LibreNMS how to notify you when an
alert is raised, this is done using `Alert Transports`.
Table of Content:
[Configuring alert transports](Transports.md)
- [Introduction](Introduction.md)
- [Rules](Rules.md)
- [Syntax](Rules.md#syntax)
- [Options](Rules.md#options)
- [Examples](Rules.md#examples)
- [Procedure](Rules.md#procedure)
- [Templates](Templates.md)
- [Syntax](Templates.md#syntax)
- [Testing](Templates.md#testing)
- [Examples](Templates.md#examples)
- [Included](Templates.md#included)
- [Transports](Transports.md)
- [E-Mail](Transports.md#e-mail)
- [API](Transports.md#api)
- [Browser Push](Transports.md#browser-push)
- [Nagios-Compatible](Transports.md#nagios-compatible)
- [IRC](Transports.md#irc)
- [Slack](Transports.md#slack)
- [Rocket.chat](Transports.md#rocketchat)
- [HipChat](Transports.md#hipchat)
- [PagerDuty](Transports.md#pagerduty)
- [Pushover](Transports.md#pushover)
- [Boxcar](Transports.md#boxcar)
- [Telegram](Transports.md#telegram)
- [Pushbullet](Transports.md#pushbullet)
- [Clickatell](Transports.md#clickatell)
- [PlaySMS](Transports.md#playsms)
- [VictorOps](Transports.md#victorops)
- [Canopsis](Transports.md#canopsis)
- [osTicket](Transports.md#osticket)
- [Microsoft Teams](Transports.md#microsoftteams)
- [Cisco Spark](Transports.md#ciscospark)
- [SMSEagle](Transports.md#smseagle)
- [Syslog](Transports.md#syslog)
- [Elasticsearch](Transports.md#elasticsearch)
- [Jira](Transports.md#jira)
- [Entities](Entities.md)
- [Devices](Entities.md#devices)
- [BGP Peers](Entities.md#bgppeers)
- [IPSec Tunnels](Entities.md#ipsec)
- [Memory Pools](Entities.md#entity-mempools)
- [Ports](Entities.md#entity-ports)
- [Processors](Entities.md#entity-processors)
- [Storage](Entities.md#entity-storage)
- [Sensors](Entities.md#entity-sensors)
- [Macros](Macros.md)
- [Device](Macros.md#macros-device)
- [Port](Macros.md#macros-port)
- [Time](Macros.md#macros-time)
- [Sensors](Macros.md#macros-sensors)
- [Misc](Macros.md#macros-misc)
- [Device Dependencies](Device-Dependencies.md)
The next step is not strictly required but most people find it
useful. Creating custom alert templates will help you get the benefit
out of the alert system in general. Whilst we include a default
template, it is limited in the data that you will receive in the alerts.
[Configuring alert templates](Templates.md)
## Managing alerts
When an alert has triggered you will see these in the Alerts ->
Notifications page within the Web UI.
This list has a couple of options available to it and we'll explain
what these are here.
### ACK
This column provides you visibility on the status of the alert:
![ack alert](img/ack.png) This alert is currently active and sending
alerts. Click this icon to acknowledge the alert.
![unack alert](img/unack.png) This alert is currently acknowledged
until the alert clears. Click this icon to un-acknowledge the alert.
![unack alert until fault worsens](img/nunack.png) This alert is
currently acknowledged until the alert worsens or gets
better, at which stage it will be automatically unacknowledged and
alerts will resume. Click this icon to un-acknowledge the alert.
### Notes
![alert notes](img/notes.png) This column will allow you access to the
acknowledge/unacknowledge notes for this alert.

View File

@ -1,86 +0,0 @@
source: Developing/Code-Guidelines.md
path: blob/master/doc/
# Coding guidelines
This document is here to help code standards for contributions towards
LibreNMS. The original code base that we forked from had a lack of
standards and as such the code base has a variety of different
styles. Whilst we don't want to restrict how people write code, these
guidelines should mean we have a good standard going forward that
makes reading the code easier. All modern day ide's should be able to
assist in these guidelines without breaking your usual workflow.
## PHP-FIG PSR-2 Coding Style
All new code should follow the [PHP-FIG PSR-2 standard](http://www.php-fig.org/psr/psr-2/).
Below are a few key items from that specification, please make sure to
follow the full spec.
### [Indentation](http://www.php-fig.org/psr/psr-2/#2-4-indenting)
Please use four (4) spaces to indent code rather than a tab. Ensure
you increase indentation for nested code blocks.
```php
if ($foo == 5) {
if ($foo == 5) {
if ($foo == 5) {
```
### [Line length](http://www.php-fig.org/psr/psr-2/#1-overview)
Try to keep the length of a line under 80 characters. If you must
exceed 80 characters, please keep it under 120 characters. This makes
reading the code easier and also enables compatibility for all screen sizes.
### [Control structures](http://www.php-fig.org/psr/psr-2/#5-control-structures)
A space must be used both before and after the parenthesis and also
surrounding the condition operator.
```php
if ($foo == 5) {
```
Do not put blocks of code on a single line, do use parenthesis
```php
if ($foo == 5) {
echo 'foo is 5';
}
```
else and elseif should start on the same line as ending of the previous code block.
```php
if ($foo == 5) {
echo 'foo is 5';
} elsif ($foo == 4) {
echo 'foo is 4';
} else {
echo 'foo is something else';
}
```
### Including files
Using parenthesis around file includes isn't required, instead just
place the file in between ''
```php
require_once 'includes/snmp.inc.php';
```
### [PHP tags](http://www.php-fig.org/psr/psr-1/#1-overview)
Ensure you use <?php rather than the shorthand version <?.
```php
<?php
```
The `?>` [must be
excluded](http://www.php-fig.org/psr/psr-2/#2-2-files) from all files
that only include PHP (no html). For instance anything in includes/ or
html/includes don't need the tag along with config.php.

View File

@ -1,6 +1,3 @@
source: Developing/Code-Structure.md
path: blob/master/doc/
# Code structure
This document will try and provide a good overview of how the code is

View File

@ -1,6 +1,3 @@
source: Developing/Creating-Documentation.md
path: blob/master/doc/
# Creating Documentation
One of the goals of the LibreNMS project is to enable users to get all of the
@ -32,9 +29,12 @@ least put a placeholder in asking for contributions.
- Ensure you use the correct formatting for `commands` and `code blocks` by
wrapping one liners in backticks or blocks in ```.
- Put content into sub-headings where possible to organise the content.
- If you rename a file, please add a redirect in for the old file by using
`<meta http-equiv="refresh" content="0; url=/NewLocation/" />` within the old
file name.
- If you rename a file, please add a redirect for the old file in `mkdocs.yml` like so:
```yaml
- redirects:
redirect_maps:
'old/page.md': 'new/page.md'
```
Please ensure you add the document to the relevant section within `pages` of
`mkdocs.yml` so that it's in the correct menu and is built. Forgetting this

View File

@ -1,6 +1,3 @@
source: Developing/Creating-Release.md
path: blob/master/doc/
# Creating a release
### GitHub

View File

@ -1,6 +1,3 @@
source: Developing/Dynamic-Config.md
path: blob/master/doc/
# Adding new config settings
Adding support for users to update a new config option via the WebUI

View File

@ -1,122 +0,0 @@
## Contributor Agreement
path: blob/master/doc/
By contributing code to LibreNMS (whether by a GitHub pull request, or by
any other means), you assert that:
- You have the rights to include the code, either as its original author,
or due to it being released to you under a compatible license.
- You are not aware of any third party claims on the code, including
copyright, patent, trademark, or any other legal claim.
- You have acknowledged in the content of your contribution (usually as a
source code comment) any and all sources and influences used in the
production of that contribution.
- You have not viewed code written under the [Observium
License](http://www.observium.org/wiki/License) in the
production of contributed code. This includes all Observium code after
Subversion revision 3250 and any patches or other code covered by that
license after Tue May 29 13:08:01 2012 +0000 (the date of Observium r3250).
To agree with these assertions, when you submit your first pull
request you will be asked after submitting to sign the CLA, you do
this by following the link provided in the PR and agreeing to the CLA
using your GitHub account.
## Local patches
Please note that the above contributor agreement means that if you have
developed a feature for a non-GPL version of Observium, we can't include it
in LibreNMS, even if you have not released it to the public. If there's a
feature you use to which this applies, please document its functionality in
an issue, and we'll do our best to include equivalent functionality in
LibreNMS.
## Copyright
We recommend that if you add a new file containing original code to the code
base that you include a copyright notice in it as per the Free Software
Foundation's guidelines. You might find something like the following header
appropriate (although this is not legal advice ;-). Please also ensure
you add the package information to the header.
```
<?php
/*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
* @package LibreNMS
* @subpackage webui
* @link https://www.librenms.org
* @copyright 2017 Internet Widgitz Pty Ltd <info@widgitz.com>
* @author Me <me@infowidgitz.com>
```
The GPLv3 itself also contains recommendations about applying the GPL to
your code. Please see LICENSE.txt at the top of this source code
distribution for details.
## Integrating other code
Giving credit where credit is due is critical to the Free Software
philosophy. If you use code from somewhere else, even if it's trivial,
be sure to note this as a comment in the code (preferably) or the commit
message. Accurate attribution is crucial to our success as a Free Software
project.
- For any dependency
- Include its name, source URL, copyright notice, and license in `doc/General/Credits.md`
- To add a php dependency, please use composer
- Add the dependency `composer require slim/slim`
- Updating php dependencies
- Update dependencies `FORCE=1 php56 ./scripts/composer_wrapper.php update`
- Commit the updated composer.lock file
- To add a javascript dependency
- Where possible please include minimized libraries in the html/js/ folder.
- Don't submit code whose license conflicts with the GPLv3. If you're not
sure, consult the [Free Software Foundation's license
list](https://www.gnu.org/licenses/license-list.html) and see if
your code's license is on the compatible or incompatible list. If
you prefer a non-copyleft license, Apache 2.0 is the recommended choice as per
the FSF guidelines.
- The current Observium license is incompatible with GPLv3. Don't submit
code from current Observium unless you are the copyright holder, and you
specifically state in the code that you are releasing it under GPLv3 (or a
compatible license).
Because contributing to Observium requires that you reassign copyright to
Adam Armstrong, if you want to release the same code for both Observium
and LibreNMS, you need to release it for LibreNMS first and mark it with
your own copyright notice, then release it to Observium and remove your
copyright, granting Adam ownership.
Please note that the above is necessary even if you don't care about
keeping the copyright to your code, because otherwise we could be accused
of misappropriating Observium's code. As the code bases develop, we
expect them to diverge, which means this will become less of an issue
anyway.
- Because the GPL's provisions about linking don't apply to PHP-based
projects, we interpret the linking provisions of the license to refer to
the use of PHP library functions called from LibreNMS code.
We consider inclusion of files such as MIBs in the LibreNMS repository to
be merely aggregation in a distribution medium as per the last paragraph
of the GPLv3 section 5 ("Conveying Modified Source Versions"), and because
they are not combined with LibreNMS to form a larger program, the GPLv3
does not apply to them. This is not a legal ruling - it is simply a
statement of our intent and current interpretation.

View File

@ -1,6 +1,3 @@
source: Developing/Merging-Pull-Requests.md
path: blob/master/doc/
# Merging Pull Requests
### GitHub

View File

@ -1,6 +1,3 @@
source: Developing/SNMP-Traps.md
path: blob/master/doc/
# Creating snmp trap handlers
You must have a working snmptrapd. See

View File

@ -1,6 +1,3 @@
source: Developing/Sensor-State-Support.md
path: blob/master/doc/
# Sensor State Support
### Introduction

View File

@ -1,76 +0,0 @@
source: Developing/Style-Guidelines.md
path: blob/master/doc/
# Style guidelines
This document is here to help style standards for contributions
towards LibreNMS. These aren't strict rules but it is in the users
interest that a consistent well thought out Web UI is available.
### Responsiveness
The Web UI is designed to be mobile friendly and for the most part is
and works well. It's worth spending some time to read through the
[Bootstrap website](http://getbootstrap.com/css/#grid) to learn more
about how to keep things responsive.
### Navigation bar
- Always pick the best location for new links to go; think about where
users would expect the link to be located and name it so that it's
obvious what it does.
- Ensure sub-sections within the Navigation are separated correctly
using `<li role="presentation" class="divider"></li>`.
- Only use [Font Awesome icons](http://fontawesome.io/icons/) within the Navigation. It speeds up page load times quite considerably.
### Buttons
Try to keep buttons colored to reflect the action they will
take. Buttons are set using Bootstrap classes. The size of the buttons
will depend on the area of the website being used but btn-sm is
probably the most common.
- Delete / Remove buttons: btn btn-danger
- Edit / Update buttons: btn btn-primary
- Add / Create buttons: btn btn-success
### Tables
Unless the table being used will only ever display a handful of
items - yeah that's what we all said, then you need to write your
table using [JQuery Bootgrid](http://www.jquery-bootgrid.com/). This
shouldn't take that much more code to do it, but provides so much
flexibility along with stopping the need for retrieving all the data
from SQL in the first place.
As an example pull request, see [PR
706](https://github.com/librenms/librenms/pull/706/files) to get an
idea of what it's like to convert an existing pure html table to Bootgrid.
### Datetime format
When displaying datetimes, please ensure you use the format YYYY-MM-DD
hh:mm:ss where possible, you shouldn't change the order of this as it
will be confusing to users. Cutting it short to just display
YYYY-MM-DD hh:mm is fine :).
To keep things consistent we have the following variables which should
be used rather than to format dates yourself. This has the added
benefit that users can customise the format:
```php
# Date format for PHP date()s
$config['dateformat']['long'] = "r"; # RFC2822 style
$config['dateformat']['compact'] = "Y-m-d H:i:s";
$config['dateformat']['byminute'] = "Y-m-d H:i";
$config['dateformat']['time'] = "H:i:s";
# Date format for MySQL DATE_FORMAT
$config['dateformat']['mysql']['compact'] = "%Y-%m-%d %H:%i:%s";
$config['dateformat']['mysql']['date'] = "%Y-%m-%d";
$config['dateformat']['mysql']['time'] = "%H:%i:%s";
```

View File

@ -1,6 +1,3 @@
source: Developing/Support-New-OS.md
path: blob/master/doc/
This document is broken down into the relevant sections depending on
what support you are adding. During all of these examples we will be
using the OS of `pulse` as the example OS we will add.

View File

@ -1,6 +1,3 @@
source: Developing/Using-Git.md
path: blob/master/doc/
Git can have a bit of a steep learning curve, stick with it as it is
worth learning the [basics][1][2] at least.

View File

@ -1,10 +1,7 @@
source: Developing/Validating-Code.md
path: blob/master/doc/
#### Validating Code
As part of the pull request process with GitHub we run some automated
build tests to ensure that the code is error free, standards [compliant](../Developing/Code-Guidelines.md)
build tests to ensure that the code is error free, standards compliant
and our test suite builds successfully.
Rather than submit a pull request and wait for the results, you can

View File

@ -1,62 +0,0 @@
source: General/index.md
path: blob/master/doc/
# Copyright and Licensing
All contributors to LibreNMS retain copyright to their own code and are not
required to sign over their rights to any other party. Code should be licensed
under the GPLv3 and MUST NOT contain non-GPL Observium code or GPL
incompatible code. To be safe do not view Observium code at all. See
[Licensing](Licensing.md) for more details.
# General Guidelines
- Test your patches first.
- Don't break the poller. User interface blemishes are not critical, but
losing data from network monitoring systems might be.
- As a general rule, if you're replacing lines of code with new lines of
code, don't comment them out, just delete them. Commented out code makes
the patch and the resultant code harder to read, and there's no good
reason to it since we can easily get them back from git.
- If you're fixing a bug or making another minor change, don't reformat the
code at the same time. This makes it harder to see what's changed. If
you need to reformat it after making the change, do so in a separate
commit.
- Please join us in [discord](https://discord.gg/librenms) if you are able.
Collaborating in real time makes the coordination of contributions easier.
- Ensure you read the [Code Guidelines](Code-Guidelines.md)
documentation and understand the code
style that should be adhered to. You can [validate that your code
adheres to these guidelines](Validating-Code.md) before submitting.
- Check [Style Guidelines](Style-Guidelines.md) for Web UI guidelines and conventions.
# How to Contribute
- [Getting Started](Getting-Started.md) Set up your development
environment to make things easier.
- [Using Git](Using-Git.md) gives you step-by-step instructions on
using git to submit a pull request.
- [Code Structure](Code-Structure.md) can help you understand where
specific code exists in LibreNMS.
- [Creating Documentation](Creating-Documentation.md) It is very
important for the continued improvement of LibreNMS that we have
good documentation. If you see anything that that needs improvement
please submit a pull request to fix it.
Don't be afraid to submit a GitHub Pull Request. We will help you
with anything that needs to be change or suggest ways of improving
your patch. Because the maintainers are volunteers too sometimes
response may be delayed or brief, please be patient or ask for
clarification if needed. Thanks!
## Good places to start to learn PHP or improve your coding
- [PHP: The Right Way](http://www.phptherightway.com/) A community
curated list of best practices and quick help.
- [Laracasts](https://laracasts.com/skills/php) Video coding tutorials
that are easy to follow. Many of the beginner videos are
free. Suggested Series:
- [The PHP Practitioner](https://laracasts.com/series/php-for-beginners)
- [Object-Oriented Bootcamp](https://laracasts.com/series/object-oriented-bootcamp-in-php)
- [Simple Rules for Simpler Code](https://laracasts.com/series/simple-rules-for-simpler-code)
- [Laravel Documentation](https://laravel.com/docs/)

View File

@ -1,6 +1,3 @@
source: Developing/os/Custom-Graphs.md
path: blob/master/doc/
First we define our graphs in `includes/definitions.inc.php` to share
our work and contribute in the development of LibreNMS. :-) (or place
in `config.php` if you don't plan to contribute)

View File

@ -1,6 +1,3 @@
source: Developing/os/Health-Information.md
path: blob/master/doc/
#### Sensors
This document will guide you through adding health / sensor

View File

@ -1,6 +1,3 @@
source: Developing/os/Initial-Detection.md
path: blob/master/doc/
This document will provide the information you should need to add
basic detection for a new OS.

View File

@ -1,6 +1,3 @@
source: Developing/os/Mem-CPU-Information.md
path: blob/master/doc/
This document will guide you through adding detection for Memory /
Processor for your new device.

View File

@ -1,6 +1,3 @@
source: os/Settings.md
path: blob/master/doc/
# Optional OS Settings
This page documents settings that can be set in the os yaml files or

View File

@ -1,6 +1,3 @@
source: Developing/os/Test-Units.md
path: blob/master/doc/
# Tests
Tests ensure LibreNMS works as expected, now and in the future. New

View File

@ -1,6 +1,3 @@
source: Developing/os/Wireless-Sensors.md
path: blob/master/doc/
This document will guide you through adding wireless sensors for your
new wireless device.

View File

@ -1,16 +1,10 @@
FROM squidfunk/mkdocs-material:7.1.0
FROM squidfunk/mkdocs-material:8.1.8
RUN \
apk add --no-cache \
git \
git-fast-import \
openssh \
&& apk add --no-cache --virtual .build gcc musl-dev \
&& pip install --no-cache-dir \
pip install --no-cache-dir \
'markdown-include' \
'mkdocs-awesome-pages-plugin' \
'mkdocs-exclude' \
'mkdocs-git-revision-date-localized-plugin' \
'mkdocs-macros-plugin' \
&& apk del .build gcc musl-dev \
&& rm -rf /tmp/*

View File

@ -1,6 +1,3 @@
source: Extensions/Agent-Setup.md
path: blob/master/doc/
# Check_MK Setup
The agent can be used to gather data from remote systems you can use

View File

@ -1,3 +0,0 @@
source: Extensions/Alerting.md
path: blob/master/doc/
<meta http-equiv="refresh" content="0; url=/Alerting/" />

View File

@ -1,14 +1,15 @@
source: Extensions/Applications.md
path: blob/master/doc/
# Applications
You can use Application support to graph performance statistics of
many applications.
Different applications support a variety of ways to collect data: 1)
by direct connection to the application, 2) snmpd extend, or 3) [the
agent](Agent-Setup.md). The monitoring of applications could be added
Different applications support a variety of ways to collect data:
1. By direct connection to the application
2. snmpd extend
3. [The agent](Agent-Setup.md).
The monitoring of applications could be added
before or after the hosts have been added to LibreNMS.
If multiple methods of collection are listed you only need to enable one.
@ -85,66 +86,6 @@ automatically enabled by the unix-agent poller module. It is better to
ensure that your application is enabled for monitoring. You can check
by following the steps under the `SNMP Extend` heading.
1. [Apache](#apache) - SNMP extend, Agent
1. [Asterisk](#asterisk) - SNMP extend
1. [backupninja](#backupninja) - SNMP extend
1. [BIND9/named](#bind9-aka-named) - SNMP extend, Agent
1. [Certificate](#certificate) - Certificate extend
1. [C.H.I.P.](#chip) - SNMP extend
1. [Docker Stats](#docker-stats) - SNMP extend
1. [Entropy](#entropy) - SNMP extend
1. [EXIM Stats](#exim-stats) - SNMP extend
1. [Fail2ban](#fail2ban) - SNMP extend
1. [FreeBSD NFS Client](#freebsd-nfs-client) - SNMP extend
1. [FreeBSD NFS Server](#freebsd-nfs-server) - SNMP extend
1. [FreeRADIUS](#freeradius) - SNMP extend, Agent
1. [Freeswitch](#freeswitch) - SNMP extend, Agent
1. [GPSD](#gpsd) - SNMP extend, Agent
1. [Icecast](#icecast) - SNMP extend, Agent
1. [ISC DHCP Stats](#isc-dhcp-stats) - SNMP extend
1. [Mailcow-dockerized postfix](#mailcow-dockerized-postfix) - SNMP extend
1. [Mailscanner](#mailscanner) - SNMP extend
1. [Mdadm](#mdadm) - SNMP extend
1. [MegaRAID](#megaraid) - SNMP extend
1. [Memcached](#memcached) - SNMP extend
1. [Munin](#munin) - Agent
1. [MySQL](#mysql) - SNMP extend, Agent
1. [NGINX](#nginx) - SNMP extend, Agent
1. [NFS Server](#nfs-server) - SNMP extend
1. [NTP Client](#ntp-client) - SNMP extend
1. [NTP Server/NTPD](#ntp-server-aka-ntpd) - SNMP extend
1. [Nvidia GPU](#nvidia-gpu) - SNMP extend
1. [Open Grid Scheduler](#open-grid-scheduler) - SNMP extend
1. [Opensips](#opensips) - SNMP extend
1. [OS Updates](#os-updates) - SNMP extend
1. [PHP-FPM](#php-fpm) - SNMP extend
1. [Pi-hole](#pi-hole) - SNMP extend
1. [Portactivity](#portactivity) - SNMP extend
1. [Postfix](#postfix) - SNMP extend
1. [Postgres](#postgres) - SNMP extend
1. [PowerDNS](#powerdns) - Agent
1. [PowerDNS Recursor](#powerdns-recursor) - Direct, SNMP extend, Agent
1. [PowerDNS dnsdist](#powerdns-dnsdist) - SNMP extend
1. [PowerMon](#powermon) - SNMP extend
1. [Proxmox](#proxmox) - SNMP extend
1. [Puppet Agent](#puppet-agent) - SNMP extend
1. [PureFTPd](#pureftpd) - SNMP extend
1. [Raspberry PI](#raspberry-pi) - SNMP extend
1. [Raspberry PI GPIO Monitor](#raspberry-pi-gpio-monitor) - SNMP extend
1. [Redis](#redis) - SNMP extend
1. [RRDCached](#rrdcached) - SNMP extend
1. [SDFS info](#sdfs-info) - SNMP extend
1. [Seafile](#seafile) - SNMP extend
1. [SMART](#smart) - SNMP extend
1. [Squid](#squid) - SNMP proxy
1. [Supervisord](#supervisord) - SNMP extend
1. [TinyDNS/djbdns](#tinydns-aka-djbdns) - Agent
1. [Unbound](#unbound) - SNMP extend, Agent
1. [UPS-nut](#ups-nut) - SNMP extend
1. [UPS-apcups](#ups-apcups) - SNMP extend
1. [Voip-monitor](#voip-monitor) - SNMP extend
1. [ZFS](#zfs) - SNMP extend
## Apache
Either use SNMP extend or use the agent.

View File

@ -1,6 +1,3 @@
source: Extensions/Authentication.md
path: blob/master/doc/
# Authentication Options
LibreNMS supports multiple authentication modules along with [Two Factor Auth](Two-Factor-Auth.md).

View File

@ -1,6 +1,3 @@
source: Extensions/Auto-Discovery.md
path: blob/master/doc/
# Auto Discovery Support
## Getting Started

View File

@ -1,6 +1,3 @@
source: Extensions/Billing-Module.md
path: blob/master/doc/
# Billing Module
With the billing module you can create a bill, assign a quota to it

View File

@ -1,6 +1,3 @@
source: Extensions/Component.md
path: blob/master/doc/
# About
The Component extension provides a generic database storage mechanism

View File

@ -1,6 +1,3 @@
source: Extensions/Customizing-the-Web-UI.md
path: blob/master/doc/
# Customizing the Web UI
## Custom menu entry

View File

@ -1,6 +1,3 @@
source: Extensions/Dashboards.md
path: blob/master/doc/
# Dashboards
Create customised dashboards in LibreNMS per user. You can share

View File

@ -1,6 +1,3 @@
source: Extensions/Dell-OpenManage.md
path: blob/master/doc/
# Dell OpenManage Support
For Dell OpenManage support you will need to install Dell OpenManage

View File

@ -1,6 +1,3 @@
source: Extensions/Device-Groups.md
path: blob/master/doc/
# Grouping Devices
LibreNMS supports grouping your devices together in much the same way

View File

@ -1,6 +1,3 @@
source: Extensions/Dispatcher-Service.md
path: blob/master/doc/
# Dispatcher Service
> Status: Release Candidate

View File

@ -1,6 +1,3 @@
source: Extensions/Distributed-Poller.md
path: blob/master/doc/
# Distributed Poller
A normal install contains all parts of LibreNMS:

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/Alerting/Transports/#e-mail" />

View File

@ -1,6 +1,3 @@
source: Extensions/Fast-Ping-Check.md
path: blob/master/doc/
# Fast up/down checking
Normally, LibreNMS sends an ICMP ping to the device before polling to

View File

@ -1,6 +1,3 @@
source: Extensions/Galera-Cluster.md
path: blob/master/doc/
# MariaDB Galera Cluster
This is currently being tested, use at your own risk.

View File

@ -1,6 +1,3 @@
source: Extensions/Gateone.md
path: blob/master/doc/
# GateOne integration
We have simple integration for

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/Extensions/metrics/Graphite/" />

View File

@ -1,6 +1,3 @@
source: Extensions/Graylog.md
path: blob/master/doc/
# Graylog integration
We have simple integration for Graylog, you will be able to view any

View File

@ -1,6 +1,3 @@
source: Extensions/IRC-Bot-Extensions.md
path: blob/master/doc/
# IRC Bot Extensions
Okay this is a very quick walk-through in writing your own `commands` for the IRC-Bot.

View File

@ -1,6 +1,3 @@
source: Extensions/IRC-Bot.md
path: blob/master/doc/
# IRC Bot
LibreNMS has an easy to use IRC-Interface for basic tasks like viewing

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/Extensions/metrics/InfluxDB/" />

View File

@ -1,6 +1,3 @@
source: Extensions/Interface-Description-Parsing.md
path: blob/master/doc/
# Interface Description Parsing
Librenms can interpret, display and group certain additional information on ports.

View File

@ -1,5 +1,3 @@
source: Extensions/Metric-Storage.md
path: blob/master/doc/
hide_toc: true
# Metric storage

View File

@ -1,6 +1,3 @@
source: Extensions/NFSen.md
path: blob/master/doc/
# NFSen
> The installation of NFSen is out of scope for this document / LibreNMS

View File

@ -1,6 +1,3 @@
source: Extensions/Network-Map.md
path: blob/master/doc/
# Network Map
LibreNMS has the ability to show you a network map based on:

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/Extensions/metrics/OpenTSDB/" />

View File

@ -1,6 +1,3 @@
source: Extensions/Oxidized.md
path: blob/master/doc/
# Oxidized
Integrating LibreNMS with

View File

@ -1,6 +1,3 @@
source: Extensions/PeeringDB.md
path: blob/master/doc/
# PeeringDB Support
LibreNMS has integration with PeeringDB to match up your BGP sessions

View File

@ -1,6 +1,3 @@
source: Extensions/Plugin-System.md
path: blob/master/doc/
# Developing for the Plugin System
With plugins you can extend LibreNMS with special functions that are

View File

@ -1,3 +0,0 @@
source: Extensions/Poller-Service.md
path: blob/master/doc/
<meta http-equiv="refresh" content="0; url=/Extensions/Dispatcher-Service/" />

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/Extensions/Interface-Description-Parsing/" />

View File

@ -1 +0,0 @@
<meta http-equiv="refresh" content="0; url=/Extensions/metrics/Prometheus/" />

View File

@ -1,6 +1,3 @@
source: Extensions/Proxmox.md
path: blob/master/doc/
# Proxmox graphing
It is possible to create graphs of the Proxmox **VMs** that run on

View File

@ -1,55 +0,0 @@
# Securing with nginx
path: blob/master/doc/
According to the [man page](https://linux.die.net/man/1/rrdcached),
under "SECURITY CONSIDERATIONS", rrdcached has no authentication or
security except for running under a unix socket. If you choose to use
a network socket instead of a unix socket, you will need to secure
your rrdcached installation. To do so you can proxy rrdcached using
nginx to allow only specific IPs to connect.
Using the same setup above, using nginx version 1.9.0 or later, you
can follow this setup to proxy the default rrdcached port to the local
unix socket.
(You can use `./conf.d` for your configuration as well)
`mkdir /etc/nginx/streams-{available,enabled}`
add the following to your nginx.conf file:
```nginx
#/etc/nginx/nginx.conf
...
stream {
include /etc/nginx/streams-enabled/*;
}
```
Add this to `/etc/nginx/streams-available/rrd`
```nginx
server {
listen 42217;
error_log /var/log/nginx/rrd.stream.error.log;
allow $LibreNMS_IP;
deny all;
proxy_pass unix:/run/rrdcached.sock;
}
```
Replace `$LibreNMS_IP` with the ip of the server that will be using
rrdcached. You can specify more than one `allow` statement. This will
bind nginx to TCP 42217 (the default rrdcached port), allow the
specified IPs to connect, and deny all others.
next, we'll symlink the config to streams-enabled:
`ln -s /etc/nginx/streams-{available,enabled}/rrd`
and reload nginx
`service nginx reload`

View File

@ -1,6 +1,3 @@
source: Extensions/RRDCached.md
path: blob/master/doc/
# Setting up RRDCached
This document will explain how to set up RRDCached for LibreNMS.
@ -291,5 +288,54 @@ Depending on many factors, you should see the Ops/sec drop by ~30-40%.
## Securing RRCached
Please see [RRDCached Security](RRDCached-Security.md)
According to the [man page](https://linux.die.net/man/1/rrdcached),
under "SECURITY CONSIDERATIONS", rrdcached has no authentication or
security except for running under a unix socket. If you choose to use
a network socket instead of a unix socket, you will need to secure
your rrdcached installation. To do so you can proxy rrdcached using
nginx to allow only specific IPs to connect.
Using the same setup above, using nginx version 1.9.0 or later, you
can follow this setup to proxy the default rrdcached port to the local
unix socket.
(You can use `./conf.d` for your configuration as well)
`mkdir /etc/nginx/streams-{available,enabled}`
add the following to your nginx.conf file:
```nginx
#/etc/nginx/nginx.conf
...
stream {
include /etc/nginx/streams-enabled/*;
}
```
Add this to `/etc/nginx/streams-available/rrd`
```nginx
server {
listen 42217;
error_log /var/log/nginx/rrd.stream.error.log;
allow $LibreNMS_IP;
deny all;
proxy_pass unix:/run/rrdcached.sock;
}
```
Replace `$LibreNMS_IP` with the ip of the server that will be using
rrdcached. You can specify more than one `allow` statement. This will
bind nginx to TCP 42217 (the default rrdcached port), allow the
specified IPs to connect, and deny all others.
next, we'll symlink the config to streams-enabled:
`ln -s /etc/nginx/streams-{available,enabled}/rrd`
and reload nginx
`service nginx reload`

View File

@ -1,6 +1,3 @@
source: Extensions/RRDTune.md
path: blob/master/doc/
# RRDTune
When we create rrd files for ports, we currently do so with a max

View File

@ -1,6 +1,3 @@
source: Extensions/Rancid.md
path: blob/master/doc/
# Rancid
Librenms can generate a list of hosts that can be monitored by

View File

@ -1,6 +1,3 @@
source: Extensions/SNMP-Proxy.md
path: blob/master/doc/
# SNMP Proxy
If you have machines that you want to monitor but are not reachable

View File

@ -1,6 +1,3 @@
source: Extensions/SNMP-Trap-Handler.md
path: blob/master/doc/
# SNMP trap handling
Currently, LibreNMS supports a lot of trap handlers. You can check them on

View File

@ -1,6 +1,3 @@
source: Extensions/Services.md
path: blob/master/doc/
# Nagios Plugins - Services
Services within LibreNMS provides the ability to leverage Nagios plugins to

View File

@ -1,6 +1,3 @@
source: Extensions/Smokeping.md
path: blob/master/doc/
# Smokeping integration
[SmokePing](https://oss.oetiker.ch/smokeping/) is a tool which lets us keep

View File

@ -1,6 +1,3 @@
source: Extensions/Sub-Directory.md
path: blob/master/doc/
To run LibreNMS under a subdirectory on your Apache server, the
directives for the LibreNMS directory are placed in the base server
configuration, or in a virtual host container of your choosing. If

View File

@ -1,6 +1,3 @@
source: Extensions/Supermicro.md
path: blob/master/doc/
# Supermicro
For some Supermicro information to show up in LibreNMS, you will need to install an agent.

View File

@ -1,6 +1,3 @@
source: Extensions/Syslog.md
path: blob/master/doc/
# Syslog support
This document will explain how to send syslog data to LibreNMS.

View File

@ -1,6 +1,3 @@
source: Extensions/Two-Factor-Auth.md
path: blob/master/doc/
# Two-Factor Authentication
Over the last couple of years, the primary attack vector for internet

View File

@ -1,6 +1,3 @@
source: Extensions/Varnish.md
path: blob/master/doc/
# Varnish Installation Guide
This document explains how to install Varnish Reverse Proxy for LibreNMS.

View File

@ -1,6 +1,3 @@
source: Extensions/Weathermap.md
path: blob/master/doc/
# Network-WeatherMap with LibreNMS
Integrating LibreNMS with [Network-Weathermap](https://network-weathermap.com/), allows you to build network

View File

@ -1,6 +1,3 @@
source: Extensions/World-Map.md
path: blob/master/doc/
# World Map Configuration
LibreNMS comes with a configurable Geo Map based on World Map Widget

Some files were not shown because too many files have changed in this diff Show More