Metadata-Version: 1.1
Name: curlnagios
Version: 0.6.0
Summary: curl check_http nagios plugin
Home-page: https://github.com/pablodav/curlnagios
Author: Pablo Estigarribia
Author-email: pablodav@gmail.com
License: MIT
Description: Title1
        ======
        
        Checks an url raise an alert if some problem is found.
        Uses curl with all its power, so you can extend your check with all curl options.
        
        `VERSION  <burp_reports/VERSION>`__
        
        Install
        =======
        
        Linux::
        
            sudo pip3 install curlnagios --upgrade
        
        Also is possible to use::
        
            sudo python3 -m pip install curlnagios --upgrade
        
        On windows with python3.5::
        
            pip install curlnagios --upgrade
        
        For proxies add::
        
            --proxy='http://user:passw@server:port'
        
        Usage
        =====
        
        Use the command line::
        
            > curlnagios --help
              usage: curlnagios [-h] [-u [URL]] [-e [EXTRA_ARGS]]
        
                optional arguments:
                -h, --help            show this help message and exit
                -u [URL], --url [URL]
                                        url to check 
                -e [EXTRA_ARGS], --extra_args [EXTRA_ARGS]
                                        extra args to add to curl, see `curl manpage <https://curl.haxx.se/docs/manpage.html>`_.
        
        
        Example usage
        =============
        
        Example use with proxy::
        
            > curlnagios --url='http://xx/dd' --extra_args='--proxy http://user:pass@host:8080'
        
        Example using proxy, and authentication with ntlm for the website:
        
            > curlnagios --url='http://xx/dd' --extra_args='--proxy http://user:pass@host:8080 --user user:pass --ntlm'
        
        All the extra_args are options directly comming from curl manpage, you can use almost any 
        with exception of -s, -o, -w as these are
        implicit added on the curl command line argument to format the output for this plugin.
        
        Example usage with AzureAD oauth2
        =================================
        
        When creating authentication with AzureAD oauth2, you need to create a client Application and Azure AD only applications:
        
        https://apps.dev.microsoft.com/#/appList
        
        Then use:
        
            > curlnagios --url 'https://{yoururltotest}/api/path' --client_id 'unique-client-id' --scope 'https://{tenant}/unique-id-here-for-the-app/.default' --client_secret 'theclientoken' --grant_type 'client_credentials' --auth_url 'https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token' --oauth2
        
        Change {tenant} with your identifier and the unique id for client and for application.
        Add your client secret
        
        This comes from documentation using token: https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-access-token
        
        Nagios config
        =============
        
        Example command::
        
            define command{
                command_name  check_http_curl
                command_line  /usr/local/bin/curlnagios --url='$ARG1$' --extra_args='$ARG2$'
            }
        
            define command{
                command_name  check_http_curl_azuread
                command_line  /usr/local/bin/curlnagios --url='$ARG1$' --client_id '$ARG2$' --scope '$ARG3$' --client_secret '$ARG4$' --auth_url 'https://login.microsoftonline.com/$ARG5$/oauth2/v2.0/token' --oauth2 --extra_args='$ARG6$'
            }
        
        Example service::
        
            define service {
                    host_name                       SERVERX
                    service_description             service_name
                    check_command                   check_http_curl!http://url/path!--proxy http://user:name@host:8080 --user user:name --ntlm
                    use				                generic-service
                    notes                           some useful notes
            }
        
        Example service bypassing reverse proxy and dns and proxy server::
        
            define service {
                    host_name                       SERVERY
                    service_description             fqdn.backend1
                    check_command                   check_http_curl!http://192.168.10.10:80!--noproxy "192.168.10.10" -H "Host: fqdn.site.name"
                    use				                generic-service
                    notes                           Monitoring backend1 de of site fqdn.site.name
            }
        
             ## In this way you can connect to some backend and pass with -H the host header to get and also ensure no proxy used to connect to url.
        
        Example using azuread oauth2::
        
            define service {
                    host_name                       SERVERY
                    service_description             fqdn.backend1
                    check_command                   check_http_curl_azuread!http://fqdn.site.name/api/xx!client-unique-id!https://{tenant}/unique-id-here-for-the-app/.default!client-secret-unique!tenant!some extra args if desired
                    use				                generic-service
                    notes                           Monitoring backend1 de of site fqdn.site.name
            }
        
        You can use ansible role that already has the installation and command: https://github.com/CoffeeITWorks/ansible_nagios4_server_plugins
        
        TODO
        ====
        
        * Use hash passwords
        * Add Unit tests?
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: System :: Monitoring
