W3cubDocs

/Ansible

logicmonitor - Manage your LogicMonitor account through Ansible Playbooks

New in version 2.2.

Synopsis

LogicMonitor is a hosted, full-stack, infrastructure monitoring platform. This module manages hosts, host groups, and collectors within your LogicMonitor account.

Requirements (on host that executes module)

  • An existing LogicMonitor account
  • Linux

Options

parameter required default choices comments
action
yes
  • add
  • remove
  • update
  • sdt
The action you wish to perform on target.
Add: Add an object to your LogicMonitor account.
Remove: Remove an object from your LogicMonitor account.
Update: Update properties, description, or groups (target=host) for an object in your LogicMonitor account.
SDT: Schedule downtime for an object in your LogicMonitor account.
alertenable
no True
  • True
  • False
A boolean flag to turn alerting on or off for an object.
Optional for managing all hosts (action=add or action=update).
collector
no
The fully qualified domain name of a collector in your LogicMonitor account.
This is required for the creation of a LogicMonitor host (target=host action=add).
This is required for updating, removing or scheduling downtime for hosts if 'displayname' isn't specified (target=host action=update action=remove action=sdt).
company
yes
The LogicMonitor account company name. If you would log in to your account at "superheroes.logicmonitor.com" you would use "superheroes."
description
no
The long text description of the object in your LogicMonitor account.
Optional for managing hosts and host groups (target=host or target=hostgroup; action=add or action=update).
displayname
no hostname -f
The display name of a host in your LogicMonitor account or the desired display name of a device to manage.
Optional for managing hosts (target=host).
duration
no 30
The duration (minutes) of the Scheduled Down Time (SDT).
Optional for putting an object into SDT (action=sdt).
fullpath
no
The fullpath of the host group object you would like to manage.
Recommend running on a single Ansible host.
Required for management of LogicMonitor host groups (target=hostgroup).
groups
no
A list of groups that the host should be a member of.
Optional for managing hosts (target=host; action=add or action=update).
hostname
no hostname -f
The hostname of a host in your LogicMonitor account, or the desired hostname of a device to manage.
Optional for managing hosts (target=host).
id
no
ID of the datasource to target.
Required for management of LogicMonitor datasources (target=datasource).
password
yes
The password of the specified LogicMonitor user
properties
no
A dictionary of properties to set on the LogicMonitor host or host group.
Optional for managing hosts and host groups (target=host or target=hostgroup; action=add or action=update).
This parameter will add or update existing properties in your LogicMonitor account.
starttime
no Now
The time that the Scheduled Down Time (SDT) should begin.
Optional for managing SDT (action=sdt).
Y-m-d H:M
target
yes
  • collector
  • host
  • datsource
  • hostgroup
The type of LogicMonitor object you wish to manage.
Collector: Perform actions on a LogicMonitor collector.
NOTE You should use Ansible service modules such as service or supervisorctl for managing the Collector 'logicmonitor-agent' and 'logicmonitor-watchdog' services. Specifically, you'll probably want to start these services after a Collector add and stop these services before a Collector remove.
Host: Perform actions on a host device.
Hostgroup: Perform actions on a LogicMonitor host group.
NOTE Host and Hostgroup tasks should always be performed via local_action. There are no benefits to running these tasks on the remote host and doing so will typically cause problems.
user
yes
A LogicMonitor user name. The module will authenticate and perform actions on behalf of this user.

Examples

# example of adding a new LogicMonitor collector to these devices
---
- hosts: collectors
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Deploy/verify LogicMonitor collectors
    become: yes
    logicmonitor:
      target=collector
      action=add
      company={{ company }}
      user={{ user }}
      password={{ password }}

#example of adding a list of hosts into monitoring
---
- hosts: hosts
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Deploy LogicMonitor Host
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=host
      action=add
      collector='mycompany-Collector'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      groups="/servers/production,/datacenter1"
      properties="{'snmp.community':'secret','dc':'1', 'type':'prod'}"

#example of putting a datasource in SDT
---
- hosts: localhost
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: SDT a datasource
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=datasource
      action=sdt
      id='123'
      duration=3000
      starttime='2017-03-04 05:06'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'

#example of creating a hostgroup
---
- hosts: localhost
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Create a host group
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=add
      fullpath='/servers/development'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      properties="{'snmp.community':'commstring', 'type':'dev'}"

