人形の統合

最終更新日: 25 年 2020 月 XNUMX 日

Puppetは、システム管理者がインフラストラクチャのプロビジョニングと構成を管理できるようにするIT自動化ソフトウェアです。 LogicMonitorのPuppetモジュールを使用すると、PuppetインフラストラクチャコードでLogicMonitorアカウントも管理できます。

注意:

  • このモジュールは、Linuxサーバーとのみ互換性があります。 Windowsの互換性は、将来のリリースで追加される可能性があります。

モジュールの概要

LogicMonitorのPuppetモジュールは、5つのクラスと4つのカスタムリソースタイプを定義します。

クラス

  • logicmonitor:LogicMonitorAPIとの対話に必要な資格情報の設定を処理します
  • logicmonitor :: config:デフォルトの資格情報をlogicmonitorクラスに提供します
  • logicmonitor :: master:エクスポートされたlm_hostリソースとlm_hostgroupリソースを収集します。 LogicMonitorAPIと通信します
  • logicmonitor :: collector:デバイスのLogicMonitorコレクター管理を処理します。 lm_collectorおよびlm_installerリソースのインスタンスを宣言します
  • logicmonitor:host:エクスポートされたlm_hostリソースを宣言します

リソースタイプ

  • lm_hostgroup:LogicMonitorデバイスグループの処理の動作を定義します。 エクスポートされたリソースの使用をお勧めします
  • lm_host:LogicMonitorデバイスの処理動作を定義します。 logicmonitor :: hostクラス内でのみ使用されます
  • lm_collector:LogicMonitorコレクターの処理動作を定義します。 logicmonitor :: collectorクラスでのみ使用されます
  • lm_installer:LogicMonitorコレクターバイナリインストーラーの処理動作を定義します。 logicmonitor :: collectorクラス内でのみ使用されます

要件

LogicMonitorのPuppetModuleを使用するには、次のものがあることを確認する必要があります。

  1. Ruby1.8.7または1.9.3
  2. パペット3.X
  3. JSONRubyの宝石 (Ruby 1.9.3にデフォルトで含まれています)
  4. 構成をPuppetに保存する

ストア構成は、 エクスポートされたリソース このモジュールで使用されます。 ストア構成を有効にするには、次のように、storeconfigs = trueをpuppet.confファイルの[master]セクションに追加します。

# /etc/puppet/puppet.conf
[master]
storeconfigs = true

有効にすると、Puppetには構成情報を保存するためのデータベースが必要になります。 人形はお勧めします PuppetDB、ただし、他のデータベースソリューションも利用できます。

デバイス構成

他のLogicMonitorデバイスと同様に、コレクターはデータを収集するためにデバイスと通信する必要があります。 正しいことを確認してください プロパティと認証プロトコル Puppetインストールの一部として構成されます。

LogicMonitorPuppetモジュールのインストール

LogicMonitorの元のPuppetモジュールはGitHubからインストールできます。

$ cd /etc/puppet/modules
$ git clone git: //github.com/logicmonitor/logicmonitor-puppet.git
$ mv logicmonitor-puppet logicmonitor

はじめに

LogicMonitorのPuppetModuleをインストールしたら、次のセクションの使用を開始できます。

Puppetの新しいユーザーを作成します

を作成することをお勧めします 新製品 Puppetノード内で排他的に使用して監査ログでPuppetによって行われた変更を追跡する、LogicMonitorアカウントの管理者権限を持つユーザー。

 

  • クラス:logicmonitor(modules /logicmonitor/manifests/init.pp)

これは、LogicMonitorモジュールの最上位クラスです。 目的は、すべての子クラスで使用されるLogicMonitor資格情報を設定することです。 このクラスを明示的に宣言すると、logicmonitor :: configクラスに設定されているデフォルトの資格情報が上書きされます。 このクラスは明示的に宣言する必要はありません。

説明入力
アカウントLogicMonitor アカウント名
たとえば、https://mycompany.logicmonitor.com にログインする場合、アカウントは「mycompany」である必要があります。
文字列
デフォルトは $account logicmonitor::config
userホスト、グループ、およびコレクターを管理するためのアクセス権を持つLogicMonitorユーザーのユーザー名。 Puppetによって実行されたアクションは、このユーザーとして監査ログに表示されます。 Puppetアカウント専用のユーザーを作成することをお勧めします。文字列。
logicmonitor::config で $user にデフォルト設定
passwordLogicMonitorユーザーPuppetに関連付けられたパスワードは、に代わって変更を加えます。文字列
logicmonitor::config で $password にデフォルト設定
  • クラス:logicmonitor :: config(modules /logicmonitor/manifests/config.pp)

このクラスは、Puppet環境のデフォルトのLogicMonitorアカウント資格情報を設定するために使用されます。 このクラスは明示的に宣言する必要はありません。

パラメータ:なし

  • クラス:logicmonitor :: master(modules /logicmonitor/manifests/master.pp)

マスタークラスは、グループおよびデバイス管理のために、LogicMonitorモジュールとLogicMonitorアカウント間の通信を可能にします。 このクラスは、 コレクタ lm_hostおよびlm_hostgroupがエクスポートしたリソースの場合。 これにより、競合が防止され、LogicMonitorAPIと通信するための単一の連絡先が提供されます。 このクラスは、単一のデバイスで明示的に宣言する必要があります。 注: logicmonitor :: collector & logicmonitor :: master クラスは、発信http(s)リクエストを作成できる必要があります。

