Puppet4の統合

最終更新日: 02 年 2022 月 XNUMX 日

Puppetは、システム管理者がインフラストラクチャのプロビジョニングと構成を管理できるようにするIT自動化ソフトウェアです。 システム管理者は、正しいインフラストラクチャ構成を維持することに加えて、停止を防ぐために監視にさらに依存していることを知っています。 Puppetモジュールはこれを念頭に置いて作成されており、PuppetインフラストラクチャコードでLogicMonitorアカウントも管理できます。 これにより、正しいデバイスプロパティが維持されていること、デバイスが正しいコレクターによって監視されていること、デバイスが適切なデバイスグループに残っていることなどを確認できます。

ご注意:

  • このモジュールは、Puppetバージョン3および4と互換性があり、当社の異なる(新しい)バージョンです。 元のモジュール
  • このモジュールは、Linuxサーバーとのみ互換性があります。 Windowsの互換性は、将来のリリースで追加される可能性があります。
  • このモジュールにはPuppetDBが必要です

モジュールの概要

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

クラス

  • ロジックモニター:LogicMonitorAPIとの対話に必要な資格情報の設定を処理します
  • logicmonitor :: master:エクスポートされたlm_deviceリソースとlm_devicegroupリソースを収集します。 LogicMonitorAPIと通信します
  • logicmonitor :: collector: デバイスの LogicMonitor コレクター管理を処理します。 lm_collector および lm_installer リソースのインスタンスを宣言します
  • logicmonitor :: device:エクスポートされたlm_deviceリソースを宣言します
  • logicmonitor :: device_group:エクスポートされたlm_device_groupリソースを宣言します

リソースタイプ

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

要件

LogicMonitorのPuppetModuleを使用するには、次のものが必要です。

  1. Ruby1.8.7または1.9.3
  2. Puppet3.XまたはPuppet4.x
  3. JSONRubyの宝石 (Ruby 1.9.3にデフォルトで含まれています)
  4. 構成をPuppetに保存する
  5. デバイス構成

ストア構成

ストア構成を有効にするには、次のように、puppet.conf ファイルの [master] セクションに storeconfigs = true を追加します。

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

有効にすると、構成情報を保存するためにPuppetDBが必要になります。

デバイス構成

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

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

LogicMonitorのPuppetModuleは、次のXNUMXつの方法のいずれかでインストールできます。

  1. 使い方 Puppetのモジュールツール
  2. 使い方 GitHub

Puppetのモジュールツールの使用

Puppet Masterで次のコマンドを実行して、で公開されているLogicMonitor PuppetModuleの最新バージョンをダウンロードしてインストールします。 パペットフォージ:

$ puppet module install logicmonitor-logicmonitor

GitHubの使用

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

スタートガイド

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

Puppet の新規ユーザーの作成

監査ログで Puppet によって行われた変更を追跡するために、Puppet ノード内で排他的に使用する LogicMonitor アカウントで管理者権限を持つ新しいユーザーを作成することをお勧めします。 このユーザー API トークンをプロビジョニングする必要があります。

 

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

これは LogicMonitor モジュールの最上位クラスです。 Puppet Master でのみ定義する必要があります。 その目的は、すべての子クラスで使用される LogicMonitor 資格情報を設定することです。

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

マスタークラスは、グループおよびデバイス管理のために、LogicMonitorモジュールとLogicMonitorアカウント間の通信を可能にします。 このクラスは、 コレクタ lm_device および lm_devicegroup エクスポートされたリソース用。 これにより、競合が回避され、LogicMonitor API と通信するための単一の連絡先が提供されます。 このクラスは、単一のデバイスで明示的に宣言する必要があります。

ご注意: logicmonitor::collector および logicmonitor::master クラスを持つすべてのデバイスは、発信 https 要求を行うことができる必要があります。

パラメータ:なし

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

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

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

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

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

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

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

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

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

include logicmonitor::collector

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

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

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

@@lm_device_group{"/parent/child/grandchild/greatgrandchild":
ensure => present,
disable_alerting => false,
properties => {"snmp.community" => "n3wc0mm", "mysql.port" => 9999, "fake.pass" => "12345"}, description => "This is the description",
}

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

記事上で