#example of putting a list of hosts into SDT
---
- hosts: hosts
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: SDT hosts
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=host
      action=sdt
      duration=3000
      starttime='2016-11-10 09:08'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      collector='mycompany-Collector'

#example of putting a host group in SDT
---
- hosts: localhost
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: SDT a host group
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=sdt
      fullpath='/servers/development'
      duration=3000
      starttime='2017-03-04 05:06'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'

#example of updating a list of hosts
---
- hosts: hosts
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Update a list of hosts
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=host
      action=update
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      collector='mycompany-Collector'
      groups="/servers/production,/datacenter5"
      properties="{'snmp.community':'commstring','dc':'5'}"

#example of updating a hostgroup
---
- hosts: hosts
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Update a host group
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=update
      fullpath='/servers/development'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      properties="{'snmp.community':'hg', 'type':'dev', 'status':'test'}"

#example of removing a list of hosts from monitoring
---
- hosts: hosts
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Remove LogicMonitor hosts
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=host
      action=remove
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      collector='mycompany-Collector'

#example of removing a host group
---
- hosts: hosts
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Remove LogicMonitor development servers hostgroup
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=remove
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      fullpath='/servers/development'
  - name: Remove LogicMonitor servers hostgroup
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=remove
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      fullpath='/servers'
  - name: Remove LogicMonitor datacenter1 hostgroup
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=remove
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      fullpath='/datacenter1'
  - name: Remove LogicMonitor datacenter5 hostgroup
    # All tasks except for target=collector should use local_action
    local_action: >
      logicmonitor
      target=hostgroup
      action=remove
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      fullpath='/datacenter5'

### example of removing a new LogicMonitor collector to these devices
---
- hosts: collectors
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Remove LogicMonitor collectors
    become: yes
    logicmonitor:
      target=collector
      action=remove
      company={{ company }}
      user={{ user }}
      password={{ password }}

#complete example
---
- hosts: localhost
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Create a host group
    local_action: >
      logicmonitor
      target=hostgroup
      action=add
      fullpath='/servers/production/database'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      properties="{'snmp.community':'commstring'}"
  - name: SDT a host group
  local_action: >
    logicmonitor
    target=hostgroup
    action=sdt
    fullpath='/servers/production/web'
    duration=3000
    starttime='2012-03-04 05:06'
    company='{{ company }}'
    user='{{ user }}'
    password='{{ password }}'

- hosts: collectors
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: Deploy/verify LogicMonitor collectors
    logicmonitor:
      target: collector
      action: add
      company: {{ company }}
      user: {{ user }}
      password: {{ password }}
  - name: Place LogicMonitor collectors into 30 minute Scheduled downtime
    logicmonitor: target=collector action=sdt company={{ company }}
      user={{ user }} password={{ password }}
  - name: Deploy LogicMonitor Host
    local_action: >
      logicmonitor
      target=host
      action=add
      collector=agent1.ethandev.com
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      properties="{'snmp.community':'commstring', 'dc':'1'}"
      groups="/servers/production/collectors, /datacenter1"

- hosts: database-servers
  remote_user: '{{ username }}'
  vars:
    company: 'mycompany'
    user: 'myusername'
    password: 'mypassword'
  tasks:
  - name: deploy logicmonitor hosts
    local_action: >
      logicmonitor
      target=host
      action=add
      collector=monitoring.dev.com
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'
      properties="{'snmp.community':'commstring', 'type':'db', 'dc':'1'}"
      groups="/servers/production/database, /datacenter1"
  - name: schedule 5 hour downtime for 2012-11-10 09:08
    local_action: >
      logicmonitor
      target=host
      action=sdt
      duration=3000
      starttime='2012-11-10 09:08'
      company='{{ company }}'
      user='{{ user }}'
      password='{{ password }}'

Return Values

Common return values are documented here Common Return Values, the following are the fields unique to this module:

name description returned type sample
success flag indicating that execution was successful success boolean True

Notes

Note

You must have an existing LogicMonitor account for this module to function.

This is an Extras Module

For more information on what this means please read Extras Modules

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, developing_test_pr and Developing Modules.

© 2012–2016 Michael DeHaan
© 2016 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/logicmonitor_module.html