パラメータ:なし

  • クラス:logicmonitor :: collector(modules / logicmonitor / manifests / collector.pp)

このクラスは、指定されたノードでのLogicMonitorコレクターの作成、ダウンロード、およびインストールを管理します。

  • コレクターノードの唯一の絶対的な要件は、Linuxであり、ポート443を介して発信SSL接続を確立できることです。
  • コレクターシステムには少なくとも1GのRAMが搭載されていることをお勧めします
  • コレクターが100を超えるホストのデータを収集する場合は、そのコレクター専用のマシンを使用することをお勧めします。
説明入力
インストールディレクトリLogicMonitorコレクターをインストールするためのパス。有効なディレクトリパス。 デフォルトは「/ usr / local / logicmonitor」です

コレクターをノードに追加するには:

include logicmonitor::collector

コレクターをインストールする特定の場所を指定する場合:

class{"logicmonitor::collector":
install_dir => $install_dir,
}

クラス:logicmonitor :: host(modules /logicmonitor/manifests/host.pp)

このクラスは、LogicMonitorアカウントにデバイスを追加するために使用されます。 Puppetを介して管理されるデバイスでは、デバイス定義で指定されていないプロパティが削除されます。

説明入力
コレクタコレクターマシンの完全修飾ドメイン名。 これは、コレクターマシンでhostname-fを実行することで見つけることができます。ストリング。 デフォルトなし(必須)
hostnameノードのIPアドレスまたは完全修飾ドメイン名。 これは、コレクターがこのデバイスに到達する方法です。ストリング。 デフォルトは $ fqdn
表示名LogicMonitorアカウントに表示する人間が読める形式の名前。 例:「dev2.den1」ストリング。 デフォルトは $ fqdn
説明ホストの長いテキストの説明。 これは、LogicMonitorアカウントのデバイスにカーソルを合わせると表示されます。ストリング。 デフォルトなし(オプション)
アラートを有効にするデバイスのアラートをオンまたはオフにします。 親グループがalertenable = falseに設定されている場合、子ホストのアラートもオフになります。ブール値、デフォルトはTrue。
グループヘッドデバイスがメンバーになる必要があるグループのリスト。 各グループは、そのフルパスを表す文字列です。 例:「/ linux / production」リスト。 デフォルトなし(オプション)
プロパティホストに設定するプロパティのハッシュ。 各エントリは「propertyName」=>「propertyValue」である必要があります。 例:{“ mysql.port” => 6789、“ mysql.user” =>“ dba1”}ハッシュ。 デフォルトなし(オプション)

class {'logicmonitor::host':
        collector => "qa1.domain.com",
        hostname => "10.171.117.9",
        groups => ["/Puppetlabs", "/Puppetlabs/Puppetdb"],
        properties => {"snmp.community" => "Puppetlabs"},
        description => "This device hosts the PuppetDB instance for this deployment",
      }

class {'logicmonitor::host':
        collector => $fqdn,
        displayname => "MySQL Production Host 1",
        groups => ["/Puppet", "/production", "/mysql"],
        properties => {"mysql.port" => 1234},
      }

デバイスグループの追加:

タイプ:Lm_hostgroup デバイスグループは、を使用して追加する必要があります エクスポートされたリソース 衝突を防ぐため。 logicmonitor :: masterクラスが含まれているのと同じノードからデバイスグループを追加することをお勧めします。 デバイスは、XNUMX、XNUMX、または多数のデバイスグループに含めることができます。 デバイスグループは、LogicMonitorデバイスの表示方法と管理方法を整理するために使用され、コレクターを必要としません。 デバイスグループレベルで設定されたプロパティは、グループに追加されたすべてのデバイスに継承されます。

説明入力
名前変数puppet namevarは、リソースを一意に識別するために使用されます。 フルパスパラメータが空の場合、namevarがフルパスとして使用されます。ストリング。 デフォルトなし(必須)
フルパスホストグループのフルパス。 たとえば、親グループ「foo」を持つホストグループ「bar」のフルパスは「/ foo / bar」になります。ストリング。 デフォルトは$ namevarです。 (必須)
確保人形 確保 パラメータに一致する最初のデバイスのリモートコントロール URL を返します。有る無し。 デフォルトなし(必須)
アラートを有効にするグループのアラートをオン/オフにします。 alertenableがfalseの場合、すべての子グループとホストでアラートが無効になりますブール値。 デフォルトはTrueです。
プロパティホストに設定するプロパティのハッシュ。 各エントリは「propertyName」=>「propertyValue」である必要があります。 例:{“ mysql.port” => 6789、“ mysql.user” =>“ dba1”}。 プロパティは、すべての子グループとホストに継承されますハッシュ、デフォルトなし(オプション)
説明ホストの長いテキストの説明。 これは、LogicMonitorアカウントのグループにカーソルを合わせると表示されます。ストリング。 デフォルトなし(オプション)

デバイスグループのプロパティを追加および編集するには、以下の例のlm_hostgroupを使用します。

@@lm_hostgroup{"/parent/child/grandchild/greatgrandchild":
  ensure => present,
  alertenable => true,
  properties => {"snmp.community" => "n3wc0mm", "mysql.port" => 9999,"fake.pass" => "12345"},
  description => "This is the description that shows up in the yellow box from hover in your LM account",
}

動作中のモジュールのその他の例については、logicmonitor-puppet /README.mdを確認してください。

記事上で