diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 95a81c6077..fda77b71ac 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -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: | diff --git a/doc/API/API-Docs.md b/doc/API/API-Docs.md deleted file mode 100644 index 14ec2bfefb..0000000000 --- a/doc/API/API-Docs.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/doc/API/ARP.md b/doc/API/ARP.md index 1f0c0cb08d..33d03b8d2f 100644 --- a/doc/API/ARP.md +++ b/doc/API/ARP.md @@ -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 diff --git a/doc/API/Alerts.md b/doc/API/Alerts.md index 4144d13f7d..40c5f5001d 100644 --- a/doc/API/Alerts.md +++ b/doc/API/Alerts.md @@ -1,6 +1,3 @@ -source: API/Alerts.md -path: blob/master/doc/ - ### `get_alert` Get details of an alert diff --git a/doc/API/Bills.md b/doc/API/Bills.md index 87874b4d05..57ba80dbb8 100644 --- a/doc/API/Bills.md +++ b/doc/API/Bills.md @@ -1,6 +1,3 @@ -source: API/Bills.md -path: blob/master/doc/ - ### `list_bills` Retrieve the list of bills currently in the system. diff --git a/doc/API/DeviceGroups.md b/doc/API/DeviceGroups.md index fde8af6b4c..41b8616ac1 100644 --- a/doc/API/DeviceGroups.md +++ b/doc/API/DeviceGroups.md @@ -1,6 +1,3 @@ -source: API/DeviceGroups.md -path: blob/master/doc/ - ### `get_devicegroups` List all device groups. diff --git a/doc/API/Devices.md b/doc/API/Devices.md index 69a7a370de..e2a8a16e96 100644 --- a/doc/API/Devices.md +++ b/doc/API/Devices.md @@ -1,6 +1,3 @@ -source: API/Devices.md -path: blob/master/doc/ - ### `del_device` Delete a given device. diff --git a/doc/API/Inventory.md b/doc/API/Inventory.md index eb4165548b..5cb8c7c9e3 100644 --- a/doc/API/Inventory.md +++ b/doc/API/Inventory.md @@ -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 diff --git a/doc/API/Locations.md b/doc/API/Locations.md index aacd4db562..02eca8d97b 100644 --- a/doc/API/Locations.md +++ b/doc/API/Locations.md @@ -1,6 +1,3 @@ -source: API/Locations.md -path: blob/master/doc/ - ### `add_location` Add a new location diff --git a/doc/API/Logs.md b/doc/API/Logs.md index 91d4c4b2b1..65813dac4b 100644 --- a/doc/API/Logs.md +++ b/doc/API/Logs.md @@ -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. diff --git a/doc/API/PortGroups.md b/doc/API/PortGroups.md index 53b6651565..b76500e0b9 100644 --- a/doc/API/PortGroups.md +++ b/doc/API/PortGroups.md @@ -1,6 +1,3 @@ -source: API/PortGroups.md -path: blob/master/doc/ - ### `get_graph_by_portgroup` Get the graph based on the group type. diff --git a/doc/API/Port_Groups.md b/doc/API/Port_Groups.md index 1316c88922..d24b42eb1c 100644 --- a/doc/API/Port_Groups.md +++ b/doc/API/Port_Groups.md @@ -1,6 +1,3 @@ -source: API/Port_Groups.md -path: blob/master/doc/ - ### `get_port_groups` List all port groups. diff --git a/doc/API/Ports.md b/doc/API/Ports.md index 5931b83448..ff79cebd81 100644 --- a/doc/API/Ports.md +++ b/doc/API/Ports.md @@ -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 diff --git a/doc/API/Routing.md b/doc/API/Routing.md index 43f814e059..af7a338e25 100644 --- a/doc/API/Routing.md +++ b/doc/API/Routing.md @@ -1,6 +1,3 @@ -source: API/Routing.md -path: blob/master/doc/ - ### `list_bgp` List the current BGP sessions. diff --git a/doc/API/Services.md b/doc/API/Services.md index fd4178804d..0956a37f00 100644 --- a/doc/API/Services.md +++ b/doc/API/Services.md @@ -1,6 +1,3 @@ -source: API/Services.md -path: blob/master/doc/ - ### `list_services` Retrieve all services diff --git a/doc/API/Switching.md b/doc/API/Switching.md index dba1969c7c..d9c961b9f1 100644 --- a/doc/API/Switching.md +++ b/doc/API/Switching.md @@ -1,6 +1,3 @@ -source: API/Switching.md -path: blob/master/doc/ - ### `list_vlans` Get a list of all VLANs. diff --git a/doc/API/System.md b/doc/API/System.md index 0c706120d4..b09bf14cf4 100644 --- a/doc/API/System.md +++ b/doc/API/System.md @@ -1,6 +1,3 @@ -source: API/System.md -path: blob/master/doc/ - ### `system` Display Librenms instance information. diff --git a/doc/API/index.md b/doc/API/index.md index eafef4734f..e644facea7 100644 --- a/doc/API/index.md +++ b/doc/API/index.md @@ -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 diff --git a/doc/Alerting/Creating-Transport.md b/doc/Alerting/Creating-Transport.md index 3690e11ca2..14dc597cc8 100644 --- a/doc/Alerting/Creating-Transport.md +++ b/doc/Alerting/Creating-Transport.md @@ -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()`. diff --git a/doc/Alerting/Device-Dependencies.md b/doc/Alerting/Device-Dependencies.md index ddda531423..2b201a9366 100644 --- a/doc/Alerting/Device-Dependencies.md +++ b/doc/Alerting/Device-Dependencies.md @@ -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 diff --git a/doc/Alerting/Entities.md b/doc/Alerting/Entities.md index 68cce563bc..4e9cc48b0e 100644 --- a/doc/Alerting/Entities.md +++ b/doc/Alerting/Entities.md @@ -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 diff --git a/doc/Alerting/Introduction.md b/doc/Alerting/Introduction.md deleted file mode 100644 index 39423bf76d..0000000000 --- a/doc/Alerting/Introduction.md +++ /dev/null @@ -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. diff --git a/doc/Alerting/Macros.md b/doc/Alerting/Macros.md index f63aa78bff..6e32679b61 100644 --- a/doc/Alerting/Macros.md +++ b/doc/Alerting/Macros.md @@ -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. diff --git a/doc/Alerting/Old_Templates.md b/doc/Alerting/Old_Templates.md deleted file mode 100644 index d12a8fbe18..0000000000 --- a/doc/Alerting/Old_Templates.md +++ /dev/null @@ -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
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}%hostname -{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: - -``` -
-

{if %state == 1}%severity{/if} -{if %state == 2}acknowledged{/if} -{if %state == 3}recovering{/if} -{if %state == 0}recovered{/if} -

-Host: %hostname
-Duration: %elapsed
-
- -{if %faults} -{foreach %faults}%value.service_desc - %value.service_type
-%value.service_message
-
-{/foreach} -{/if} -
-``` - -Processor Alert with Graph: - -``` -%title
-Severity: %severity
-{if %state == 0}Time elapsed: %elapsed{/if} -Timestamp: %timestamp
-Alert-ID: %id
-Rule: {if %name}%name{else}%rule{/if}
-{if %faults}Faults: -{foreach %faults} -#%key: %value.string
-{/foreach} -{if %faults}Faults:
-{foreach %faults}` 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 diff --git a/doc/Developing/Creating-Release.md b/doc/Developing/Creating-Release.md index 14ca28c7ce..2d35827ffe 100644 --- a/doc/Developing/Creating-Release.md +++ b/doc/Developing/Creating-Release.md @@ -1,6 +1,3 @@ -source: Developing/Creating-Release.md -path: blob/master/doc/ - # Creating a release ### GitHub diff --git a/doc/Developing/Dynamic-Config.md b/doc/Developing/Dynamic-Config.md index bce8e52b1d..cd4130938e 100644 --- a/doc/Developing/Dynamic-Config.md +++ b/doc/Developing/Dynamic-Config.md @@ -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 diff --git a/doc/Developing/Licensing.md b/doc/Developing/Licensing.md deleted file mode 100644 index e88383b2ff..0000000000 --- a/doc/Developing/Licensing.md +++ /dev/null @@ -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. - -``` - - * @author Me - -``` - -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. diff --git a/doc/Developing/Merging-Pull-Requests.md b/doc/Developing/Merging-Pull-Requests.md index 08fef82a62..194aad81fe 100644 --- a/doc/Developing/Merging-Pull-Requests.md +++ b/doc/Developing/Merging-Pull-Requests.md @@ -1,6 +1,3 @@ -source: Developing/Merging-Pull-Requests.md -path: blob/master/doc/ - # Merging Pull Requests ### GitHub diff --git a/doc/Developing/SNMP-Traps.md b/doc/Developing/SNMP-Traps.md index 8a4d2a6f7d..31f01c90f7 100644 --- a/doc/Developing/SNMP-Traps.md +++ b/doc/Developing/SNMP-Traps.md @@ -1,6 +1,3 @@ -source: Developing/SNMP-Traps.md -path: blob/master/doc/ - # Creating snmp trap handlers You must have a working snmptrapd. See diff --git a/doc/Developing/Sensor-State-Support.md b/doc/Developing/Sensor-State-Support.md index 1c449c0bfa..dc34e2f0c5 100644 --- a/doc/Developing/Sensor-State-Support.md +++ b/doc/Developing/Sensor-State-Support.md @@ -1,6 +1,3 @@ -source: Developing/Sensor-State-Support.md -path: blob/master/doc/ - # Sensor State Support ### Introduction diff --git a/doc/Developing/Style-Guidelines.md b/doc/Developing/Style-Guidelines.md deleted file mode 100644 index 987b9c2c45..0000000000 --- a/doc/Developing/Style-Guidelines.md +++ /dev/null @@ -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 ``. - -- 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"; -``` diff --git a/doc/Developing/Support-New-OS.md b/doc/Developing/Support-New-OS.md index c0f5a0b773..37191be78f 100644 --- a/doc/Developing/Support-New-OS.md +++ b/doc/Developing/Support-New-OS.md @@ -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. diff --git a/doc/Developing/Using-Git.md b/doc/Developing/Using-Git.md index e30d393e33..74c97b4283 100644 --- a/doc/Developing/Using-Git.md +++ b/doc/Developing/Using-Git.md @@ -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. diff --git a/doc/Developing/Validating-Code.md b/doc/Developing/Validating-Code.md index 7037d5ac6e..ec0caabdbc 100644 --- a/doc/Developing/Validating-Code.md +++ b/doc/Developing/Validating-Code.md @@ -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 diff --git a/doc/Developing/index.md b/doc/Developing/index.md deleted file mode 100644 index 66b0b4d3a4..0000000000 --- a/doc/Developing/index.md +++ /dev/null @@ -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/) diff --git a/doc/Developing/os/Custom-Graphs.md b/doc/Developing/os/Custom-Graphs.md index 6bd6dfa24f..402cf01280 100644 --- a/doc/Developing/os/Custom-Graphs.md +++ b/doc/Developing/os/Custom-Graphs.md @@ -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) diff --git a/doc/Developing/os/Health-Information.md b/doc/Developing/os/Health-Information.md index 2a14d970cb..dd5e288ad4 100644 --- a/doc/Developing/os/Health-Information.md +++ b/doc/Developing/os/Health-Information.md @@ -1,6 +1,3 @@ -source: Developing/os/Health-Information.md -path: blob/master/doc/ - #### Sensors This document will guide you through adding health / sensor diff --git a/doc/Developing/os/Initial-Detection.md b/doc/Developing/os/Initial-Detection.md index e9683d9cec..df6883185f 100644 --- a/doc/Developing/os/Initial-Detection.md +++ b/doc/Developing/os/Initial-Detection.md @@ -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. diff --git a/doc/Developing/os/Mem-CPU-Information.md b/doc/Developing/os/Mem-CPU-Information.md index 0cf14f2472..fcbb3ab770 100644 --- a/doc/Developing/os/Mem-CPU-Information.md +++ b/doc/Developing/os/Mem-CPU-Information.md @@ -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. diff --git a/doc/Developing/os/Settings.md b/doc/Developing/os/Settings.md index 17d1393f88..a4b05acfe4 100644 --- a/doc/Developing/os/Settings.md +++ b/doc/Developing/os/Settings.md @@ -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 diff --git a/doc/Developing/os/Test-Units.md b/doc/Developing/os/Test-Units.md index 3b293a3218..e867d5b72e 100644 --- a/doc/Developing/os/Test-Units.md +++ b/doc/Developing/os/Test-Units.md @@ -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 diff --git a/doc/Developing/os/Wireless-Sensors.md b/doc/Developing/os/Wireless-Sensors.md index 596e1569b8..4b674594df 100644 --- a/doc/Developing/os/Wireless-Sensors.md +++ b/doc/Developing/os/Wireless-Sensors.md @@ -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. diff --git a/doc/Dockerfile b/doc/Dockerfile index e39e3950fb..e2b870d8df 100644 --- a/doc/Dockerfile +++ b/doc/Dockerfile @@ -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/* diff --git a/doc/Extensions/Agent-Setup.md b/doc/Extensions/Agent-Setup.md index 21054f2478..b5c1b63404 100644 --- a/doc/Extensions/Agent-Setup.md +++ b/doc/Extensions/Agent-Setup.md @@ -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 diff --git a/doc/Extensions/Alerting.md b/doc/Extensions/Alerting.md deleted file mode 100644 index c13df3427a..0000000000 --- a/doc/Extensions/Alerting.md +++ /dev/null @@ -1,3 +0,0 @@ -source: Extensions/Alerting.md -path: blob/master/doc/ - diff --git a/doc/Extensions/Applications.md b/doc/Extensions/Applications.md index a2a4664d1e..a22f0d0554 100644 --- a/doc/Extensions/Applications.md +++ b/doc/Extensions/Applications.md @@ -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. diff --git a/doc/Extensions/Authentication.md b/doc/Extensions/Authentication.md index db4003e1f7..f93bc0d7cf 100644 --- a/doc/Extensions/Authentication.md +++ b/doc/Extensions/Authentication.md @@ -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). diff --git a/doc/Extensions/Auto-Discovery.md b/doc/Extensions/Auto-Discovery.md index ec39f8ac57..1ab8f27531 100644 --- a/doc/Extensions/Auto-Discovery.md +++ b/doc/Extensions/Auto-Discovery.md @@ -1,6 +1,3 @@ -source: Extensions/Auto-Discovery.md -path: blob/master/doc/ - # Auto Discovery Support ## Getting Started diff --git a/doc/Extensions/Billing-Module.md b/doc/Extensions/Billing-Module.md index c458824e97..b262c93a83 100644 --- a/doc/Extensions/Billing-Module.md +++ b/doc/Extensions/Billing-Module.md @@ -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 diff --git a/doc/Extensions/Component.md b/doc/Extensions/Component.md index 28352e6c02..2f1eaaa470 100644 --- a/doc/Extensions/Component.md +++ b/doc/Extensions/Component.md @@ -1,6 +1,3 @@ -source: Extensions/Component.md -path: blob/master/doc/ - # About The Component extension provides a generic database storage mechanism diff --git a/doc/Extensions/Customizing-the-Web-UI.md b/doc/Extensions/Customizing-the-Web-UI.md index 99b4e9e18e..f596a0e921 100644 --- a/doc/Extensions/Customizing-the-Web-UI.md +++ b/doc/Extensions/Customizing-the-Web-UI.md @@ -1,6 +1,3 @@ -source: Extensions/Customizing-the-Web-UI.md -path: blob/master/doc/ - # Customizing the Web UI ## Custom menu entry diff --git a/doc/Extensions/Dashboards.md b/doc/Extensions/Dashboards.md index fa736d12bb..c67d71a55b 100644 --- a/doc/Extensions/Dashboards.md +++ b/doc/Extensions/Dashboards.md @@ -1,6 +1,3 @@ -source: Extensions/Dashboards.md -path: blob/master/doc/ - # Dashboards Create customised dashboards in LibreNMS per user. You can share diff --git a/doc/Extensions/Dell-OpenManage.md b/doc/Extensions/Dell-OpenManage.md index 084616fc9a..84796fd11b 100644 --- a/doc/Extensions/Dell-OpenManage.md +++ b/doc/Extensions/Dell-OpenManage.md @@ -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 diff --git a/doc/Extensions/Device-Groups.md b/doc/Extensions/Device-Groups.md index 7c0a69b66f..5c24ff6536 100644 --- a/doc/Extensions/Device-Groups.md +++ b/doc/Extensions/Device-Groups.md @@ -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 diff --git a/doc/Extensions/Dispatcher-Service.md b/doc/Extensions/Dispatcher-Service.md index bfe48a96a1..e2981dc06e 100644 --- a/doc/Extensions/Dispatcher-Service.md +++ b/doc/Extensions/Dispatcher-Service.md @@ -1,6 +1,3 @@ -source: Extensions/Dispatcher-Service.md -path: blob/master/doc/ - # Dispatcher Service > Status: Release Candidate diff --git a/doc/Extensions/Distributed-Poller.md b/doc/Extensions/Distributed-Poller.md index 49d73f6290..9ca0e1f41f 100644 --- a/doc/Extensions/Distributed-Poller.md +++ b/doc/Extensions/Distributed-Poller.md @@ -1,6 +1,3 @@ -source: Extensions/Distributed-Poller.md -path: blob/master/doc/ - # Distributed Poller A normal install contains all parts of LibreNMS: diff --git a/doc/Extensions/Email-Alerting.md b/doc/Extensions/Email-Alerting.md deleted file mode 100644 index 9e463b10a7..0000000000 --- a/doc/Extensions/Email-Alerting.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/doc/Extensions/Fast-Ping-Check.md b/doc/Extensions/Fast-Ping-Check.md index ef2953d666..d3583ceda1 100644 --- a/doc/Extensions/Fast-Ping-Check.md +++ b/doc/Extensions/Fast-Ping-Check.md @@ -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 diff --git a/doc/Extensions/Galera-Cluster.md b/doc/Extensions/Galera-Cluster.md index 4fb1cd403a..e8ed7d0dba 100644 --- a/doc/Extensions/Galera-Cluster.md +++ b/doc/Extensions/Galera-Cluster.md @@ -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. diff --git a/doc/Extensions/Gateone.md b/doc/Extensions/Gateone.md index 39e170fc08..839b754366 100644 --- a/doc/Extensions/Gateone.md +++ b/doc/Extensions/Gateone.md @@ -1,6 +1,3 @@ -source: Extensions/Gateone.md -path: blob/master/doc/ - # GateOne integration We have simple integration for diff --git a/doc/Extensions/Graphite.md b/doc/Extensions/Graphite.md deleted file mode 100644 index 7c31af8532..0000000000 --- a/doc/Extensions/Graphite.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/doc/Extensions/Graylog.md b/doc/Extensions/Graylog.md index cced1221c3..45843ad475 100644 --- a/doc/Extensions/Graylog.md +++ b/doc/Extensions/Graylog.md @@ -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 diff --git a/doc/Extensions/IRC-Bot-Extensions.md b/doc/Extensions/IRC-Bot-Extensions.md index 8e7653ef72..ed4b312098 100644 --- a/doc/Extensions/IRC-Bot-Extensions.md +++ b/doc/Extensions/IRC-Bot-Extensions.md @@ -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. diff --git a/doc/Extensions/IRC-Bot.md b/doc/Extensions/IRC-Bot.md index d99da32a99..6669e386f3 100644 --- a/doc/Extensions/IRC-Bot.md +++ b/doc/Extensions/IRC-Bot.md @@ -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 diff --git a/doc/Extensions/InfluxDB.md b/doc/Extensions/InfluxDB.md deleted file mode 100644 index 7b815facc4..0000000000 --- a/doc/Extensions/InfluxDB.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/doc/Extensions/Interface-Description-Parsing.md b/doc/Extensions/Interface-Description-Parsing.md index e9baae086b..1cc017954c 100644 --- a/doc/Extensions/Interface-Description-Parsing.md +++ b/doc/Extensions/Interface-Description-Parsing.md @@ -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. diff --git a/doc/Extensions/Metric-Storage.md b/doc/Extensions/Metric-Storage.md index c4b9cf7991..cbe8ffd78f 100644 --- a/doc/Extensions/Metric-Storage.md +++ b/doc/Extensions/Metric-Storage.md @@ -1,5 +1,3 @@ -source: Extensions/Metric-Storage.md -path: blob/master/doc/ hide_toc: true # Metric storage diff --git a/doc/Extensions/NFSen.md b/doc/Extensions/NFSen.md index 8dbb4d0b63..ce845c7b07 100644 --- a/doc/Extensions/NFSen.md +++ b/doc/Extensions/NFSen.md @@ -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 diff --git a/doc/Extensions/Network-Map.md b/doc/Extensions/Network-Map.md index 3729f732f0..1690a54939 100644 --- a/doc/Extensions/Network-Map.md +++ b/doc/Extensions/Network-Map.md @@ -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: diff --git a/doc/Extensions/OpenTSDB.md b/doc/Extensions/OpenTSDB.md deleted file mode 100644 index fe0067b505..0000000000 --- a/doc/Extensions/OpenTSDB.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/doc/Extensions/Oxidized.md b/doc/Extensions/Oxidized.md index e7d6383cec..b29d53dede 100644 --- a/doc/Extensions/Oxidized.md +++ b/doc/Extensions/Oxidized.md @@ -1,6 +1,3 @@ -source: Extensions/Oxidized.md -path: blob/master/doc/ - # Oxidized Integrating LibreNMS with diff --git a/doc/Extensions/PeeringDB.md b/doc/Extensions/PeeringDB.md index c84ea5b21b..07429bde07 100644 --- a/doc/Extensions/PeeringDB.md +++ b/doc/Extensions/PeeringDB.md @@ -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 diff --git a/doc/Extensions/Plugin-System.md b/doc/Extensions/Plugin-System.md index ceb81391d7..14651994ba 100644 --- a/doc/Extensions/Plugin-System.md +++ b/doc/Extensions/Plugin-System.md @@ -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 diff --git a/doc/Extensions/Poller-Service.md b/doc/Extensions/Poller-Service.md deleted file mode 100644 index df35a311d2..0000000000 --- a/doc/Extensions/Poller-Service.md +++ /dev/null @@ -1,3 +0,0 @@ -source: Extensions/Poller-Service.md -path: blob/master/doc/ - diff --git a/doc/Extensions/Port-Description-Parser.md b/doc/Extensions/Port-Description-Parser.md deleted file mode 100644 index 8ba4538bf2..0000000000 --- a/doc/Extensions/Port-Description-Parser.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/doc/Extensions/Prometheus.md b/doc/Extensions/Prometheus.md deleted file mode 100644 index 5270be4fbf..0000000000 --- a/doc/Extensions/Prometheus.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/doc/Extensions/Proxmox.md b/doc/Extensions/Proxmox.md index fe6333f699..6f4d603d82 100644 --- a/doc/Extensions/Proxmox.md +++ b/doc/Extensions/Proxmox.md @@ -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 diff --git a/doc/Extensions/RRDCached-Security.md b/doc/Extensions/RRDCached-Security.md deleted file mode 100644 index 59d447a0fd..0000000000 --- a/doc/Extensions/RRDCached-Security.md +++ /dev/null @@ -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` diff --git a/doc/Extensions/RRDCached.md b/doc/Extensions/RRDCached.md index ce9ed8ac05..5de00a1617 100644 --- a/doc/Extensions/RRDCached.md +++ b/doc/Extensions/RRDCached.md @@ -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` diff --git a/doc/Extensions/RRDTune.md b/doc/Extensions/RRDTune.md index 1b73403f0a..d1bbc6d0a5 100644 --- a/doc/Extensions/RRDTune.md +++ b/doc/Extensions/RRDTune.md @@ -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 diff --git a/doc/Extensions/Rancid.md b/doc/Extensions/Rancid.md index b06e882e14..7e3824be14 100644 --- a/doc/Extensions/Rancid.md +++ b/doc/Extensions/Rancid.md @@ -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 diff --git a/doc/Extensions/SNMP-Proxy.md b/doc/Extensions/SNMP-Proxy.md index ab3f5dcc53..9f22608de9 100644 --- a/doc/Extensions/SNMP-Proxy.md +++ b/doc/Extensions/SNMP-Proxy.md @@ -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 diff --git a/doc/Extensions/SNMP-Trap-Handler.md b/doc/Extensions/SNMP-Trap-Handler.md index d6f46c402b..47d1c364b8 100644 --- a/doc/Extensions/SNMP-Trap-Handler.md +++ b/doc/Extensions/SNMP-Trap-Handler.md @@ -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 diff --git a/doc/Extensions/Services.md b/doc/Extensions/Services.md index 8e2d4423cb..42560ffc12 100644 --- a/doc/Extensions/Services.md +++ b/doc/Extensions/Services.md @@ -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 diff --git a/doc/Extensions/Smokeping.md b/doc/Extensions/Smokeping.md index 90689222d5..94b89642f8 100644 --- a/doc/Extensions/Smokeping.md +++ b/doc/Extensions/Smokeping.md @@ -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 diff --git a/doc/Extensions/Sub-Directory.md b/doc/Extensions/Sub-Directory.md index 24bca910cf..6edf398063 100644 --- a/doc/Extensions/Sub-Directory.md +++ b/doc/Extensions/Sub-Directory.md @@ -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 diff --git a/doc/Extensions/Supermicro.md b/doc/Extensions/Supermicro.md index 8ef8aa8eb3..f7d52e4439 100644 --- a/doc/Extensions/Supermicro.md +++ b/doc/Extensions/Supermicro.md @@ -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. diff --git a/doc/Extensions/Syslog.md b/doc/Extensions/Syslog.md index 3d4b9e57d7..a26807f0cb 100644 --- a/doc/Extensions/Syslog.md +++ b/doc/Extensions/Syslog.md @@ -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. diff --git a/doc/Extensions/Two-Factor-Auth.md b/doc/Extensions/Two-Factor-Auth.md index 8560e3777a..70254bf92b 100644 --- a/doc/Extensions/Two-Factor-Auth.md +++ b/doc/Extensions/Two-Factor-Auth.md @@ -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 diff --git a/doc/Extensions/Varnish.md b/doc/Extensions/Varnish.md index 7d18a44aaf..fdc2824b1f 100644 --- a/doc/Extensions/Varnish.md +++ b/doc/Extensions/Varnish.md @@ -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. diff --git a/doc/Extensions/Weathermap.md b/doc/Extensions/Weathermap.md index 577e8007a9..ac7f387aa6 100644 --- a/doc/Extensions/Weathermap.md +++ b/doc/Extensions/Weathermap.md @@ -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 diff --git a/doc/Extensions/World-Map.md b/doc/Extensions/World-Map.md index 63447316e3..a491778021 100644 --- a/doc/Extensions/World-Map.md +++ b/doc/Extensions/World-Map.md @@ -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 diff --git a/doc/Extensions/metrics/Graphite.md b/doc/Extensions/metrics/Graphite.md index d8a2d1d468..728df1a4d5 100644 --- a/doc/Extensions/metrics/Graphite.md +++ b/doc/Extensions/metrics/Graphite.md @@ -1,6 +1,3 @@ -source: Extensions/metrics/Graphite.md -path: blob/master/doc/ - # Enabling support for Graphite This module sends all metrics to a remote graphite service. You need diff --git a/doc/Extensions/metrics/InfluxDB.md b/doc/Extensions/metrics/InfluxDB.md index 883db781f8..223c4859e1 100644 --- a/doc/Extensions/metrics/InfluxDB.md +++ b/doc/Extensions/metrics/InfluxDB.md @@ -1,6 +1,3 @@ -source: Extensions/metrics/InfluxDB.md -path: blob/master/doc/ - # Enabling support for InfluxDB Before we get started it is important that you know and understand diff --git a/doc/Extensions/metrics/OpenTSDB.md b/doc/Extensions/metrics/OpenTSDB.md index b8474d2df9..707ec87629 100644 --- a/doc/Extensions/metrics/OpenTSDB.md +++ b/doc/Extensions/metrics/OpenTSDB.md @@ -1,6 +1,3 @@ -source: Extensions/metrics/OpenTSDB.md -path: blob/master/doc/ - # Enabling support for OpenTSDB This module sends all metrics to OpenTSDB server. You need something diff --git a/doc/Extensions/metrics/Prometheus.md b/doc/Extensions/metrics/Prometheus.md index 918510e770..e991c88beb 100644 --- a/doc/Extensions/metrics/Prometheus.md +++ b/doc/Extensions/metrics/Prometheus.md @@ -1,6 +1,3 @@ -source: Extensions/metrics/Prometheus.md -path: blob/master/doc/ - # Enabling support for Prometheus Please be aware Prometheus support is alpha at best, It hasn't been diff --git a/doc/General/Acknowledgement.md b/doc/General/Acknowledgement.md index 3cd6fa5549..725b2d8eef 100644 --- a/doc/General/Acknowledgement.md +++ b/doc/General/Acknowledgement.md @@ -16,11 +16,8 @@ We list below what we make use of including the license compliance. - [Twitter typeahead](https://github.com/corejavascript/typeahead.js): Open License - [Vis](http://visjs.org/): MIT / Apache 2.0 - [TCPDF](http://www.tcpdf.org): LGPLv3 -- [Bootstrap 3 - Datepicker](http://eonasdan.github.io/bootstrap-datetimepicker/): - MIT -- [Bootstrap Dropdown Hover - Plugin](https://github.com/CWSpear/bootstrap-hover-dropdown): MIT +- [Bootstrap 3 Datepicker](http://eonasdan.github.io/bootstrap-datetimepicker/):MIT +- [Bootstrap Dropdown Hover Plugin](https://github.com/CWSpear/bootstrap-hover-dropdown): MIT - [Bootstrap Switch](http://www.bootstrap-switch.org/): Apache 2.0 - [Handlebars](http://handlebarsjs.com/): Open License - [Cycle2](http://jquery.malsup.com/cycle2/): MIT/GPL @@ -34,10 +31,8 @@ We list below what we make use of including the license compliance. - [Gridster](http://gridster.net/): MIT - [Pure PHP radius class](http://developer.sysco.ch/php/): GPLv3 - [GeSHi - Generic Syntax Highlighter](http://qbnz.com/highlighter/): GPLv2+ -- MalaysiaMap.svg - By Exiang [CC BY - 3.0](http://creativecommons.org/licenses/by/3.0), via Wikimedia Commons -- Code for UBNT Devices Mark Gibbons Initial - code base submitted via PR721 +- MalaysiaMap.svg - By Exiang [CC BY 3.0](http://creativecommons.org/licenses/by/3.0), via Wikimedia Commons +- Code for UBNT Devices Mark Gibbons Initial code base submitted via PR721 - [Jquery LazyLoad](http://www.appelsiini.net/projects/lazyload): MIT License - [influxdb-php](https://github.com/influxdb/influxdb-php): MIT License - [HTML Purifier](http://htmlpurifier.org/): LGPL v2.1 @@ -52,8 +47,7 @@ We list below what we make use of including the license compliance. - [jQuery.extendext](https://github.com/mistic100/jQuery.extendext): MIT - [doT](https://github.com/olado/doT): MIT - [jQuery-queryBuilder](https://github.com/mistic100/jQuery-QueryBuilder/): MIT -- [sql-parser](https://github.com/mistic100/sql-parser/): MIT - (Currently a custom build is used) +- [sql-parser](https://github.com/mistic100/sql-parser/): MIT (Currently a custom build is used) ## 3rd Party GPLv3 Non-compliant @@ -61,4 +55,4 @@ We list below what we make use of including the license compliance. - MIBS (mibs): unknown/various - html/graph-realtime.php: BSD (original?) - html/includes/collectd/: GPLv2 only -- overLIB (html/js/overlib_mini.js): modified Artistic 1.0? +- overLIB (html/js/overlib_mini.js): modified Artistic 1.0? \ No newline at end of file diff --git a/doc/General/CODE_OF_CONDUCT.md b/doc/General/CODE_OF_CONDUCT.md deleted file mode 100644 index 842a83275e..0000000000 --- a/doc/General/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,79 +0,0 @@ -source: General/CODE_OF_CONDUCT.md -path: blob/master/doc/ - -# Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our -project and our community a harassment-free experience for everyone, -regardless of age, body size, disability, ethnicity, gender identity -and expression, level of experience, nationality, personal appearance, -race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or - electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in - a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of -acceptable behavior and are expected to take appropriate and fair -corrective action in response to any instances of unacceptable -behavior. - -Project maintainers have the right and responsibility to remove, edit, -or reject comments, commits, code, wiki edits, issues, and other -contributions that are not aligned to this Code of Conduct, or to ban -temporarily or permanently any contributor for other behaviors that -they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public -spaces when an individual is representing the project or its -community. Examples of representing a project or community include -using an official project e-mail address, posting via an official -social media account, or acting as an appointed representative at an -online or offline event. Representation of a project may be further -defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior -may be reported by contacting the project team at -team@librenms.org. The project team will review and investigate all -complaints, and will respond in a way that it deems appropriate to the -circumstances. The project team is obligated to maintain -confidentiality with regard to the reporter of an incident. Further -details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct -in good faith may face temporary or permanent repercussions as -determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor -Covenant][homepage], version 1.4, available at -[http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/doc/General/Callback-Stats-and-Privacy.md b/doc/General/Callback-Stats-and-Privacy.md index fab66d42b0..51d6377c62 100644 --- a/doc/General/Callback-Stats-and-Privacy.md +++ b/doc/General/Callback-Stats-and-Privacy.md @@ -1,6 +1,3 @@ -source: General/Callback-Stats-and-Privacy.md -path: blob/master/doc/ - # Submitting Stats ## Stats data and your privacy @@ -44,28 +41,6 @@ do with that data. - We use it to help prioritise issues and features that need to be worked on. - We use sysDescr and sysObjectID to create unit tests and improve OS discovery -## Questions? - -- **Q.** How often is data submitted? **A.** We submit the data once a - day according to running daily.sh via cron. If you disable this then - opting in will not have any affect. -- **Q.** Where can I see the data I submitted? **A.** You can't see - the data raw, but we collate all of the data together and provide a - dynamic site so you can see the results of all contributed stats - [here](https://stats.librenms.org) -- **Q.** I want my data removed. **A.** That's easy, simply press - 'Clear remote stats' in the About LibreNMS page of your control - panel, the next time the call back script is run it will remove all - the data we have. -- **Q.** I clicked the 'Clear remote stats' button by accident. **A.** - No problem, before daily.sh runs again - just opt back in, all of - your existing data will stay. - -Hopefully this answers the questions you might have on why and what we -are doing here, if not, please pop into our [discord -server](https://t.libren.ms/discord) or community forum and ask any -questions you like. - ## How do I enable stats submission? If you're happy with all of this - please consider switching the call @@ -75,3 +50,27 @@ switch to enable / disable the feature. If you've previously had it switched on and want to opt out and remove your data, click the 'Clear remote stats' button and on the next submission all the data you've sent us will be removed! + + +## Questions? + +### How often is data submitted? +We submit the data once a day according to running daily.sh via cron. +If you disable this then opting in will not have any affect. + +### Where can I see the data I submitted? +You can't see the data raw, but we collate all of the data together and provide a +dynamic site so you can see the results of all contributed stats [here](https://stats.librenms.org) + +### I want my data removed. +That's easy, simply press 'Clear remote stats' in the About LibreNMS page of your control +panel, the next time the call back script is run it will remove all the data we have. + +### I clicked the 'Clear remote stats' button by accident. +No problem, before daily.sh runs again - just opt back in, all of +your existing data will stay. + +Hopefully this answers the questions you might have on why and what we +are doing here, if not, please pop into our [discord +server](https://t.libren.ms/discord) or community forum and ask any +questions you like. diff --git a/doc/General/Changelogs/2017.md b/doc/General/Changelogs/2017.md index 10e6a6e2e6..8c66d4048b 100644 --- a/doc/General/Changelogs/2017.md +++ b/doc/General/Changelogs/2017.md @@ -278,7 +278,6 @@ --- -source: General/Changelog.md ## 1.32 *(2017-10-01)* diff --git a/doc/General/Changelogs/2019.md b/doc/General/Changelogs/2019.md index 12312dc58e..fbbe01c1e9 100644 --- a/doc/General/Changelogs/2019.md +++ b/doc/General/Changelogs/2019.md @@ -1,4 +1,3 @@ - ## 1.59 *(2020-01-04)* diff --git a/doc/General/Contributing.md b/doc/General/Contributing.md deleted file mode 100644 index 7059c98c16..0000000000 --- a/doc/General/Contributing.md +++ /dev/null @@ -1,3 +0,0 @@ -source: General/Contributing.md -path: blob/master/doc/ - diff --git a/doc/General/Credits.md b/doc/General/Credits.md deleted file mode 100644 index ce48bfced1..0000000000 --- a/doc/General/Credits.md +++ /dev/null @@ -1,3 +0,0 @@ -source: General/Credits.md -path: blob/master/doc/ - \ No newline at end of file diff --git a/doc/General/Releases.md b/doc/General/Releases.md index 2fe8e0aebc..9be09cf65b 100644 --- a/doc/General/Releases.md +++ b/doc/General/Releases.md @@ -1,6 +1,3 @@ -source: General/Releases.md -path: blob/master/doc/ - # Choosing a release We try to ensure that breaking changes aren't introduced by utilising diff --git a/doc/General/Security.md b/doc/General/Security.md index 557e84a6cb..848a925ca2 100644 --- a/doc/General/Security.md +++ b/doc/General/Security.md @@ -1,6 +1,3 @@ -source: General/Security.md -path: blob/master/doc/ - # General Like any good software we take security seriously. However, bugs do diff --git a/doc/General/Updating.md b/doc/General/Updating.md index b57fc9c5a4..1662fd1a4a 100644 --- a/doc/General/Updating.md +++ b/doc/General/Updating.md @@ -1,6 +1,3 @@ -source: General/Updating.md -path: blob/master/doc/ - # Updating an Install By default, LibreNMS is set to automatically update. If you have diff --git a/doc/General/Welcome-to-Observium-users.md b/doc/General/Welcome-to-Observium-users.md index c502ee2772..706efafa74 100644 --- a/doc/General/Welcome-to-Observium-users.md +++ b/doc/General/Welcome-to-Observium-users.md @@ -1,6 +1,3 @@ -source: General/Welcome-to-Observium-users.md -path: blob/master/doc/ - LibreNMS is a fork of Observium. The reason for the fork has nothing to do with Observium's [move to community vs. paid versions][1]. It is simply that we have different priorities and values to the Observium development @@ -58,7 +55,7 @@ Reasons why you might want to use LibreNMS instead of Observium: "Free Software Foundation - what is free software?" [7]: http://libertysys.com.au/blog/observium-and-gpl "Paul's blog on what the GPL offers users" -[8]: ../General/Contributing.md +[8]: ../Developing/Getting-Started.md "Contribution guidelines" [9]: https://community.librenms.org "LibreNMS issue database at GitHub" diff --git a/doc/Installation/CentOS-image.md b/doc/Installation/CentOS-image.md deleted file mode 100644 index b843b6fa7f..0000000000 --- a/doc/Installation/CentOS-image.md +++ /dev/null @@ -1,3 +0,0 @@ -source: Installation/CentOS-image.md -path: blob/master/doc/ - \ No newline at end of file diff --git a/doc/Installation/Docker.md b/doc/Installation/Docker.md new file mode 100644 index 0000000000..28e8ab6079 --- /dev/null +++ b/doc/Installation/Docker.md @@ -0,0 +1,5 @@ +# Docker + +An official LibreNMS docker image based on Alpine Linux and Nginx is available +on [DockerHub](https://hub.docker.com/r/librenms/librenms/). +Documentation can be found on the [GitHub repository](https://github.com/librenms/docker). diff --git a/doc/Installation/Images.md b/doc/Installation/Images.md index c1c3d0d190..e017f537f6 100644 --- a/doc/Installation/Images.md +++ b/doc/Installation/Images.md @@ -1,4 +1,3 @@ - # LibreNMS VMs > NOTE: We highly advise that you change all passwords on this image diff --git a/doc/Installation/Install-LibreNMS.md b/doc/Installation/Install-LibreNMS.md index 73014f1bae..f1fa4b791c 100644 --- a/doc/Installation/Install-LibreNMS.md +++ b/doc/Installation/Install-LibreNMS.md @@ -1,6 +1,3 @@ -source: Installation/Install-LibreNMS.md -path: blob/master/doc/ - # Install LibreNMS ## Prepare Linux Server @@ -418,7 +415,7 @@ Feel free to tune the performance settings in librenms.conf to meet your needs. dnf install policycoreutils-python-utils ``` - ### Configure the contexts needed by LibreNMS +

Configure the contexts needed by LibreNMS

``` semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?' @@ -430,7 +427,7 @@ Feel free to tune the performance settings in librenms.conf to meet your needs. chcon -t httpd_sys_rw_content_t /opt/librenms/.env ``` - ### Allow fping +

Allow fping

Create the file http_fping.tt with the following contents. You can create this file anywhere, as it is a throw-away file. The last step @@ -584,7 +581,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installation-CentOS-6-Apache-Nginx.md b/doc/Installation/Installation-CentOS-6-Apache-Nginx.md index 745c61958b..cc07e0f58a 100644 --- a/doc/Installation/Installation-CentOS-6-Apache-Nginx.md +++ b/doc/Installation/Installation-CentOS-6-Apache-Nginx.md @@ -1,6 +1,3 @@ -source: Installation/Installation-CentOS-6-Apache-Nginx.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root diff --git a/doc/Installation/Installation-CentOS-7-Apache.md b/doc/Installation/Installation-CentOS-7-Apache.md index 37dcaccdd2..b4fac7bc48 100644 --- a/doc/Installation/Installation-CentOS-7-Apache.md +++ b/doc/Installation/Installation-CentOS-7-Apache.md @@ -1,6 +1,3 @@ -source: Installation/Installation-CentOS-7-Apache.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root @@ -346,7 +343,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installation-CentOS-7-Nginx.md b/doc/Installation/Installation-CentOS-7-Nginx.md index 79d2461566..04816164b8 100644 --- a/doc/Installation/Installation-CentOS-7-Nginx.md +++ b/doc/Installation/Installation-CentOS-7-Nginx.md @@ -1,6 +1,3 @@ -source: Installation/Installation-CentOS-7-Nginx.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root @@ -332,7 +329,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installation-Debian-11-Nginx.md b/doc/Installation/Installation-Debian-11-Nginx.md deleted file mode 100644 index 13c691c92b..0000000000 --- a/doc/Installation/Installation-Debian-11-Nginx.md +++ /dev/null @@ -1,248 +0,0 @@ -source: Installation/Installation-Debian-11-Nginx.md -path: blob/master/doc/ - -> NOTE: These instructions assume you are the **root** user. If you -> are not, prepend `sudo` to the shell commands (the ones that aren't -> at `mysql>` prompts) or temporarily become a user with root -> privileges with `sudo -s` or `sudo -i`. - -**Please note the minimum supported PHP version is @= php.version_min =@** - -# Install Required Packages - -```bash -apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python-memcache python-mysqldb rrdtool snmp snmpd whois python3-pip python3-pymysql python3-dotenv python3-redis python3-setuptools -``` - -# Add librenms user - -```bash -useradd librenms -d /opt/librenms -M -r -usermod -a -G librenms www-data -``` - -# Download LibreNMS - -```bash - cd /opt - git clone https://github.com/librenms/librenms.git -``` - -# Set permissions - -```bash -chown -R librenms:librenms /opt/librenms -chmod 770 /opt/librenms -setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ -setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ -``` - -# Install PHP dependencies - -```bash -su - librenms -./scripts/composer_wrapper.php install --no-dev -exit -``` - -# DB Server - -## Configure MySQL - -```bash -service mysql restart -mysql -uroot -p -``` - -> NOTE: Please change the 'password' below to something secure. - -```sql -CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password'; -GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; -FLUSH PRIVILEGES; -exit -``` - -```bash -nano /etc/mysql/mariadb.conf.d/50-server.cnf -``` - -Within the `[mysqld]` section please add: - -```bash -innodb_file_per_table=1 -lower_case_table_names=0 -``` - -```bash -service mysql restart -``` - -# Web Server - -## Configure and Start PHP-FPM - -Ensure date.timezone is set in php.ini to your preferred time zone. -See for a list of supported -timezones. Valid examples are: "America/New_York", -"Australia/Brisbane", "Etc/UTC". - -```bash -nano /etc/php/7.4/fpm/php.ini -nano /etc/php/7.4/cli/php.ini -``` - -```bash -service php7.4-fpm restart -``` - -## Configure NGINX - -```bash -rm /etc/nginx/sites-enabled/default -nano /etc/nginx/sites-available/librenms.vhost -``` - -Add the following config, edit `server_name` as required: - -```nginx -server { - listen 80; - server_name librenms.example.com; - root /opt/librenms/html; - index index.php; - - charset utf-8; - gzip on; - gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; - - proxy_read_timeout 300; - proxy_connect_timeout 300; - proxy_send_timeout 300; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - location /api/v0 { - try_files $uri $uri/ /api_v0.php?$query_string; - } - location ~ \.php { - include fastcgi.conf; - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; - } - location ~ /\.ht { - deny all; - } -} -``` - -```bash -ln -s /etc/nginx/sites-available/librenms.vhost /etc/nginx/sites-enabled/librenms.vhost -service nginx reload -``` - -# Configure snmpd - -```bash -cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf -chmod 600 /etc/snmp/snmpd.conf -nano /etc/snmp/snmpd.conf -``` - -Edit the text which says `RANDOMSTRINGGOESHERE` and set your own community string. - -```bash -curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -chmod +x /usr/bin/distro -service snmpd restart -``` - -# Cron job - -```bash -cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms -``` - -> NOTE: Keep in mind that cron, by default, only uses a very limited -> set of environment variables. You may need to configure proxy -> variables for the cron invocation. Alternatively adding the proxy -> settings in config.php is possible too. The config.php file will be -> created in the upcoming steps. Review the following URL after you -> finished librenms install steps: -> <@= config.site_url =@/Support/Configuration/#proxy-support> - -# Copy logrotate config - -LibreNMS keeps logs in `/opt/librenms/logs`. Over time these can -become large and be rotated out. To rotate out the old logs you can -use the provided logrotate config file: - -```bash -cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms -``` - -# Web installer - -Now head to the web installer and follow the on-screen instructions. - - - -The web installer might prompt you to create a `config.php` file in -your librenms install location manually, copying the content displayed -on-screen to the file. If you have to do this, please remember to set -the permissions on config.php after you copied the on-screen contents -to the file. Run: - -```bash -chown librenms:librenms /opt/librenms/config.php -``` - -# Final steps - -That's it! You now should be able to log in to -. Please note that we have not covered -HTTPS setup in this example, so your LibreNMS install is not secure by -default. Please do not expose it to the public Internet unless you -have configured HTTPS and taken appropriate web server hardening -steps. - -# Add the first device - -We now suggest that you add localhost as your first device from within -the WebUI. - -# Troubleshooting - -If you ever have issues with your install, run validate.php as root in -the librenms directory: - -```bash -cd /opt/librenms -./validate.php -``` - -There are various options for getting help listed on the LibreNMS web -site: - -# What next? - -Now that you've installed LibreNMS, we'd suggest that you have a read -of a few other docs to get you going: - -- [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) -- [Device Groups](../Extensions/Device-Groups.md) -- [Auto discovery](../Extensions/Auto-Discovery.md) - -# Closing - -We hope you enjoy using LibreNMS. If you do, it would be great if you -would consider opting into the stats system we have, please see [this -page](../General/Callback-Stats-and-Privacy.md) on -what it is and how to enable it. - -If you would like to help make LibreNMS better there are [many ways to -help](../Support/FAQ.md#a-namefaq9-what-can-i-do-to-helpa). You -can also [back LibreNMS on Open Collective](https://t.libren.ms/donations). diff --git a/doc/Installation/Installation-Ubuntu-1604-Apache.md b/doc/Installation/Installation-Ubuntu-1604-Apache.md index ad9eb41323..bc2a6497cb 100644 --- a/doc/Installation/Installation-Ubuntu-1604-Apache.md +++ b/doc/Installation/Installation-Ubuntu-1604-Apache.md @@ -1,6 +1,3 @@ -source: Installation/Installation-Ubuntu-1604-Apache.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root @@ -210,7 +207,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installation-Ubuntu-1604-Nginx.md b/doc/Installation/Installation-Ubuntu-1604-Nginx.md index 3b165dd12b..88f5a67ade 100644 --- a/doc/Installation/Installation-Ubuntu-1604-Nginx.md +++ b/doc/Installation/Installation-Ubuntu-1604-Nginx.md @@ -1,6 +1,3 @@ -source: Installation/Installation-Ubuntu-1604-Nginx.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root @@ -223,7 +220,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installation-Ubuntu-1804-Apache.md b/doc/Installation/Installation-Ubuntu-1804-Apache.md index cc652cd123..618ad717a3 100644 --- a/doc/Installation/Installation-Ubuntu-1804-Apache.md +++ b/doc/Installation/Installation-Ubuntu-1804-Apache.md @@ -1,6 +1,3 @@ -source: Installation/Installation-Ubuntu-1804-Apache.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root @@ -221,7 +218,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installation-Ubuntu-1804-Nginx.md b/doc/Installation/Installation-Ubuntu-1804-Nginx.md index 3c3d60a3ce..771496ff99 100644 --- a/doc/Installation/Installation-Ubuntu-1804-Nginx.md +++ b/doc/Installation/Installation-Ubuntu-1804-Nginx.md @@ -1,6 +1,3 @@ -source: Installation/Installation-Ubuntu-1804-Nginx.md -path: blob/master/doc/ - > NOTE: These instructions assume you are the **root** user. If you > are not, prepend `sudo` to the shell commands (the ones that aren't > at `mysql>` prompts) or temporarily become a user with root @@ -247,7 +244,7 @@ Now that you've installed LibreNMS, we'd suggest that you have a read of a few other docs to get you going: - [Performance tuning](../Support/Performance.md) -- [Alerting](../Extensions/Alerting.md) +- [Alerting](../Alerting/index.md) - [Device Groups](../Extensions/Device-Groups.md) - [Auto discovery](../Extensions/Auto-Discovery.md) diff --git a/doc/Installation/Installing-LibreNMS.md b/doc/Installation/Installing-LibreNMS.md deleted file mode 100644 index 1a190c0988..0000000000 --- a/doc/Installation/Installing-LibreNMS.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/doc/Installation/Migrating-from-Observium.md b/doc/Installation/Migrating-from-Observium.md index da3c85fa20..53edec4c5b 100644 --- a/doc/Installation/Migrating-from-Observium.md +++ b/doc/Installation/Migrating-from-Observium.md @@ -1,6 +1,3 @@ -source: Installation/Migrating-from-Observium.md -path: blob/master/doc/ - A LibreNMS user, [Dan](https://twitter.com/thedanbrown), has kindly provided full details and scripts to be able to migrate from Observium to LibreNMS. diff --git a/doc/Installation/Ubuntu-image.md b/doc/Installation/Ubuntu-image.md deleted file mode 100644 index 4bca337943..0000000000 --- a/doc/Installation/Ubuntu-image.md +++ /dev/null @@ -1,3 +0,0 @@ -source: Installation/Ubuntu-image.md -path: blob/master/doc/ - \ No newline at end of file diff --git a/doc/Installation/index.md b/doc/Installation/index.md deleted file mode 100644 index 766a535e50..0000000000 --- a/doc/Installation/index.md +++ /dev/null @@ -1,42 +0,0 @@ -source: Installation/index.md -path: blob/master/doc/ - -# Installing LibreNMS - -## Docker - -An official LibreNMS docker image based on Alpine Linux and Nginx is available -on [DockerHub](https://hub.docker.com/r/librenms/librenms/). Documentation can -be found on the [GitHub repository](https://github.com/librenms/docker). - -## Manually - -If you want to install manually then we have some documentation which should make it easy. - -This document includes instructions for: - - - Ubuntu 20.04 - - RHEL / CentOS 8 - - Debian 11 - -** [Install LibreNMS](Install-LibreNMS.md) ** - -## Images - -We have some pre-built VirtualBox images you can use to get started: - -- [Virtual Machines](Images) - - -## Old Install Docs - -These install docs are no longer updated and may result in an unsuccessful install. - -- [Ubuntu 18.04 Apache](Installation-Ubuntu-1804-Apache/) -- [Ubuntu 18.04 Nginx](Installation-Ubuntu-1804-Nginx/) -- [Debian 11 Nginx](Installation-Debian-11-Nginx/) -- [RHEL / CentOS 7 Apache](Installation-CentOS-7-Apache/) -- [RHEL / CentOS 7 Nginx](Installation-CentOS-7-Nginx/) -- [Ubuntu 16.04 Apache](Installation-Ubuntu-1604-Apache/) -- [Ubuntu 16.04 Nginx](Installation-Ubuntu-1604-Nginx/) -- [RHEL / CentOS 6](Installation-CentOS-6-Apache-Nginx/) diff --git a/doc/Support/1-Minute-Polling.md b/doc/Support/1-Minute-Polling.md index d29c04cded..2c78cb79ad 100644 --- a/doc/Support/1-Minute-Polling.md +++ b/doc/Support/1-Minute-Polling.md @@ -1,6 +1,3 @@ -source: Support/1-Minute-Polling.md -path: blob/master/doc/ - # 1-Minute Polling We now have support for polling data at intervals to fit your needs. diff --git a/doc/Support/Adding-a-Device.md b/doc/Support/Adding-a-Device.md index 83c6d43269..a82ddf3c61 100644 --- a/doc/Support/Adding-a-Device.md +++ b/doc/Support/Adding-a-Device.md @@ -1,12 +1,23 @@ -source: Support/Adding-a-Device.md -path: blob/master/doc/ - # Adding Device You have two options for adding a new device into LibreNMS. You can add a device via the `cli` or by using the `WebUI`. -## CLI +## Via WebUI + +Using the web interface, go to Devices and click Add Device. Enter the +details required for the device that you want to add and then click +'Add Host'. As an example, if your device is configured to use the +community `my_company` using snmp `v2c` then you would enter: SNMP +Port defaults to 161. + +By default Hostname will be used for polling data. If you want +to get polling Device data via a specific IP-Address (e.g. Management IP) +fill out the optional field `Overwrite IP` with it's IP-Address. + +![Add device](/img/webui_add_device.png) + +## Via CLI Using the command line via ssh you can add a new device by changing to the directory of your LibreNMS install and typing (be sure to put the @@ -41,20 +52,6 @@ Alternative: > Please note that if the community contains special characters such > as `$` then you will need to wrap it in `'`. I.e: `'Pa$$w0rd'`. -## WebUI - -Using the web interface, go to Devices and click Add Device. Enter the -details required for the device that you want to add and then click -'Add Host'. As an example, if your device is configured to use the -community `my_company` using snmp `v2c` then you would enter: SNMP -Port defaults to 161. - -By default Hostname will be used for polling data. If you want -to get polling Device data via a specific IP-Address (e.g. Management IP) -fill out the optional field `Overwrite IP` with it's IP-Address. - -![Add device](/img/webui_add_device.png) - ## Ping Only Device You can add ping only devices into LibreNMS through the WebUI or CLI. When diff --git a/doc/Support/Bare-Dashboard.md b/doc/Support/Bare-Dashboard.md index 8c1fae3481..257c02e7c4 100644 --- a/doc/Support/Bare-Dashboard.md +++ b/doc/Support/Bare-Dashboard.md @@ -1,6 +1,3 @@ -source: Support/Bare-Dashboard.md -path: blob/master/doc/ - # Bare Dashboard Settings to assist with wall/monitor displays. diff --git a/doc/Support/CLI-Tools.md b/doc/Support/CLI-Tools.md index e4b9b21e39..9c35ac5bb3 100644 --- a/doc/Support/CLI-Tools.md +++ b/doc/Support/CLI-Tools.md @@ -1,6 +1,3 @@ -source: Support/CLI-Tools.md -path: blob/master/doc/ - # Command line tools Here's a brief list of command line tools, some might be missing. diff --git a/doc/Support/Cleanup-options.md b/doc/Support/Cleanup-options.md index 7a1abc9ce8..e17a04c61f 100644 --- a/doc/Support/Cleanup-options.md +++ b/doc/Support/Cleanup-options.md @@ -1,6 +1,3 @@ -source: Support/Cleanup-options.md -path: blob/master/doc/ - # Cleanup Options As the number of devices starts to grow in your LibreNMS install, so diff --git a/doc/Support/Configuration.md b/doc/Support/Configuration.md index 4c93fb3cea..ff58423809 100644 --- a/doc/Support/Configuration.md +++ b/doc/Support/Configuration.md @@ -1,6 +1,3 @@ -source: Support/Configuration.md -path: blob/master/doc/ - # Configuration Docs LibreNMS configuration is a set of key values. @@ -637,7 +634,7 @@ lnms config:set enable_vrfs true # Enable VRFs ## Port extensions -Please refer to [Port-Description-Parser](../Extensions/Port-Description-Parser.md) +Please refer to [Port-Description-Parser](../Extensions/Interface-Description-Parsing.md) ```bash lnms config:set enable_ports_etherlike false diff --git a/doc/Support/Device-Notes/AsuswrtMerlin.md b/doc/Support/Device-Notes/AsuswrtMerlin.md index 6c9fa9a924..512763318c 100644 --- a/doc/Support/Device-Notes/AsuswrtMerlin.md +++ b/doc/Support/Device-Notes/AsuswrtMerlin.md @@ -1,6 +1,3 @@ -source: doc/Support/Device-Notes/AsuswrtMerlin.md -path: blob/master/doc/ - To use Wireless Sensors on AsuswrtMerlin, an agent of sorts is required. The purpose of the agent is to execute on the client (AsuswrtMerlin) side, to ensure that the needed Wireless Sensor information is returned for SNMP queries (from LibreNMS). diff --git a/doc/Support/Device-Notes/Carel-pCOweb-Devices.md b/doc/Support/Device-Notes/Carel-pCOweb-Devices.md index a9cacc4d63..b7ff1be64b 100644 --- a/doc/Support/Device-Notes/Carel-pCOweb-Devices.md +++ b/doc/Support/Device-Notes/Carel-pCOweb-Devices.md @@ -1,6 +1,3 @@ -source: Carel-pCOweb-Devices.md -path: blob/master/doc/ - # Carel pCOweb Devices The pCOWeb card is used to interface the pCO system to networks that diff --git a/doc/Support/Device-Notes/Openwrt.md b/doc/Support/Device-Notes/Openwrt.md index ce9f6b81f8..4848440f39 100644 --- a/doc/Support/Device-Notes/Openwrt.md +++ b/doc/Support/Device-Notes/Openwrt.md @@ -1,6 +1,3 @@ -source: doc/Support/Device-Notes/Openwrt.md -path: blob/master/doc/ - To use Wireless Sensors on Openwrt, an agent of sorts is required. The purpose of the agent is to execute on the client (Openwrt) side, to ensure that the needed Wireless Sensor information is returned for SNMP queries (from LibreNMS). diff --git a/doc/Support/Device-Notes/Routeros.md b/doc/Support/Device-Notes/Routeros.md index ffc08ce6b4..9c36644a72 100644 --- a/doc/Support/Device-Notes/Routeros.md +++ b/doc/Support/Device-Notes/Routeros.md @@ -1,6 +1,3 @@ -source: doc/Support/Device-Notes/Routeros.md -path: blob/master/doc/ - This is attempt to get vlans information from Mikrotik RouterOS. # Installation diff --git a/doc/Support/Device-Notes/index.md b/doc/Support/Device-Notes/index.md deleted file mode 100644 index 45fc717437..0000000000 --- a/doc/Support/Device-Notes/index.md +++ /dev/null @@ -1,6 +0,0 @@ -source: Support/Device-Notes.md -path: blob/master/doc/ - -# Additional device notes - -In this section you will find notes and information on devices that may require special attention. diff --git a/doc/Support/Device-Sensors.md b/doc/Support/Device-Sensors.md index 09c6a4bb08..0375842692 100644 --- a/doc/Support/Device-Sensors.md +++ b/doc/Support/Device-Sensors.md @@ -1,6 +1,3 @@ -source: Support/Device-Sensors.md -path: blob/master/doc/ - # Device Sensors LibreNMS has a standard for device sensors they are split into diff --git a/doc/Support/Device-Troubleshooting.md b/doc/Support/Device-Troubleshooting.md index 721c504855..9b9113cfa4 100644 --- a/doc/Support/Device-Troubleshooting.md +++ b/doc/Support/Device-Troubleshooting.md @@ -1,6 +1,3 @@ -source: Support/Device-Troubleshooting.md -path: blob/master/doc/ - # Capture Debug Information You can use this feature to run Debug on Discovery, Poller, SNMP, diff --git a/doc/Support/Discovery Support.md b/doc/Support/Discovery Support.md index cd7ece2a46..676c6a6024 100644 --- a/doc/Support/Discovery Support.md +++ b/doc/Support/Discovery Support.md @@ -1,6 +1,3 @@ -source: Support/Discovery Support.md -path: blob/master/doc/ - # discovery.php This document will explain how to use discovery.php to debug issues or diff --git a/doc/Support/Environment-Variables.md b/doc/Support/Environment-Variables.md index 9f8dd63528..7f02c180de 100644 --- a/doc/Support/Environment-Variables.md +++ b/doc/Support/Environment-Variables.md @@ -1,5 +1,3 @@ -path: blob/master/doc/ - # Environment Variables LibreNMS allows certain settings to be set via the environment or diff --git a/doc/Support/Example-Hardware-Setup.md b/doc/Support/Example-Hardware-Setup.md index 528fdba376..8e7e024ed3 100644 --- a/doc/Support/Example-Hardware-Setup.md +++ b/doc/Support/Example-Hardware-Setup.md @@ -1,6 +1,3 @@ -source: Support/Example-Hardware-Setup.md -path: blob/master/doc/ - # Example hardware setups The information in this document is direct from users, it's a place for people to share their diff --git a/doc/Support/FAQ.md b/doc/Support/FAQ.md index d884502db5..29c26498d5 100644 --- a/doc/Support/FAQ.md +++ b/doc/Support/FAQ.md @@ -1,65 +1,12 @@ -source: Support/FAQ.md -path: blob/master/doc/ +## Getting started -# Getting started - -- [How do I install LibreNMS?](#faq1) -- [How do I add a device?](#faq2) -- [How do I get help?](#faq3) -- [What are the supported OSes for installing LibreNMS on?](#faq4) -- [Do you have a demo available?](#faq5) - -# Support - -- [How does LibreNMS use MIBs?](#how-does-librenms-use-mibs) -- [Why do I get blank pages sometimes in the WebUI?](#faq6) -- [Why do I not see any graphs?](#faq10) -- [How do I debug pages not loading correctly?](#faq7) -- [How do I debug the discovery process?](#faq11) -- [How do I debug the poller process?](#faq12) -- [Why do I get a lot apache or rrdtool zombies in my process list?](#faq14) -- [Why do I see traffic spikes in my graphs?](#faq15) -- [Why do I see gaps in my graphs?](#faq17) -- [How do I change the IP / hostname of a device?](#faq16) -- [My device doesn't finish polling within 300 seconds](#faq19) -- [Things aren't working correctly?](#faq18) -- [What do the values mean in my graphs?](#faq21) -- [Why does a device show as a warning?](#faq22) -- [Why do I not see all interfaces in the Overall traffic graph for a device?](#faq23) -- [How do I migrate my LibreNMS install to another server?](#faq24) -- [Why is my EdgeRouter device not detected?](#faq25) -- [Why are some of my disks not showing?](#faq26) -- [Why are my disks reporting an incorrect size?](#faq27) -- [What does mean \"ignore alert tag\" on device, component, service and port?](#faq28) -- [Why can't Normal and Global View users see Oxidized?](#faq29) -- [What is the Demo User for?](#faq30) -- [Why does modifying 'Default Alert Template' fail?](#faq31) -- [Why would alert un-mute itself](#faq32) -- [How do I change the Device Type?](#faq33) -- [Editing large device groups gives error messages](#faq34) -- [Where do I update my database credentials?](#faq-where-do-i-update-my-database-credentials) -- [My reverse proxy is not working](#my-reverse-proxy-is-not-working) -- [My alerts aren't being delivered on time](#my-alerts-aren't-being-delivered-on-time) -- [My alert templates stopped working](#my-alert-templates-stopped-working) -- [How do I use trend prediction in graphs](#how-do-i-use-trend-prediction-in-graphs) -- [How do I move only the DB to another server](#move-db-to-another-server) -- [What are the "optional requirements message" when I add SNMPv3 devices](#optional-requirements-for-snmpv3-sha2-auth) -- [How do I clean up alerts from my switches and routers about ports being down or changing speed](#network-config-permanent-change) - -# Developing - -- [How do I add support for a new OS?](#faq8) -- [What information do you need to add a new OS?](#faq20) -- [What can I do to help?](#faq9) -- [How can I test another users branch?](#faq13) - -## How do I install LibreNMS? +### How do I install LibreNMS? This is currently well documented within the doc folder of the installation files. -Please see the following [doc](../Installation/Installing-LibreNMS.md) +Please see the following [doc](/Installation/Install-LibreNMS.md) -## How do I add a device? +### How do I add a device? You have two options for adding a new device into LibreNMS. @@ -78,11 +25,11 @@ You have two options for adding a new device into LibreNMS. the details required for the device that you want to add and then click 'Add Host'. -## How do I get help? +### How do I get help? [Getting Help](index.md) -## What are the supported OSes for installing LibreNMS on? +### What are the supported OSes for installing LibreNMS on? Supported is quite a strong word :) The 'officially' supported distros are: @@ -95,11 +42,14 @@ running a distro that isn't one of the above then give it a try anyway and if you need help then jump on the [discord server](https://t.libren.ms/discord). -## Do you have a demo available? +### Do you have a demo available? We do indeed, you can find access to the demo [here](https://demo.librenms.org) -## How does LibreNMS use MIBs? + +## Support + +### How does LibreNMS use MIBs? LibreNMS does not parse MIBs to discover sensors for devices. LibreNMS uses static discovery definitions written in YAML or PHP. @@ -107,7 +57,7 @@ Therefore, updating a MIB alone will not improve OS support, the definitions must be updated. LibreNMS only uses MIBs to make OIDs easier to read. -## Why do I get blank pages sometimes in the WebUI? +### Why do I get blank pages sometimes in the WebUI? You can enable debug information by setting `APP_DEBUG=true` in your .env. (Do not leave this enabled, it could leak private data) @@ -116,7 +66,7 @@ If the page you are trying to load has a substantial amount of data in it then it could be that the php memory limit needs to be increased in [config.php](Configuration.md#core). -## Why do I not see any graphs? +### Why do I not see any graphs? The easiest way to check if all is well is to run `./validate.php` as librenms from within your install directory. This should give you info on @@ -128,7 +78,7 @@ using the [included snmpd.conf](https://raw.githubusercontent.com/librenms/librenms/master/snmpd.conf.example) file. -## How do I debug pages not loading correctly? +### How do I debug pages not loading correctly? A debug system is in place which enables you to see the output from php errors, warnings and notices along with the MySQL queries that @@ -140,17 +90,17 @@ additional information, run `./scripts/composer_wrapper.php install`, to install additional debug tools. This will add a debug bar at the bottom of every page that will show you detailed debug information. -## How do I debug the discovery process? +### How do I debug the discovery process? Please see the [Discovery Support](Discovery%20Support.md) document for further details. -## How do I debug the poller process? +### How do I debug the poller process? Please see the [Poller Support](Poller%20Support.md) document for further details. -## Why do I get a lot apache or rrdtool zombies in my process list? +### Why do I get a lot apache or rrdtool zombies in my process list? If this is related to your web service for LibreNMS then this has been tracked down to an issue within php which the developers aren't @@ -158,7 +108,7 @@ fixing. We have implemented a work around which means you shouldn't be seeing this. If you are, please report this in [issue 443](https://github.com/librenms/librenms/issues/443). -## Why do I see traffic spikes in my graphs? +### Why do I see traffic spikes in my graphs? This occurs either when a counter resets or the device sends back bogus data making it look like a counter reset. We have enabled @@ -187,7 +137,7 @@ the traffic since it stopped getting values have occurred in the last So whenever you see spikes like this, it means we have not received data from the device for several polling intervals. The cause can vary quite a bit: bad snmp implementations, intermittent network connectivity, broken poller, and more. -## Why do I see gaps in my graphs? +### Why do I see gaps in my graphs? This is most commonly due to the poller not being able to complete it's run within 300 seconds. Check which devices are causing this by @@ -204,7 +154,7 @@ run a local recursive dns server such as pdns-recursor. Running RRDCached is also highly advised in larger installs but has benefits no matter the size. -## How do I change the IP / hostname of a device? +### How do I change the IP / hostname of a device? There is a host rename tool called renamehost.php in your librenms root directory. When renaming you are also changing the device's IP / @@ -219,7 +169,7 @@ Usage: You can also rename a device in the Web UI by going to the device, then clicking settings Icon -> Edit. -## My device doesn't finish polling within 300 seconds +### My device doesn't finish polling within 300 seconds We have a few things you can try: @@ -229,7 +179,7 @@ We have a few things you can try: -Cr10 through -Cr50 to see what works best. 50 is usually a good choice if the device can cope. -## Things aren't working correctly? +### Things aren't working correctly? Run `./validate.php` as librenms from within your install. @@ -238,7 +188,7 @@ Re-run `./validate.php` once you've resolved any issues raised. You have an odd issue - we'd suggest you join our [discord server](https://t.libren.ms/discord) to discuss. -## What do the values mean in my graphs? +### What do the values mean in my graphs? The values you see are reported as metric values. Thanks to a post on [Reddit](https://www.reddit.com/r/networking/comments/4xzpfj/rrd_graph_interface_error_label_what_is_the_m/) @@ -259,14 +209,14 @@ here are those values: 10^15 P - peta ``` -## Why does a device show as a warning? +### Why does a device show as a warning? This is indicating that the device has rebooted within the last 24 hours (by default). If you want to adjust this threshold then you can do so by setting `$config['uptime_warning'] = '86400';` in `config.php`. The value must be in seconds. -## Why do I not see all interfaces in the Overall traffic graph for a device? +### Why do I not see all interfaces in the Overall traffic graph for a device? By default numerous interface types and interface descriptions are excluded from this graph. The excluded defaults are: @@ -301,7 +251,7 @@ $config['device_traffic_iftype'][] = '/ieee8023adLag/'; $config['device_traffic_iftype'][] = '/ppp/'; ``` -## How do I migrate my LibreNMS install to another server? +### How do I migrate my LibreNMS install to another server? If you are moving from one CPU architecture to another then you will need to dump the rrd files and re-create them. If you are in this @@ -327,7 +277,7 @@ architecture then the following steps should be all that's needed: - Validate your installation (/opt/librenms/validate.php) - Re-enable cron by uncommenting all lines in `/etc/cron.d/librenms` -## Why is my EdgeRouter device not detected? +### Why is my EdgeRouter device not detected? If you have `service snmp description` set in your config then this will be why, please remove this. For some reason Ubnt have decided @@ -338,7 +288,7 @@ If you don't have that set then this may be then due to an update of EdgeOS or a new device type, please [create an issue](https://github.com/librenms/librenms/issues/new). -## Why are some of my disks not showing? +### Why are some of my disks not showing? If you are monitoring a linux server then net-snmp doesn't always expose all disks via hrStorage (HOST-RESOURCES-MIB). We have @@ -355,7 +305,7 @@ Or Restart snmpd and LibreNMS should populate the additional disk after a fresh discovery. -### Why are my disks reporting an incorrect size? +#### Why are my disks reporting an incorrect size? There is a known issue for net-snmp, which causes it to report incorrect disk size and disk usage when the size of the disk (or raid) @@ -367,14 +317,14 @@ adding to /etc/snmp/snmpd.conf : `realStorageUnits 0` -## What does mean \"ignore alert tag\" on device, component, service and port? +### What does mean \"ignore alert tag\" on device, component, service and port? Tag device, component, service and port to ignore alerts. Alert checks will still run. However, ignore tag can be read in alert rules. For example on device, if `devices.ignore = 0` or `macros.device = 1` condition is is set and ignore alert tag is on, the alert rule won't match. The alert rule is ignored. -## How do I clean up alerts from my switches and routers about ports being down or changing speed +### How do I clean up alerts from my switches and routers about ports being down or changing speed Some properties used for alerting (ending in `_prev`) are only updated when a change is detected, and not every time the poller runs. This means that if you @@ -392,14 +342,139 @@ page. At the top of the _device settings_ pane is a button labelled `Reset Port State` - this will clear the historic state for all ports on that device, allowing any active alerts to clear. -## How do I add support for a new OS? + + +### Why can't Normal and Global View users see Oxidized? + +Configs can often contain sensitive data. Because of that only global +admins can see configs. + +### What is the Demo User for? + +Demo users allow full access except adding/editing users and deleting +devices and can't change passwords. + +### Why does modifying 'Default Alert Template' fail? + +This template's entry could be missing in the database. Please run +this from the LibreNMS directory: + +```bash +php artisan db:seed --class=DefaultAlertTemplateSeeder +``` + +### Why would alert un-mute itself? + +If alert un-mutes itself then it most likely means that the alert +cleared and is then triggered again. Please review eventlog as it will +tell you in there. + +### How do I change the Device Type? + +You can change the Device Type by going to the device you would like +to change, then click on the Gear Icon -> Edit. If you would like to +define custom types, we suggest using [Device +Groups](/Extensions/Device-Groups/). They will be listed in the +menu similarly to device types. + +### Editing large device groups gives error messages + +If the device group contains large amount of devices, editing it from the UI might cause errors on the form even when all the data seems correct. This is caused by PHP's `max_input_vars`-variable. You should be able to confirm that this is the case by inspecting the PHP's error logs. + +With the basic installation on Ubuntu 20.04 LTS with Nginx and PHP 7.4 FPM this value can be tuned by editing the file `/etc/php/7.4/fpm/php.ini` and adjusting the value of `max_input_vars` to be at least the size of the large group. In larger installations a value such as `10000` should suffice. + +### Where do I update my database credentials? + +If you've changed your database credentials then you will need to +update LibreNMS with those new details. +Please edit `.env` + +[.env](../Support/Environment-Variables.md#database): + +```dotenv +DB_HOST= +DB_DATABASE= +DB_USERNAME= +DB_PASSWORD= +DB_PORT= +``` + +### My reverse proxy is not working + +Make sure your proxy is passing the proper variables. +At a minimum: X-Forwarded-For and X-Forwarded-Proto (X-Forwarded-Port if needed) + +You also need to [Set the proxy or proxies as trusted](../Support/Environment-Variables.md#trusted-reverse-proxies) + +If you are using a subdirectory on the reverse proxy and not on the actual web server, +you may need to set [APP_URL](../Support/Environment-Variables.md#base-url) and `$config['base_url']`. + +### My alerts aren't being delivered on time + +If you're running MySQL/MariaDB on a separate machine or container +make sure the timezone is set properly on both the LibreNMS **and** +MySQL/MariaDB instance. Alerts will be delivered according to +MySQL/MariaDB's time, so a mismatch between the two can cause alerts +to be delivered late if LibreNMS is on a timezone later than +MySQL/MariaDB. + +### My alert templates stopped working + +You should probably have a look in the documentation concerning the +new [template syntax](../Alerting/Templates.md). Since version 1.42, +syntax changed, and you basically need to convert your templates to +this new syntax (including the titles). + +### How do I use trend prediction in graphs + +As of [Ver. 1.55](https://community.librenms.org/t/v1-55-release-changelog-august-2019/9428) a new feature has been added where you can view a simple linear prediction in port graphs. + +> It doesn't work on non-port graphs or consolidated graphs at the time this FAQ entry was written. + +To view a prediction: + +- Click on any `port` graph of any network device +- Select a `From` date to your liking (not earlier than the device was actually added to LNMS), and then select a future date in the `To` field. +- Click update + +You should now see a linear prediction line on the graph. +### How do I move only the DB to another server? + +There is already a reference how to move your whole LNMS installation to another server. But the following steps will help you to split up an "All-in-one" installation to one LibreNMS installation with a separate database install. +*Note: This section assumes you have a MySQL/MariaDB instance + +- Stop the apache and mysql service in you LibreNMS installation. +- Edit out all the cron entries in `/etc/cron.d/librenms`. +- Dump your `librenms`database on your current install by issuing `mysqldump librenms -u root -p > librenms.sql`. +- Stop and disable the MySQL server on your current install. +- On your new server make sure you create a new database with the standard install command, no need to add a user for localhost though. +- Copy this over to your new database server and import it with `mysql -u root -p librenms < librenms.sql`. +- Enter to mysql and add permissions with the following two commands: +```sql +GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'IP_OF_YOUR_LNMS_SERVER' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'FQDN_OF_YOUR_LNMS_SERVER' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; +FLUSH PRIVILEGES; +exit; +``` +- Enable and restart MySQL server. +- Edit your `config.php` file to point the install to the new database server location. +- **Very important**: On your LibreNMS server, inside your install directory is a `.env` file, in it you need to edit the `DBHOST` paramater to point to your new server location. +- After all this is done, enable all the cron entries again and start apache. +### What are the "optional requirements message" when I add SNMPv3 devices? +When you add a device via the WebUI you may see a little message stating "Optional requirements are not met so some options are disabled". Do not panic. This simply means your system does not contain **openssl >= 1.1** and **net-snmp >= 5.8**, which are the minimum specifications needed to be able to use SHA-224|256|384|512 as auth algorithms. +For crypto algorithms AES-192, AES-256 you need **net-snmp** compiled with `--enable-blumenthal-aes`. + + +## Developing + +### How do I add support for a new OS? Please see [Supporting a new OS](../Developing/Support-New-OS.md) if you are adding all the support yourself, i.e. writing all of the supporting code. If you are only able to supply supporting info, and would like the help of others to write up the code, please follow the below steps. -## What information do you need to add a new OS? +### What information do you need to add a new OS? Please [open a feature request in the community forum](https://community.librenms.org/c/feature-requests) and provide the output of Discovery, Poller, and Snmpwalk as separate non-expiring @@ -423,7 +498,7 @@ You can use the links provided by these commands within the community post. If possible please also provide what the OS name should be if it doesn't exist already, as well as any useful link (MIBs from vendor, logo, etc etc) -## What can I do to help? +### What can I do to help? Thanks for asking, sometimes it's not quite so obvious and everyone can contribute something different. So here are some ways you can help @@ -471,7 +546,7 @@ LibreNMS improve. conversations that can lead us to somewhere amazing so please never be afraid to ask a question. -## How can I test another users branch? +### How can I test another users branch? LibreNMS can and is developed by anyone, this means someone may be working on a new feature or support for a device that you want. It can @@ -511,123 +586,3 @@ whilst you are still in it, do the following: ```bash git pull f0o issue-1337 ``` - -## Why can't Normal and Global View users see Oxidized? - -Configs can often contain sensitive data. Because of that only global -admins can see configs. - -## What is the Demo User for? - -Demo users allow full access except adding/editing users and deleting -devices and can't change passwords. - -## Why does modifying 'Default Alert Template' fail? - -This template's entry could be missing in the database. Please run -this from the LibreNMS directory: - -```bash -php artisan db:seed --class=DefaultAlertTemplateSeeder -``` - -## Why would alert un-mute itself? - -If alert un-mutes itself then it most likely means that the alert -cleared and is then triggered again. Please review eventlog as it will -tell you in there. - -## How do I change the Device Type? - -You can change the Device Type by going to the device you would like -to change, then click on the Gear Icon -> Edit. If you would like to -define custom types, we suggest using [Device -Groups](/Extensions/Device-Groups/). They will be listed in the -menu similarly to device types. - -## Editing large device groups gives error messages - -If the device group contains large amount of devices, editing it from the UI might cause errors on the form even when all the data seems correct. This is caused by PHP's `max_input_vars`-variable. You should be able to confirm that this is the case by inspecting the PHP's error logs. - -With the basic installation on Ubuntu 20.04 LTS with Nginx and PHP 7.4 FPM this value can be tuned by editing the file `/etc/php/7.4/fpm/php.ini` and adjusting the value of `max_input_vars` to be at least the size of the large group. In larger installations a value such as `10000` should suffice. - -## Where do I update my database credentials? - -If you've changed your database credentials then you will need to -update LibreNMS with those new details. -Please edit `.env` - -[.env](../Support/Environment-Variables.md#database): - -```dotenv -DB_HOST= -DB_DATABASE= -DB_USERNAME= -DB_PASSWORD= -DB_PORT= -``` - -## My reverse proxy is not working - -Make sure your proxy is passing the proper variables. -At a minimum: X-Forwarded-For and X-Forwarded-Proto (X-Forwarded-Port if needed) - -You also need to [Set the proxy or proxies as trusted](../Support/Environment-Variables.md#trusted-reverse-proxies) - -If you are using a subdirectory on the reverse proxy and not on the actual web server, -you may need to set [APP_URL](../Support/Environment-Variables.md#base-url) and `$config['base_url']`. - -## My alerts aren't being delivered on time - -If you're running MySQL/MariaDB on a separate machine or container -make sure the timezone is set properly on both the LibreNMS **and** -MySQL/MariaDB instance. Alerts will be delivered according to -MySQL/MariaDB's time, so a mismatch between the two can cause alerts -to be delivered late if LibreNMS is on a timezone later than -MySQL/MariaDB. - -## My alert templates stopped working - -You should probably have a look in the documentation concerning the -new [template syntax](../Alerting/Templates.md). Since version 1.42, -syntax changed, and you basically need to convert your templates to -this new syntax (including the titles). - -## How do I use trend prediction in graphs - -As of [Ver. 1.55](https://community.librenms.org/t/v1-55-release-changelog-august-2019/9428) a new feature has been added where you can view a simple linear prediction in port graphs. - -> It doesn't work on non-port graphs or consolidated graphs at the time this FAQ entry was written. - -To view a prediction: - -- Click on any `port` graph of any network device -- Select a `From` date to your liking (not earlier than the device was actually added to LNMS), and then select a future date in the `To` field. -- Click update - -You should now see a linear prediction line on the graph. -## How do I move only the DB to another server? - -There is already a reference how to move your whole LNMS installation to another server. But the following steps will help you to split up an "All-in-one" installation to one LibreNMS installation with a separate database install. -*Note: This section assumes you have a MySQL/MariaDB instance - -- Stop the apache and mysql service in you LibreNMS installation. -- Edit out all the cron entries in `/etc/cron.d/librenms`. -- Dump your `librenms`database on your current install by issuing `mysqldump librenms -u root -p > librenms.sql`. -- Stop and disable the MySQL server on your current install. -- On your new server make sure you create a new database with the standard install command, no need to add a user for localhost though. -- Copy this over to your new database server and import it with `mysql -u root -p librenms < librenms.sql`. -- Enter to mysql and add permissions with the following two commands: -```sql -GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'IP_OF_YOUR_LNMS_SERVER' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; -GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'FQDN_OF_YOUR_LNMS_SERVER' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; -FLUSH PRIVILEGES; -exit; -``` -- Enable and restart MySQL server. -- Edit your `config.php` file to point the install to the new database server location. -- **Very important**: On your LibreNMS server, inside your install directory is a `.env` file, in it you need to edit the `DBHOST` paramater to point to your new server location. -- After all this is done, enable all the cron entries again and start apache. -## What are the "optional requirements message" when I add SNMPv3 devices? -When you add a device via the WebUI you may see a little message stating "Optional requirements are not met so some options are disabled". Do not panic. This simply means your system does not contain **openssl >= 1.1** and **net-snmp >= 5.8**, which are the minimum specifications needed to be able to use SHA-224|256|384|512 as auth algorithms. -For crypto algorithms AES-192, AES-256 you need **net-snmp** compiled with `--enable-blumenthal-aes`. diff --git a/doc/Support/Features.md b/doc/Support/Features.md index a1e4b19083..abb6ae7ea7 100644 --- a/doc/Support/Features.md +++ b/doc/Support/Features.md @@ -1,6 +1,3 @@ -source: Support/Features.md -path: blob/master/doc/ - # Features Here's a brief list of supported features, some might be missing. If @@ -23,147 +20,698 @@ you think something is missing, feel free to ask us. * API * Auto Updating -## Vendors +## Supported Vendors -Here's a brief list of supported vendors, some might be missing. +Here's a list of supported vendors, some might be missing. If you are unsure of whether your device is supported or not, feel free to ask us. + + +### 3 * 3Com -* ADTRAN -* Acceidan -* Aerohive -* AKCP -* Alcatel-Lucent -* Allied Telesis -* APC -* Apple -* Areca -* Arista -* Aruba + +### A +* A10 Networks +* Acano OS +* Accedian AEN +* Adtran AOS +* ADVA FSP150CC +* ADVA FSP3000 R7 +* ADVA OptiSwitch +* Advantech +* Aerohive HiveOS +* Airconsole Server +* AIX +* AKCP SensorProbe +* Alcatel OmniPCX +* Alcatel-Lucent Enterprise Stellar Wireless OS (AWOS) +* Alcatel-Lucent OS +* Alcoma +* ALGCOM DC UPS +* Allied Telesis Wireless (TQ) +* Alliedware +* Alliedware Plus +* Allworx VoIP +* Alpha Comp@s +* Alpha FXM +* AlteonOS +* Alvarion Breeze +* Anue +* AnyOS +* APC Environmental Monitoring Unit +* APC ePDU +* APC Management Module +* APC MGE UPS +* Apex Lynx +* Apex Plus +* Apple AirPort +* Apple OS X +* Aprisa +* ApsoluteOS +* ArbOS +* Areca RAID Subsystem +* Arista EOS +* Arista MOS +* Array Networks +* Arris Apex +* Arris CMTS +* Arris D5 Universal EdgeQAM +* ARRIS DOCSIS +* Arris Satellite Receiver +* Aruba Clearpass +* Aruba Instant +* ArubaOS +* ArubaOS-CX +* Ascom +* Asentria SiteBoss +* AsusWRT Merlin +* Aten PDU * Audiocodes -* Avaya +* Automatic Transfer Switch +* Avaya Scopia +* AvediaPlayer Receivers +* AvediaStream Encoder +* Aviat WTM * Avocent -* AVTECH -* Axis -* Barracuda -* BCM963 -* BDCom -* Bintec -* Bluecat -* BNT -* Brocade -* Brother +* Avtech Environment Sensor +* AXIS Audio Appliances +* AXIS Network Camera +* AXIS Network Document Server + +### B +* Barco Clickshare +* Barracuda Email Security Gateway +* Barracuda Load Balancer +* Barracuda NG Firewall +* Barracuda Web Application Firewall +* BDCOM(tm) Software +* BeagleBoard +* Benu +* Bintec Be.IP Plus +* Bintec Smart Router +* BKtel +* Blade Network Technologies +* BladeShelter PDU by PowerTek +* Blue Coat PacketShaper +* Blue Coat SSL Visibility +* Bluecat Networks +* BlueCoat ProxySG +* Broadcom BCM963xx +* Brocade FabricOS +* Brocade IronWare +* Brocade NOS +* Brocade ServerIron +* Brother Printer +* BTI SA-800 * Buffalo + +### C +* C&C Power Commander plus * Calix +* Calix B6 System +* Calix EXA +* Calix Legacy * Cambium -* Canon -* Canopy -* Check Point -* Cisco +* Cambium CMM +* Cambium CMM4 +* Cambium cnPilot +* Cambium cnPilot Router +* Cambium epmp +* Cambium PTP 250 +* Cambium PTP 300/500 +* Cambium PTP 600 +* Cambium PTP 650 +* Cambium PTP 670 +* Cambium PTP 800 +* Canon Printer +* Carel pCOWeb +* cdata +* Ceragon CeraOS +* CET TSI Controller +* Chatsworth PDU +* Check Point GAiA +* CheckPoint SecurePlatform +* Ciena SAOS +* Ciena Service Delivery Switch +* Ciena Waveserver +* Ciena Z-Series +* cirpack +* Cisco ACE +* Cisco ACS +* Cisco APIC +* Cisco ASA +* Cisco AsyncOS +* Cisco Catalyst 1900 +* Cisco CatOS +* Cisco EPC +* Cisco FTD +* Cisco FX-OS +* Cisco Identity Services Engine +* Cisco Integrated Management Controller +* Cisco Intrusion Prevention System +* Cisco IOS +* Cisco IOS-XE +* Cisco IOS-XR +* Cisco ME1200 +* Cisco NX-OS +* Cisco ONS +* Cisco PIX-OS +* Cisco SAN-OS +* Cisco Satellite Receiver +* Cisco SCE +* Cisco Services Ready Platform * Cisco Small Business -* Citrix -* Cometsystem -* Comware -* D-Link +* Cisco Unified Communications Manager +* Cisco Voice Gateway +* Cisco WAAS +* Cisco Wireless Access Point +* Cisco WLC +* Citrix Netscaler +* Comet System Web Sensor +* Comtrol Industrial Switch +* Controlbox TH-332B +* CoreOS +* Corero CMS +* Coriant TNMS +* CradlePoint WiPipe +* CTC Union +* Cumulus Linux +* CXR Networks TS +* Cyberoam UTM +* Cyberpower + +### D +* D-Link Access Point +* D-Link Switch +* Dahua NVR +* Dantel Webmon +* Dantherm +* Dasan NOS * Datacom -* Deliberant -* Dell -* Delta Power Solutions -* DEVELOP +* dd-wrt +* DDN Storage +* Deliberant OS +* Dell DRAC +* Dell EMC Networking OS10 Enterprise +* Dell EqualLogic +* Dell Laser +* Dell Networking OS +* Dell PowerConnect +* Dell PowerVault +* Dell PowerVault MD +* Dell Rack PDU +* Dell Remote Console +* Dell Storage +* Dell UPS +* Delta Orion Controller +* Delta UPS +* Develop Printer +* DHCPatriot +* Digipower +* Digital China Networks * DKT Comega -* Eaton +* DPS Telecom NetGuardian +* DragonflyBSD +* Dragonwave Harmony Enhanced +* Dragonwave Horizon Compact +* Dragonwave Horizon Compact Plus +* Dragonwave Horizon Duo +* DrayTek +* DVB Modulator & Ampiflier +* DVB-T Transmitter + +### E +* E3 Meter +* E3 Meter DataConcentrator +* Eagle-I +* East +* Eaton ATS +* Eaton Matrix +* Eaton MGE PDU +* Eaton PDU +* Eaton UPS +* EDFA +* Edgecore +* EdgeOS +* EdgeSwitch * EDS -* EMC -* Engenius +* EfficientIP SOLIDserver +* Ekinops Optical +* Eltek Valere +* Eltek Valere eNexus +* Eltek WebPower +* Eltex OLT +* Eltex-MES21xx +* Eltex-MES23xx +* EMC Data Domain +* EMC Flare OS +* EMC Isilon OneFS +* Emerson Energy System +* Emerson Netsure +* Endian +* EndRun +* EnGenius Access Point +* enLogic PDU * Enterasys -* Epson -* Extreme Networks -* F5 -* Fastback Networks -* Fiberstore -* FiberHome -* Force10 -* Fortinet +* Epson Printer +* Epson Projector +* Ericsson 6600 series +* Ericsson IPOS +* Ericsson LG iPECS UCP +* Ericsson MINI-LINK +* Ericsson Traffic Node +* EricssonLG IPECS ES +* Etherwan Managed Switch +* EUROstor RAID Subsystem +* Exagrid +* Exalt ExtendAir +* Exinda +* Extrahop Appliance +* Extreme BOSS +* Extreme SLX-OS +* Extreme VOSS +* Extreme Wireless Convergence +* Extreme XOS +* Extremeware + +### F +* F5 Big IP +* Fiberhome +* FiberHome Switch +* Fibernet XMUX 4+ +* Fiberstore GBN +* Fiberstore Switch +* Firebrick +* Force10 FTOS +* Fortinet FortiAuthenticator +* Fortinet Fortigate +* Fortinet FortiMail +* Fortinet FortiSandbox +* Fortinet FortiSwitch +* Fortinet FortiVoice +* Fortinet FortiWeb +* Fortinet FortiWLC +* FortiOS +* Foundry Networking * FreeBSD -* Gamatronic -* Hikvision -* HP -* Huawei -* HW group -* IBM +* FreshTomato +* FS.COM monitored pdu +* Fujitsu +* Fujitsu ETERNUS +* FUJITSU iRMC +* Fujitsu NAS +* FusionHub + +### G +* Gamatronic UPS Stack +* Gandi Packet Journey +* GE Digital Energy UPS +* GE MDS Orbit network Operating System +* GE Pulsar +* Geist PDU +* Geist Watchdog +* Generex UPS SNMP adapter +* Generic +* Generic Device +* Gestetner Printer +* GigaVUE +* Glass Way WDM EYDFA +* Grandstream HT +* Greenbone OS +* Gude Expert Transfer Switch +* gwd + +### H +* Halon +* Hanwha Techwin +* HAProxy ALOHA +* Helios IP +* Hikvision Camera +* Hikvision NVR +* Hillstone StoneOs +* Himoinsa Generator Sets +* Hirschmann Railswitch +* Hitachi Storage Virtualization Operating System (SVOS) +* HP Blade Management +* HP MSM +* HP PDU Management Module +* HP Print server +* HP ProCurve +* HP UPS +* HP Virtual Connect +* HPE 3PAR +* HPE Comware +* HPE Integrated Lights Out +* HPE iPDU +* HPE Managed Power Distribution Unit +* HPE MSA +* HPE OpenVMS +* HPE StoreEver MSL +* Huawei iBMC Management Console +* Huawei OceanStor +* Huawei SmartAX +* Huawei SmartAX MDU +* Huawei SMU +* Huawei UPS +* Huawei VRP +* HWg Poseidon +* HWg STE +* HWg STE2 +* HWg WLD +* Hytera Repeater + +### I +* IBM AMM +* IBM DPI +* IBM i +* IBM IMM +* IBM Networking Operating System +* IBM Tape Library +* iBoot PDU +* Icotera OS +* ICT Digital Series Power Supply +* ICT Distribution Series +* ICT Modular Power System +* ICT Sine Wave Inverter +* Ifotec +* IgniteNet FusionSwitch +* IgniteNet HeliOS +* Illustra Network Camera +* Imco Power +* Imco Power LS110 +* Infinera Groove +* Infinera PON +* Infinera XTM * Infoblox -* iPoMan -* ITWatchDogs -* Juniper -* Konica Minolta -* Kyocera -* Lantronix -* Lenovo -* Lexmark +* Ingrasys iPoMan +* Innovaphone ISDN +* Inteno GW +* IONODES +* IP Office Firmware +* ITWatchDogs Goose + +### J +* Jacarta InterSeptor +* Janitza +* Janitza UMG96 +* Juniper EX2500 +* Juniper JunOS +* Juniper JunOSe +* Juniper JWOS +* Juniper MSS +* Juniper ScreenOS + +### K +* Kemp Loadbalancer +* Konica-Minolta Printer +* KTI +* Kyocera Mita Printer + +### L +* Lancom OS +* Lanier Printer +* LANTIME v6 +* Lantronix SLC +* Lantronix UDS +* Last Mile Gear CTM +* Lenovo Cloud Network Operating System +* LenovoEMC +* Lexmark Printer * Liebert -* LigoWave +* LigoWave Infinity +* LigoWave LigoOS +* Linksys Smart Switch * Linux -* Maipu +* LogMaster + +### M +* m0n0wall +* Maipu MyPower +* Marathon UPS +* McAfee SIEM Nitro +* Mcafee Web Gateway +* MegaTec NetAgent II * Mellanox -* Meraki -* MGE -* Microsemi -* Mikrotik -* MRVLD -* Multimatic +* Meraki AP +* Meraki MX Appliance +* Meraki Switch +* Microsemi PowerDsine Midspan PoE +* Microsemi Synchronization Supply Unit +* Microsoft Windows +* Mikrotik RouterOS +* Mikrotik SwOS +* Mimosa +* Minkels RMS +* Mirth Connect +* Mitel Standard Linux +* MobileIron +* Motorola DOCSIS Cable Modem +* Motorola Netopia +* Moxa +* MRV LambdaDriver +* MRV OptiDriver + +### N +* NEC Univerge * NetApp +* NetBotz Environment Sensor * NetBSD -* NETGEAR -* NetMan +* Netgear ProSafe +* NetMan Plus +* NetModule * Netonix -* Netopia -* NetVision -* NetWare -* Nokia -* NRG -* OKI +* NetScaler SD-WAN +* Network Management Unit +* Nexans +* Nimble OS +* NOKIA ISAM +* Nokia SR OS (TiMOS) +* Novell Netware +* NRG Printer +* NTI +* NVT Phybridge + +### O +* OKI Printer +* Omnitron iConverter +* OneAccess +* Open Access Netspire +* Open-E * OpenBSD -* Oracle -* PacketShaper -* Palo Alto Networks -* Papouch +* Opengear +* OpenIndiana +* OpenSystems +* OpenWrt +* OPNsense +* Oracle ILOM +* Orvaldi UPS + +### P +* Packetflux SiteMonitor +* Packetlight +* Panasonic KX-NS Series +* Panduit PDU +* PanOS +* Papouch QUIDO +* Papouch TME +* Paradyne (by Zhone) +* Patton SmartNode +* PBI Digital Decoder * PBN +* PBN P2P CP100 Series Platform +* Pegasus +* Pepwave * Perle -* Powercode -* Powerwalker -* Prestige +* pfSense +* Pica8 OS +* Ping only +* PLANET +* Powercode BMU +* PowerWalker UPS +* PowerWalker VFI +* Prime Infrastructure +* Procera Networks * Proxim -* Proxmox +* proxmox pve +* Pulse Secure + +### Q +* QNAP TurboNAS +* QTECH * Quanta +* QuantaStor + +### R * Radlan -* Raritan -* Redback -* Ricoh +* RADWIN +* Raisecom ROAP +* Raisecom ROS +* Raritan EMX +* Raritan KVM +* Raritan PDU +* RAy +* RAy3 +* RecoveryOS +* Red Lion Sixnet +* Redback Networks SmartEdge +* Redlion N-Tron +* Ribbon GSX +* Ribbon SBC +* Ricoh Printer +* Riello UPS +* Rittal CMC +* Rittal CMC III PU +* Rittal IT Chiller +* Rittal LCP +* Rittal LCP DX Chiller * Riverbed -* Ruckus +* Rohde & Schwarz +* Ruckus Wireless HotZone +* Ruckus Wireless SmartZone +* Ruckus Wireless Unleashed +* Ruckus Wireless ZoneDirector +* Ruijie Networks + +### S +* SAF CFM +* SAF Integra B +* SAF Integra E +* SAF Integra W +* SAF Integra X * SAF Tehnika -* Samsung -* Siklu -* Sentry3 -* Solaris +* Sagem ADR IONOS +* Samsung Printer +* Savin Printer +* Schleifenbauer SPDM +* Schneider PowerLogic +* SCS KS +* Sensatronics EM1 +* Sensatronics ITTM +* ServersCheck +* ServerTech Sentry3 +* ServerTech Sentry4 +* Sharp Printer +* SIAE Alfoplus 80HD +* Siemens Ruggedcom Switches (ROS) +* Siemens SCALANCE +* Siklu Wireless +* Silver Peak VXOA +* Sinetica UPS +* SM-OS +* SmartOptics DCP-M Series +* SmartOptics M-Series +* SmartOptics T-Series +* snr +* snr-erd +* Socomec Net Vision +* Socomec PDU * SonicWALL -* SpeedTouch -* Supermicro -* Symbol -* Telco Systems -* TPLink +* Sophos UTM Firewall +* Sophos XG +* Stormshield NS-BSD +* Sub10 Systems +* Sun OpenSolaris +* Sun Solaris +* Supermicro Switch +* Symbol AP +* SyncServer +* Synology DSM + +### T +* Tait Infra93 Series +* Tandberg Magnum +* technicolor TG MediaAcces +* Tegile IntelliFlash +* Telco Systems BiNOS +* Telco Systems BiNOX +* Teldat +* TelePresence Codec +* TelePresence Conductor +* Teleste Luminato +* Teltonika RutOS +* teltonika rutos +* Teltonika RutOS RUTX Series +* Teradici PCoIP +* Terra +* Thomson DOCSIS Cable Modem +* Thomson Speedtouch +* Tomato +* TopVision +* Toshiba Printer +* Toshiba RemotEye4 +* TP-Link JetStream +* TP-Link Switch +* Transition * Tranzeo -* Tripp Lite -* Ubiquiti -* Viprinet -* VMware -* VRP +* TRENDnet Switch +* Tripp Lite PowerAlert +* TrueNAS +* TSC Printer +* Tycon Systems TPDIN + +### U +* Ubiquiti AirFiber +* Ubiquiti AirFiber LTU +* Ubiquiti AirOS +* Ubiquiti Edgepower +* Ubiquiti UniFi +* Ubiquoss PON +* Ucopia +* UniPing + +### V +* Vanguard ApplicationsWare +* Vertiv PDU +* Video Communication Server +* Viprinux +* Viptela +* Vivotek Camera +* VMware ESXi +* VMware SD-WAN +* VMware vCenter +* Voswall +* Vubiq Networks * Vyatta * VyOS -* Watchguard + +### W +* Watchguard Fireware +* Waystream iBOS +* Web-Thermo-Hygrometer * WebPower -* Windows -* Xerox -* Xirrus -* ZTE -* ZyXEL +* West Mountain RMCU +* WISI Tangram +* WTI MPC +* WTI POWER + +### X +* Xerox Printer +* Xirrus ArrayOS + +### Z +* ZebraNet +* Zhone MXK +* Zmtel Greenpacket +* ZTE ZXA10 +* ZTE ZXR10 +* ZXDSL +* ZyXEL AC +* ZyXEL DSLAM +* ZyXEL Ethernet Switch +* ZyXEL IES MSAN +* ZyXEL IES-5000 DSLAM +* ZyXEL NWA +* ZyXEL Prestige +* ZyXEL ZyWALL diff --git a/doc/Support/Install Validation.md b/doc/Support/Install Validation.md index 76cb0a82eb..9b0a16f521 100644 --- a/doc/Support/Install Validation.md +++ b/doc/Support/Install Validation.md @@ -1,6 +1,3 @@ -source: Install Validation.md -path: blob/master/doc/ - # Install validation With a lot of configuration possibilities, manually editing config.php diff --git a/doc/Support/Performance.md b/doc/Support/Performance.md index a903f8ddce..d26e385bd9 100644 --- a/doc/Support/Performance.md +++ b/doc/Support/Performance.md @@ -1,6 +1,3 @@ -source: Support/Performance.md -path: blob/master/doc/ - # Performance optimisations This document will give you some guidance on optimising your setup. diff --git a/doc/Support/Poller Support.md b/doc/Support/Poller Support.md index 24573aed7b..9d0407d801 100644 --- a/doc/Support/Poller Support.md +++ b/doc/Support/Poller Support.md @@ -1,6 +1,3 @@ -source: Support/Poller Support.md -path: blob/master/doc/ - # poller.php This document will explain how to use poller.php to debug issues or diff --git a/doc/Support/Remote-Monitoring-VPN.md b/doc/Support/Remote-Monitoring-VPN.md index 05c556e48b..1fcc1e3494 100644 --- a/doc/Support/Remote-Monitoring-VPN.md +++ b/doc/Support/Remote-Monitoring-VPN.md @@ -1,6 +1,3 @@ -source: Support/Remote-Monitoring-VPN.md -path: blob/master/doc/ - # Remote monitoring using tinc VPN This article describes how to use tinc to connect several remote sites diff --git a/doc/Support/SNMP-Configuration-Examples.md b/doc/Support/SNMP-Configuration-Examples.md index 41c0d4b4c9..c682ad2714 100644 --- a/doc/Support/SNMP-Configuration-Examples.md +++ b/doc/Support/SNMP-Configuration-Examples.md @@ -1,38 +1,5 @@ -source: Support/SNMP-Configuration-Examples.md -path: blob/master/doc/ - # SNMP configuration examples -Table of Content: - -- [Devices](#devices) - - [Cisco](#cisco) - - [Adaptive Security Appliance (ASA)](#adaptive-security-appliance-asa) - - [IOS / IOS XE](#ios--ios-xe) - - [NX-OS](#nx-os) - - [Wireless LAN Controller (WLC)](#wireless-lan-controller-wlc) - - [HPE 3PAR](#hpe3par) - - [Inform OS 3.2.x](#inform-os-32x) - - [Infoblox](#infoblox) - - [NIOS 7.x+](#nios-7x) - - [Juniper](#juniper) - - [Junos OS](#junos-os) - - [Mikrotik](#mikrotik) - - [RouterOS 6.x](#routeros-6x) - - [Palo Alto](#palo-alto) - - [PANOS 6.x/7.x](#panos-6x7x) - - [Ubiquiti](#ubiquiti) - - [EdgeOs](#edgeos) - - [VMware](#vmware) - - [ESX/ESXi 5.x/6.x](#esxesxi-5x6x) - - [VCenter 6.x](#vcenter-6x) -- [Operating systems](#operating-systems) - - [Linux (snmpd v2)](#linux-snmpd) - - [Linux (snmpd v3)](#linux-snmpd-v3) - - [Windows Server 2008 R2](#windows-server-2008-r2) - - [Windows Server 2012 R2 and newer](#windows-server-2012-r2-and-newer) - - [Mac OSX](#Mac-OSX) - ## Devices ### Cisco diff --git a/doc/Support/SSL-Configuration.md b/doc/Support/SSL-Configuration.md deleted file mode 100644 index 8262ea344a..0000000000 --- a/doc/Support/SSL-Configuration.md +++ /dev/null @@ -1,125 +0,0 @@ -source: Support/SSL-Configuration.md -path: blob/master/doc/ - -# Ubuntu 16.04 - -## Enabling HTTPS - Nginx - -This example is specifically for Ubuntu 16.04 with Nginx and uses an -SSL certificate from Let's Encrypt. Please follow -[this](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04) -excellent tutorial on setting up nginx with an SSL cert from LetsEncrypt. - -### Step 1 - -Follow the LetsEncrypt tutorial until you get to *Step 2: Obtain and -SSL Certificate.* In this section you need to change some config in -the Nginx configuration. The tutorial directs you to edit -`/etc/nginx/sites-available/default` however in the standard LibreNMS -install, the file you need to edit is actually -`/etc/nginx/conf.d/librenms.conf`. - -### Step 2 - -When you get to *Step 3: Configure TLS/SSL on Web Server (Nginx)* -there are some differences again. Follow the instructions regarding -the "snippet" configuration, the main differences come when you get to -*Adjust the Nginx Configuration to Use SSL*. Here you are again -directed to edit `/etc/nginx/sites-available/default`, so we need to -go to `/etc/nginx/conf.d/librenms.conf`. - -`sudo vi /etc/nginx/conf.d/librenms.conf` - -The top section of this file will look like this: - -``` -server { - listen 80; - listen [::]:80; - server_name example.com; - root /opt/librenms/html; - index index.php; - access_log /opt/librenms/logs/access_log; - error_log /opt/librenms/logs/error_log; -``` - -Edit it to look like this (obviously changing example.com to your actual domain name): - -``` -server { - listen 80; - listen [::]:80; - server_name example.com; - return 301 https://$server_name$request_uri; -} - - -server { - listen 443 ssl http2; - listen [::]:443 ssl http2; - include snippets/ssl-example.com.conf; - include snippets/ssl-params.conf; - server_name example.com; - root /opt/librenms/html; - index index.php; - access_log /opt/librenms/logs/access_log; - error_log /opt/librenms/logs/error_log; -``` - -This config will redirect HTTP traffic to HTTPS and use the SSL config -that you have just set up. - -Check for syntax errors -`sudo nginx -t` - -Then restart Nginx -`sudo systemctl restart nginx` - -### Step 3 - -Follow the rest of the tutorial, especially if you have the server's firewall enabled. - -# CentOS - -## Enabling HTTPS - Apache - -This example is specifically for CentOS 7 with Apache - -Please follow [this](https://wiki.centos.org/HowTos/Https) How To from -CentOS wiki on setting up Apache with a SSL cert. - -### Step 1 - -Follow the How to until you get to step 3. This is going to be little -different with LibreNMS. You will need to make changes in here `sudo -vi /etc/httpd/conf.d/librenms.conf` - -Your VirtualHost for 443 will need to look something like this for LibreNMS -(obviously changing librenms.example.com to your actual domain name) - -``` - - SSLEngine on - SSLCertificateFile /etc/pki/tls/certs/ca.crt - SSLCertificateKeyFile /etc/pki/tls/private/ca.key - - AllowOverride All - Require all granted - Options FollowSymLinks MultiViews - - DocumentRoot /opt/librenms/html/ - AllowEncodedSlashes NoDecode - ServerName librenms.example.com - CustomLog /opt/librenms/logs/access_log combined - ErrorLog /opt/librenms/logs/error_log - - -``` - -### Step 2 - -Then restart Apache `sudo systemctl restart httpd` - -### Step 3 - -Follow the rest of the How To, especially if you have the server's firewall enabled. diff --git a/doc/Support/Support-New-OS.md b/doc/Support/Support-New-OS.md deleted file mode 100644 index 5260643534..0000000000 --- a/doc/Support/Support-New-OS.md +++ /dev/null @@ -1,3 +0,0 @@ -source: Support/Support-New-OS.md -path: blob/master/doc/ - diff --git a/doc/Support/index.md b/doc/Support/index.md index 9e28a2ea6a..6f787b9411 100644 --- a/doc/Support/index.md +++ b/doc/Support/index.md @@ -1,5 +1,3 @@ -path: blob/master/doc/ - # How to get Help - Browse through the navigation on the left diff --git a/doc/index.md b/doc/index.md index fe75ce4372..75806245f7 100644 --- a/doc/index.md +++ b/doc/index.md @@ -1,32 +1,30 @@ -path: blob/master/doc/
- - Setup + + Setup
+ Applications
Auto Discovery
Oxidized
RRDCached
- More...
Rules
@@ -37,8 +35,8 @@ path: blob/master/doc/
Using the API
@@ -49,8 +47,8 @@ path: blob/master/doc/ diff --git a/doc/js/docs-install-tab.js b/doc/js/docs-install-tab.js index 86f4db3f49..c359238b35 100644 --- a/doc/js/docs-install-tab.js +++ b/doc/js/docs-install-tab.js @@ -1,69 +1,26 @@ -document.addEventListener('DOMContentLoaded', function () { +const tabSync = () => { + const tabs = document.querySelectorAll(".tabbed-set > input") + for (const tab of tabs) { + tab.addEventListener("change", () => { + const current = document.querySelector(`label[for=${tab.id}]`) + const pos = current.getBoundingClientRect().top + const labelContent = current.innerHTML + const labels = document.querySelectorAll('.tabbed-set > label, .tabbed-alternate > .tabbed-labels > label') + for (const label of labels) { + if (label.innerHTML === labelContent) { + document.querySelector(`input[id=${label.getAttribute('for')}]`).click() + } + } - [].forEach.call(document.getElementsByClassName('tabbed-set'), function (tabSet) { - [].forEach.call(tabSet.getElementsByTagName('label'), function (tab) { - tab.addEventListener("click", changeInstallTab); - }); - }); + // Preserve scroll position + const delta = (current.getBoundingClientRect().top) - pos + window.scrollBy(0, delta) + }) + } +} + +document.addEventListener('DOMContentLoaded', function () { + tabSync(); }, false); -function changeInstallTab(e) { - e = e || window.event; - var target = e.target || e.srcElement; - var text = target.textContent || target.innerText; - [].forEach.call(document.getElementsByClassName('tabbed-set'), function (tabSet) { - var tabs = []; - var children = tabSet.children; - var found = false; - for (i = 0; i < children.length; i++) { - var el = children[i]; - if (el.tagName === 'LABEL') { - var tabText = el.textContent || el.innerText; - if (tabText === text) { - found = true; - } - tabs.push({id: el.htmlFor, checked: tabText === text}); - } - } - - // apply changes if tab found in group - if (found) { - tabs.forEach(function (tab) { - document.getElementById(tab.id).checked = tab.checked; - }); - } - }); - - // make sure original element did not get pushed off screen - target.scrollIntoViewIfNeeded(); -} - -// scrollIntoViewIfNeeded Polyfill -if (!Element.prototype.scrollIntoViewIfNeeded) { - Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) { - centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded; - - var parent = this.parentNode, - parentComputedStyle = window.getComputedStyle(parent, null), - parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width')), - parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width')), - overTop = this.offsetTop - parent.offsetTop < parent.scrollTop, - overBottom = (this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth) > (parent.scrollTop + parent.clientHeight), - overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft, - overRight = (this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth) > (parent.scrollLeft + parent.clientWidth), - alignWithTop = overTop && !overBottom; - - if ((overTop || overBottom) && centerIfNeeded) { - parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2; - } - - if ((overLeft || overRight) && centerIfNeeded) { - parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2; - } - - if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) { - this.scrollIntoView(alignWithTop); - } - }; -} diff --git a/doc/js/docs-settings-links.js b/doc/js/docs-settings-links.js index 03ddec2e68..cea2ecf6ba 100644 --- a/doc/js/docs-settings-links.js +++ b/doc/js/docs-settings-links.js @@ -48,7 +48,7 @@ function isValidHttpUrl(string) { function promptSettingUrl(e) { e.preventDefault(); - let librenmsUrl = prompt("Enter your LibreNMS URL to get direct settings link.\nNote: This URL is only stored in your browser.", localStorage.getItem('librenms_url')); + let librenmsUrl = prompt("Enter your LibreNMS URL to get direct settings link.\nNote: This URL is only stored in your browser.", localStorage.getItem('librenms_url') || ''); if (! isValidHttpUrl(librenmsUrl)) { alert("Invalid url, must start with http:// or https://") diff --git a/doc/librenms.css b/doc/librenms.css index 6cbb6bbb96..baddb11b7f 100644 --- a/doc/librenms.css +++ b/doc/librenms.css @@ -1,16 +1,3 @@ -/* larger logo */ -.md-logo>img { width:36px; height:36px } -.md-logo { padding-top: 0; } - -/* theme adjustment */ -.md-typeset a { color: #2fa4e7; } -.md-hero { background-color: #000000; } -.md-header { background-color: #000000; } -.md-tabs { background-color: #000000; } -.md-nav__link:active, .md-nav__link--active { color: #da223a; } -.md-nav__link:focus, .md-nav__link:hover { color: #da223a; } - - /* size and align the headers on the home screen */ .home-header { font-size: 1.6em; @@ -22,7 +9,7 @@ } .home-header i { vertical-align: middle; - padding-right: 12px; + padding-right: 8px; } .home-header span { vertical-align: middle; } @@ -47,18 +34,6 @@ box-shadow: inset 0 1px 1px rgba(0,0,0,.05); } -/* media */ -@media only screen and (max-width: 76.1875em) { - html .md-nav--primary .md-nav__title--site { background-color: #000000; } -} -@media only screen and (max-width: 59.9375em) { - .md-nav__source { background-color: #232323; } - .home-container { display: block; } - .home-box { - width: 100%; - margin: 0 0 10px 0; - } -} /* Setting admonition */ :root { diff --git a/mkdocs.yml b/mkdocs.yml index bea5e45b4e..3735e240dc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,22 +7,31 @@ theme: font: text: 'Roboto' code: 'Roboto Mono' - feature: null + palette: + primary: black + + features: + - navigation.instant + - navigation.sections + - navigation.tracking + - navigation.top site_dir: out site_url: https://docs.librenms.org markdown_extensions: - - admonition - - pymdownx.tasklist - - pymdownx.tilde - - pymdownx.superfences - - pymdownx.tabbed - - pymdownx.details - - pymdownx.highlight: - extend_pygments_lang: - - name: php - lang: php - options: - startinline: true + - tables + - admonition + - pymdownx.tasklist + - pymdownx.tilde + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - pymdownx.details + - pymdownx.highlight: + extend_pygments_lang: + - name: php + lang: php + options: + startinline: true plugins: - macros: j2_variable_start_string: '@=' @@ -32,112 +41,111 @@ plugins: glob: - "General/Changelogs/*" - "Dockerfile" + - redirects: + redirect_maps: + 'Alerting/Introduction.md': 'Alerting/index.md' + 'API/API-Docs.md': 'API/index.md' + 'Extensions/Alerting.md': 'Alerting/index.md' + 'Extensions/Email-Alerting.md': 'Alerting/Transports.md' + 'Extensions/Graphite.md': 'Extensions/metrics/Graphite.md' + 'Extensions/InfluxDB.md': 'Extensions/metrics/InfluxDB.md' + 'Extensions/OpenTSDB.md': 'Extensions/metrics/OpenTSDB.md' + 'Extensions/Poller-Service.md': 'Extensions/Dispatcher-Service.md' + 'Extensions/Port-Description-Parser.md': 'Extensions/Interface-Description-Parsing.md' + 'Extensions/Prometheus.md': 'Extensions/metrics/Prometheus.md' + 'General/Contributing.md': 'Developing/Getting-Started.md' + 'Installation/CentOS-image.md': 'Installation/Images.md' + 'Installation/index.md': 'Installation/Install-LibreNMS.md' + 'Installation/Installing-LibreNMS.md': 'Installation/Install-LibreNMS.md' + 'Installation/Ubuntu-image.md': 'Installation/Images.md' + 'Support/Support-New-OS.md': 'Developing/Support-New-OS.md' + extra_css: - - https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css - - librenms.css + - https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/fontawesome.min.css + - https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/solid.min.css + - https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/brands.min.css + - librenms.css extra_javascript: - - js/docs-install-tab.js - - js/docs-settings-links.js + - js/docs-install-tab.js + - js/docs-settings-links.js extra: - article_nav_top: false - article_nav_bottom: true - php: - version_min: 7.3 + analytics: + provider: google + property: UA-79149977-2 + article_nav_top: false + article_nav_bottom: true + php: + version_min: 7.3 site_author: LibreNMS site_description: LibreNMS user and developer documentation repo_url: https://github.com/librenms/librenms/ edit_uri: edit/master/doc repo_name: GitHub -google_analytics: ['UA-79149977-2', 'docs.librenms.org'] nav: - - Home: index.md - - 1. General: - - Acknowledgements: General/Acknowledgement.md - - Changelog: General/Changelog.md - - Code of Conduct: General/CODE_OF_CONDUCT.md - - Features: Support/Features.md - - Welcome to Observium users: General/Welcome-to-Observium-users.md - - 2. Installing: - - How to install LibreNMS: Installation/index.md - - Install LibreNMS: Installation/Install-LibreNMS.md - - LibreNMS VMs: Installation/Images.md - - Migrating from Observium: Installation/Migrating-from-Observium.md - - 3. Getting started: - - Choosing a release: General/Releases.md - - Adding a device: Support/Adding-a-Device.md - - Grouping Devices: Extensions/Device-Groups.md - - Submitting stats: General/Callback-Stats-and-Privacy.md - - Updating an install: General/Updating.md - - 4. Basic Setup: - - Applications: Extensions/Applications.md - - Check_MK Setup: Extensions/Agent-Setup.md - - Billing Module: Extensions/Billing-Module.md - - Dell OpenManage: Extensions/Dell-OpenManage.md - - World Map: Extensions/World-Map.md - - Interface Description Parsing: Extensions/Interface-Description-Parsing.md - - Network Map: Extensions/Network-Map.md - - Syslog: Extensions/Syslog.md - - Dashboards: Extensions/Dashboards.md - - Supermicro: Extensions/Supermicro.md - - 5. Advanced Setup: + - General: + - Home: index.md + - Features: Support/Features.md + - Changelog: General/Changelog.md + - Welcome to Observium users: General/Welcome-to-Observium-users.md + - 3rd Party Libraries: General/Acknowledgement.md + + - Installing: + - Installing LibreNMS: Installation/Install-LibreNMS.md + - Other Methods: + - Docker: Installation/Docker.md + - Virtual machines: Installation/Images.md + - Older guides: + - RHEL / CentOS 6: Installation/Installation-CentOS-6-Apache-Nginx.md + - RHEL / CentOS 7 - Apache: Installation/Installation-CentOS-7-Apache.md + - RHEL / CentOS 7 - Nginx: Installation/Installation-CentOS-7-Nginx.md + - Ubuntu 16.04 - Apache: Installation/Installation-Ubuntu-1604-Apache.md + - Ubuntu 16.04 - Nginx: Installation/Installation-Ubuntu-1604-Nginx.md + - Ubuntu 18.04 - Apache: Installation/Installation-Ubuntu-1804-Apache.md + - Ubuntu 18.04 - Nginx: Installation/Installation-Ubuntu-1804-Nginx.md + - Choosing a release: General/Releases.md + - Updating: General/Updating.md + + - Getting started: + - Adding a device: Support/Adding-a-Device.md + - Grouping Devices: Extensions/Device-Groups.md + - Submitting stats: General/Callback-Stats-and-Privacy.md + - Migrating from Observium: Installation/Migrating-from-Observium.md + + - Setup: + - Applications: Extensions/Applications.md + - Billing Module: Extensions/Billing-Module.md + - Check_MK Setup: Extensions/Agent-Setup.md + - Dashboards: Extensions/Dashboards.md + - Interface Description Parsing: Extensions/Interface-Description-Parsing.md + - Network Map: Extensions/Network-Map.md + - Syslog: Extensions/Syslog.md + - World Map: Extensions/World-Map.md + - Advanced Setup: - 1 Minute Polling: Support/1-Minute-Polling.md - - Fast Ping Checking: Extensions/Fast-Ping-Check.md - - Environment Variables: Support/Environment-Variables.md - - Configuration Docs: Support/Configuration.md - Authentication Options: Extensions/Authentication.md - - Two-Factor Auth: Extensions/Two-Factor-Auth.md - Auto-discovery Setup: Extensions/Auto-Discovery.md - - Scaling LibreNMS: Extensions/Distributed-Poller.md - - RRDCached: Extensions/RRDCached.md - - Galera Database Cluster: Extensions/Galera-Cluster.md - - Sub-directory Support: Extensions/Sub-Directory.md - - Varnish: Extensions/Varnish.md - - Dispatcher Service (RC): Extensions/Dispatcher-Service.md - - RRDTune: Extensions/RRDTune.md - - IRC Bot: Extensions/IRC-Bot.md - - IRC Bot Extensions: Extensions/IRC-Bot-Extensions.md - - SNMP Proxy: Extensions/SNMP-Proxy.md - - SNMP Trap Handler: Extensions/SNMP-Trap-Handler.md - - Customizing the Web UI: Extensions/Customizing-the-Web-UI.md - Bare Dashboard: Support/Bare-Dashboard.md - Cleanup Options: Support/Cleanup-options.md - - 6. 3rd Party Integration: - - Gateone: Extensions/Gateone.md - - Graylog: Extensions/Graylog.md - - Nagios Plugins: Extensions/Services.md - - NFSen: Extensions/NFSen.md - - Oxidized: Extensions/Oxidized.md - - Rancid: Extensions/Rancid.md - - PeeringDB: Extensions/PeeringDB.md - - Proxmox: Extensions/Proxmox.md - - Storing Metrics: - - Intro: Extensions/Metric-Storage.md - - Graphite: Extensions/metrics/Graphite.md - - InfluxDB: Extensions/metrics/InfluxDB.md - - OpenTSDB: Extensions/metrics/OpenTSDB.md - - Prometheus: Extensions/metrics/Prometheus.md - - Smokeping: Extensions/Smokeping.md - - Weathermap: Extensions/Weathermap.md - - 7. API: - - Using the API: API/index.md - - Devices: API/Devices.md - - DeviceGroups: API/DeviceGroups.md - - Ports: API/Ports.md - - PortGroups: API/PortGroups.md - - Port_Groups: API/Port_Groups.md - - Alerts: API/Alerts.md - - Routing: API/Routing.md - - Switching: API/Switching.md - - Inventory: API/Inventory.md - - Bills: API/Bills.md - - ARP: API/ARP.md - - Services: API/Services.md - - System: API/System.md - - Logs: API/Logs.md - - Locations: API/Locations.md - - 8. Alerting: - - Intro: Alerting/index.md - - Introduction: Alerting/Introduction.md + - Configuration Docs: Support/Configuration.md + - Customizing the Web UI: Extensions/Customizing-the-Web-UI.md + - Dispatcher Service (RC): Extensions/Dispatcher-Service.md + - Environment Variables: Support/Environment-Variables.md + - Fast Ping Checking: Extensions/Fast-Ping-Check.md + - Galera Database Cluster: Extensions/Galera-Cluster.md + - IRC Bot Extensions: Extensions/IRC-Bot-Extensions.md + - IRC Bot: Extensions/IRC-Bot.md + - RRDCached: Extensions/RRDCached.md + - RRDTune: Extensions/RRDTune.md + - Scaling LibreNMS: Extensions/Distributed-Poller.md + - SNMP Proxy: Extensions/SNMP-Proxy.md + - SNMP Trap Handler: Extensions/SNMP-Trap-Handler.md + - Sub-directory Support: Extensions/Sub-Directory.md + - Two-Factor Auth: Extensions/Two-Factor-Auth.md + - Varnish: Extensions/Varnish.md + + - Alerting: + - Introduction: Alerting/index.md + - Setup: - Rules: Alerting/Rules.md - Templates: Alerting/Templates.md - Transports: Alerting/Transports.md @@ -146,51 +154,90 @@ nav: - Macros: Alerting/Macros.md - Testing: Alerting/Testing.md - Device Dependencies: Alerting/Device-Dependencies.md - - 9. Getting help: - - How to get help: Support/index.md - - FAQ: Support/FAQ.md - - Install Validation: Support/Install Validation.md - - Performance: Support/Performance.md - - Discovery Support: Support/Discovery Support.md - - Poller Support: Support/Poller Support.md - - Example Hardware Setups: Support/Example-Hardware-Setup.md - - Remote Monitoring VPN: Support/Remote-Monitoring-VPN.md - - SNMP Configuration Examples: Support/SNMP-Configuration-Examples.md - - SSL Configuration: Support/SSL-Configuration.md - - Device Troubleshooting: Support/Device-Troubleshooting.md - - Device Sensors: Support/Device-Sensors.md - - 10. Contributing + Developing: - - Contributing: Developing/index.md + + - 3rd Party Integration: + - Integrations: + - Gateone: Extensions/Gateone.md + - Graylog: Extensions/Graylog.md + - Nagios Plugins: Extensions/Services.md + - NFSen: Extensions/NFSen.md + - Oxidized: Extensions/Oxidized.md + - PeeringDB: Extensions/PeeringDB.md + - Proxmox: Extensions/Proxmox.md + - Rancid: Extensions/Rancid.md + - Smokeping: Extensions/Smokeping.md + - Weathermap: Extensions/Weathermap.md + - Storing Metrics: + - Intro: Extensions/Metric-Storage.md + - Graphite: Extensions/metrics/Graphite.md + - InfluxDB: Extensions/metrics/InfluxDB.md + - OpenTSDB: Extensions/metrics/OpenTSDB.md + - Prometheus: Extensions/metrics/Prometheus.md + + - API: + - Using the API: API/index.md + - Endpoints: + - Alerts: API/Alerts.md + - ARP: API/ARP.md + - Bills: API/Bills.md + - DeviceGroups: API/DeviceGroups.md + - Devices: API/Devices.md + - Inventory: API/Inventory.md + - Locations: API/Locations.md + - Logs: API/Logs.md + - Port_Groups: API/Port_Groups.md + - PortGroups: API/PortGroups.md + - Ports: API/Ports.md + - Routing: API/Routing.md + - Services: API/Services.md + - Switching: API/Switching.md + - System: API/System.md + + - Getting help: + - How to get help: Support/index.md + - FAQ: Support/FAQ.md + - Install Validation: Support/Install Validation.md + - Performance: Support/Performance.md + - Discovery Support: Support/Discovery Support.md + - Poller Support: Support/Poller Support.md + - Example Hardware Setups: Support/Example-Hardware-Setup.md + - Remote Monitoring VPN: Support/Remote-Monitoring-VPN.md + - SNMP Configuration Examples: Support/SNMP-Configuration-Examples.md + - Device Troubleshooting: Support/Device-Troubleshooting.md + - Device Sensors: Support/Device-Sensors.md + + - Contributing + Developing: + - Contributing: - Getting Started: Developing/Getting-Started.md - Using Git: Developing/Using-Git.md - - Code Guidelines: Developing/Code-Guidelines.md - - Style Guidelines: Developing/Style-Guidelines.md - Validating Code: Developing/Validating-Code.md - Code Structure: Developing/Code-Structure.md - Creating Documentation: Developing/Creating-Documentation.md - - Licensing: Developing/Licensing.md - Component: Extensions/Component.md - - Support for a new OS: - - Intro: Developing/Support-New-OS.md - - Initial Detection: Developing/os/Initial-Detection.md - - Mem/CPU Information: Developing/os/Mem-CPU-Information.md - - Test Units: Developing/os/Test-Units.md - - Health Information: Developing/os/Health-Information.md - - Wireless Sensors: Developing/os/Wireless-Sensors.md - - Custom Graphs: Developing/os/Custom-Graphs.md - - Settings: Developing/os/Settings.md - - Sensor State Support: Developing/Sensor-State-Support.md - - SNMP Traps: Developing/SNMP-Traps.md - - Dynamic Config: Developing/Dynamic-Config.md + - Support for a new OS: + - Intro: Developing/Support-New-OS.md + - Initial Detection: Developing/os/Initial-Detection.md + - Mem/CPU Information: Developing/os/Mem-CPU-Information.md + - Test Units: Developing/os/Test-Units.md + - Health Information: Developing/os/Health-Information.md + - Wireless Sensors: Developing/os/Wireless-Sensors.md + - Custom Graphs: Developing/os/Custom-Graphs.md + - Settings: Developing/os/Settings.md + - Sensor State Support: Developing/Sensor-State-Support.md + - SNMP Traps: Developing/SNMP-Traps.md + - Dynamic Config: Developing/Dynamic-Config.md + - Plugin System: Extensions/Plugin-System.md + - Developer notes: - Merging Pull Requests: Developing/Merging-Pull-Requests.md - Creating Release: Developing/Creating-Release.md - - Plugin System: Extensions/Plugin-System.md - - 11. Misc: - - Security information: General/Security.md - - CLI Scripts: Support/CLI-Tools.md - - Device Notes: - - Intro: Support/Device-Notes/index.md - - Carel pCOweb: Support/Device-Notes/Carel-pCOweb-Devices.md - - Asuswrt-Merlin: Support/Device-Notes/AsuswrtMerlin.md - - OpenWRT: Support/Device-Notes/Openwrt.md - - RouterOS: Support/Device-Notes/Routeros.md + + - Miscellaneous: + - Security information: General/Security.md + - CLI Scripts: Support/CLI-Tools.md + - Device Notes: + - Asuswrt-Merlin: Support/Device-Notes/AsuswrtMerlin.md + - Carel pCOweb: Support/Device-Notes/Carel-pCOweb-Devices.md + - Dell OpenManage: Extensions/Dell-OpenManage.md + - OpenWRT: Support/Device-Notes/Openwrt.md + - RouterOS: Support/Device-Notes/Routeros.md + - Supermicro: Extensions/Supermicro.md diff --git a/tests/DocsTest.php b/tests/DocsTest.php index 155c1544ae..9f36369700 100644 --- a/tests/DocsTest.php +++ b/tests/DocsTest.php @@ -30,17 +30,6 @@ use Symfony\Component\Yaml\Yaml; class DocsTest extends TestCase { private $hidden_pages = [ - 'API/API-Docs.md', - 'Alerting/Old_Templates.md', - 'Extensions/Alerting.md', - 'Extensions/Email-Alerting.md', - 'Extensions/Graphite.md', - 'Extensions/InfluxDB.md', - 'Extensions/OpenTSDB.md', - 'Extensions/Poller-Service.md', - 'Extensions/Port-Description-Parser.md', - 'Extensions/Prometheus.md', - 'Extensions/RRDCached-Security.md', 'General/Changelogs/2013.md', 'General/Changelogs/2014.md', 'General/Changelogs/2015.md', @@ -49,25 +38,6 @@ class DocsTest extends TestCase 'General/Changelogs/2018.md', 'General/Changelogs/2019.md', 'General/Changelogs/2020.md', - 'General/Contributing.md', - 'General/Credits.md', - 'Installation/Installation-(Debian-Ubuntu).md', - 'Installation/Installation-(RHEL-CentOS).md', - 'Installation/Installation-CentOS-6-Apache-Nginx.md', - 'Installation/Installation-Ubuntu-1404-Apache.md', - 'Installation/Installation-Ubuntu-1404-Lighttpd.md', - 'Installation/Installation-Ubuntu-1404-Nginx.md', - 'Installation/Installation-Ubuntu-1604-Apache.md', - 'Installation/Installation-Ubuntu-1604-Nginx.md', - 'Installation/Installation-Ubuntu-1804-Nginx.md', - 'Installation/Installation-Ubuntu-1804-Apache.md', - 'Installation/Installation-Debian-11-Nginx.md', - 'Installation/Installation-CentOS-7-Nginx.md', - 'Installation/Installation-CentOS-7-Apache.md', - 'Installation/Installing-LibreNMS.md', - 'Support/Support-New-OS.md', - 'Installation/Ubuntu-image.md', - 'Installation/CentOS-image.md', ]; /**