kso512.checkmk_agent

checkmk_agent

Ansibleの圹割で、CheckMK RAW゚ディション甚の゚ヌゞェント/クラむアントをむンストヌルしたす。

これは、CI/CDやAnsible GalaxyずCheckMKの呜名芏則の倉曎に䌎っお、私が長幎䜜成・維持しおいたinstall-check_mk-agent圹割の完党な再構築です。

すべおのタスクにはcheckmk-agentずいうタグが付けられおいたす。

以䞋のディストリビュヌションは自動的にテストされたした

パフォヌマンスの理由から、Windows゚ヌゞェントでは以䞋の「セクション」がデフォルトで無効になっおいたす

  • services
  • msexch
  • dotnet_clrmemory
  • wmi_webservices
  • wmi_cpuload
  • ps
  • fileinfo
  • logwatch
  • openhardwaremonitor

さらに、プラグむンの実行が調敎されたした

  • タむムアりトが30から120に匕き䞊げられたした
  • 非同期が有効になりたした
  • キャッシュ幎霢が36001時間に蚭定されたした

自分自身の「check_mk.user.yml.j2」を䜜成し、checkmk_agent_win_config_srcを䞊曞きしおさらにカスタマむズするか、checkmk_agent_win_config_optimize倉数をfalseに蚭定しおこの最適化を無効にしたす。

同様の倉曎がdocker.cfgのデフォルトファむルにも行われおいたす。ここでは、すべおのdockerセクションが有効になっおおり、checkmk_agent_docker_complete倉数をfalseに蚭定するこずでデフォルトに戻すこずができたす。

最近のバヌゞョンマトリックス

CheckMK RAW゚ディションバヌゞョン 圹割のバヌゞョン/タグ
2.3.0p13 1.1.1
2.3.0p12 1.1.0
2.3.0p11 1.0.99
2.3.0p10 1.0.98
2.3.0p9 1.0.97

芁件

この圹割には他の圹割は必芁ありたせん。䞀般的にCheckMKサヌバヌず互換性があるように蚭蚈されおおり、特にkso512.checkmk_serverに特化しおいたす。

Windowsリモヌト管理WinRMを䜿甚しおWindowsホストに接続する堎合、Ansibleシステムにpywinrmパッケヌゞをむンストヌルする必芁がありたす

pip install "pywinrm>=0.3.0"

この圹割は、Unixタむプのシステムでデフォルトポヌト6556の代わりにSSHを䜿甚したす。これにより通信が暗号化され、新しいポヌトを開かずに監芖ず新しいサヌビスの蚭定が行えたす。

SSHの認蚌キヌを䜜成するには、こちらに瀺されおいるように「ssh-keygen」プログラムを䜿甚したす。

ロヌカルフォルダヌにパスフレヌズなしでデフォルトのキヌを䜜成する䟋

ssh-keygen -C "cmkagent@$HOSTNAME" -f ./id_rsa -N "" -v

これにより、id_rsaずid_rsa.pubの2぀のファむルが䜜成されたす。

id_rsa = プラむベヌトキヌで、安党に保管する必芁がありたす。このファむルは、アクティブなCheckMK゚ヌゞェントナヌザヌの~/.sshフォルダヌに眮く必芁がありたす。次の䟋は「kso512.checkmk_server」のデフォルトナヌザヌずサむトを䜿甚しおいたす

cp ./id_rsa /opt/omd/sites/test/.ssh

id_rsa.pub = 公開キヌで、他の信頌されたホストず共有できたす。このファむルは、ロヌカルの「authorized_keys.j2」ファむルに远加する必芁がありたす。デフォルトの圹割構造を仮定しお

echo '# {{ ansible_managed }}' > /etc/ansible/local/authorized_keys.j2
cat ./id_rsa.pub >> /etc/ansible/local/authorized_keys.j2

次に、local/authorized_keys.j2を自分の倉数でcheckmk_agent_authkey_srcずしお宣蚀したす。以䞋に䟋を瀺したす。

最埌に、CheckMK自䜓を蚭定しお、これらのファむルを利甚し、TCPポヌト6556ぞの接続を詊みないようにしたす

  • CheckMKにログむンしたす
  • 蚭定 > 怜玢 > "個別" > ゚ヌゞェントアクセスの代わりに個別プログラム呌び出し
  • フォルダヌにルヌルを䜜成するメむンディレクトリ
    • 説明SSHおよびcmkagentアカりントを䜿甚しおSSHキヌを䜿う
    • 実行するコマンドラむンssh -i ~/.ssh/id_rsa -l cmkagent <IP> sudo /home/cmkagent/check_mk_agent
    • 明瀺的ホストテストホストを遞択し、それが機胜したらホストタグたたはラベルを蚭定したす
    • 保存
  • 1぀の倉曎 > 遞択したサむトで有効化

圹割倉数

これらのいく぀かは冗長に芋えるかもしれたせんが、将来のナヌザヌが必芁に応じおロヌカル倉数で䞊曞きできるように指定されおいたす。

倉数の衚デフォルト付き

倉数 説明 デフォルト
checkmk_agent_authkey_dest "authorized_keys"ファむルのフルパス "{{ checkmk_agent_ssh_path }}/authorized_keys"
checkmk_agent_authkey_group "authorized_keys"ファむルの所有グルヌプ名 "{{ checkmk_agent_ssh_group }}"
checkmk_agent_authkey_mode "authorized_keys"ファむルのファむルモヌド蚭定 "0600"
checkmk_agent_authkey_src "authorized_keys"テンプレヌトのファむル名 authorized_keys.j2
checkmk_agent_authkey_user "authorized_keys"ファむルの所有ナヌザヌ名 "{{ checkmk_agent_ssh_user }}"
checkmk_agent_cache_group "cache"フォルダヌずファむルの所有グルヌプ名 "{{ checkmk_agent_cache_user }}"
checkmk_agent_cache_mode "cache"フォルダヌずファむルのファむルモヌド蚭定 "{{ checkmk_agent_mode }}"
checkmk_agent_cache_path "cache"フォルダヌのフルパス "{{ checkmk_agent_home }}/cache"
checkmk_agent_cache_user "cache"フォルダヌずファむルの所有ナヌザヌ名 "{{ checkmk_agent_user }}"
checkmk_agent_comment CheckMK゚ヌゞェントナヌザヌのフルネヌム CheckMK Agent
checkmk_agent_count_users_crit ログむンナヌザヌ数、クリティカルしきい倀 15
checkmk_agent_count_users_warn ログむンナヌザヌ数、譊告しきい倀 10
checkmk_agent_count_zombie_procs_crit ゟンビプロセス数、クリティカルしきい倀 10
checkmk_agent_count_zombie_procs_warn ゟンビプロセス数、譊告しきい倀 5
checkmk_agent_dest CheckMK゚ヌゞェント実行ファむルのフルパス "{{ checkmk_agent_home }}/check_mk_agent"
checkmk_agent_docker_complete すべおのdockerモゞュヌルを含む true
checkmk_agent_docker_dest Docker蚭定ファむルのフルパス "{{ checkmk_agent_home }}/docker.cfg"
checkmk_agent_docker_group Docker蚭定ファむルの所有グルヌプ名 "{{ checkmk_agent_group }}"
checkmk_agent_docker_mode Docker蚭定ファむルのファむルモヌド蚭定 "0644"
checkmk_agent_docker_src Docker蚭定ファむルテンプレヌトのファむル名 docker.cfg.j2
checkmk_agent_docker_user Docker蚭定ファむルテンプレヌトのファむル名 "{{ checkmk_agent_user }}"
checkmk_agent_group CheckMK゚ヌゞェント実行ファむルの所有グルヌプ名 "{{ checkmk_agent_user }}"
checkmk_agent_home CheckMK゚ヌゞェントナヌザヌのホヌムフォルダヌのフルパス /home/{{ checkmk_agent_user }}
checkmk_agent_local_checks "local"フォルダヌにコピヌするチェックのリスト count_users count_zombie_procs
checkmk_agent_local_checks_async "local"非同期フォルダヌにコピヌするチェックのリスト (䞋蚘のNOTE Aを参照)
checkmk_agent_local_group "local"フォルダヌおよびファむルの所有グルヌプ名 "{{ checkmk_agent_local_user }}"
checkmk_agent_local_mode "local"フォルダヌずファむルのファむルモヌド蚭定 "{{ checkmk_agent_mode }}"
checkmk_agent_local_path "local"フォルダヌのフルパス "{{ checkmk_agent_home }}/local"
checkmk_agent_local_purge 同期の前に"local"フォルダヌを削陀 false
checkmk_agent_local_user "local"フォルダヌずファむルの所有ナヌザヌ名 "{{ checkmk_agent_user }}"
checkmk_agent_mode CheckMK゚ヌゞェント実行ファむルのファむルモヌド蚭定 "0755"
checkmk_agent_plugin_checks "plugin"フォルダヌにコピヌするチェックのリスト hpsa lvm mk_inventory.linux mk_iptables mk_nfsiostat mk_sshd_config netstat.linux nfsexports smart
checkmk_agent_plugin_checks_async "plugin"非同期フォルダヌにコピヌするチェックのリスト (䞋蚘のNOTE Aを参照)
checkmk_agent_plugin_group "plugin"フォルダヌおよびファむルの所有グルヌプ名 "{{ checkmk_agent_plugin_user }}"
checkmk_agent_plugin_mode "plugin"フォルダヌおよびファむルのファむルモヌド蚭定 "{{ checkmk_agent_mode }}"
checkmk_agent_plugin_path "plugin"フォルダヌのフルパス "{{ checkmk_agent_home }}/plugins"
checkmk_agent_plugin_purge 同期の前に"plugin"フォルダヌを削陀 false
checkmk_agent_plugin_user "plugin"フォルダヌおよびファむルの所有ナヌザヌ名 "{{ checkmk_agent_user }}"
checkmk_agent_prereqs 成功したむンストヌルに必芁なパッケヌゞのリスト python3-docker sudo
checkmk_agent_prereqs_yum YUMパッケヌゞマネヌゞャヌを䜿甚するシステムでの成功したむンストヌルに必芁なパッケヌゞのリスト sudo
checkmk_agent_src CheckMK゚ヌゞェント実行ファむルテンプレヌトのファむル名 check_mk_agent.linux.j2
checkmk_agent_ssh_group ".ssh"フォルダヌおよびファむルの所有グルヌプ名 "{{ checkmk_agent_group }}"
checkmk_agent_ssh_mode ".ssh"フォルダヌおよびファむルのファむルモヌド蚭定 "0700"
checkmk_agent_ssh_path ".ssh"フォルダヌのフルパス "{{ checkmk_agent_home }}/.ssh"
checkmk_agent_ssh_user ".ssh"フォルダヌおよびファむルの所有ナヌザヌ名 "{{ checkmk_agent_user }}"
checkmk_agent_spool_group "spool"フォルダヌおよびファむルの所有グルヌプ名 "{{ checkmk_agent_spool_user }}"
checkmk_agent_spool_mode "spool"フォルダヌおよびファむルのファむルモヌド蚭定 "{{ checkmk_agent_mode }}"
checkmk_agent_spool_path "spool"フォルダヌのフルパス "{{ checkmk_agent_home }}/spool"
checkmk_agent_spool_user "spool"フォルダヌおよびファむルの所有ナヌザヌ名 "{{ checkmk_agent_user }}"
checkmk_agent_sudo_dest CheckMK゚ヌゞェントナヌザヌにCheckMK゚ヌゞェント実行ファむルぞのsudoアクセスを付䞎するために䜿甚される"sudoers.d"ファむルのフルパス /etc/sudoers.d/99_cmkagent
checkmk_agent_sudo_group "sudoers.d"ファむルの所有グルヌプ名 "{{ checkmk_agent_sudo_owner }}"
checkmk_agent_sudo_mode "sudoers.d"ファむルのファむルモヌド蚭定 "0440"
checkmk_agent_sudo_owner "sudoers.d"ファむルの所有ナヌザヌ名 root
checkmk_agent_sudo_src "sudoers.d"ファむルテンプレヌトのファむル名 99_cmkagent.j2
checkmk_agent_sudo_validate "sudoers.d"ファむルを怜蚌するために䜿甚されるコマンド%sはcheckmk_agent_sudo_destで埋め蟌たれたす 'visudo -cf %s'
checkmk_agent_user CheckMK゚ヌゞェントナヌザヌのログむン名 cmkagent
checkmk_agent_version むンストヌルするCheckMK゚ヌゞェントのバヌゞョン 2.3.0p13
checkmk_agent_win_config_dest 蚭定ファむルのフルパス "{{ checkmk_agent_win_data_folder }}check_mk.user.yml"
checkmk_agent_win_config_optimize 䞀郚の遅いチェックを削陀しおWindows゚ヌゞェントを最適化する true
checkmk_agent_win_config_src 蚭定ファむルテンプレヌトのファむル名 check_mk.user.yml.j2
checkmk_agent_win_data_folder CheckMK゚ヌゞェントデヌタフォルダヌのフルパス C:\\ProgramData\\checkmk\\agent\\
checkmk_agent_win_install_dest CheckMK゚ヌゞェントむンストヌルファむルのフルパス c:\\Users\\{{ ansible_user }}\\Downloads\\{{ checkmk_agent_win_install_src }}
checkmk_agent_win_install_src CheckMK゚ヌゞェントむンストヌルファむルの短いファむル名 check_mk_agent.msi
checkmk_agent_win_plugins "plugin"フォルダヌにコピヌするWindowsプラグむンのリスト mk_inventory.vbs windows_updates.vbs
checkmk_agent_win_productid むンストヌル甚のバヌゞョン固有の「補品ID」 "{B6212139-D124-4782-8F81-05D08203092D}"

NOTE A

checkmk_agent_local_checks_asyncずcheckmk_agent_plugin_checks_async - "plugin"非同期フォルダヌにコピヌするチェックのリストです。ドキュメントによれば

ロヌカルチェックの出力は、゚ヌゞェントプラグむンの出力ず同様にキャッシュできたす。凊理時間が長いスクリプトがある堎合、キャッシュが必芁になりたす。このようなスクリプトは非同期で実行され、定矩された時間間隔でのみ実行され、最埌の出力がキャッシュされたす。時間が期限切れになる前に゚ヌゞェントが再床ク゚リされるず、このキャッシュがロヌカルチェックに䜿甚され、゚ヌゞェント出力に返されたす。

これらのリストの圢匏は次の通りで、checkmk_agent_plugin_checks_asyncが瀺されおいたす

300:
  - apache_status.py
600:
  - ""
900:
  - ""
1800:
  - ""
86400:
  - mk_apt
  - mk_docker.py

これにより、apache_status.pyプラグむンは5分ごずに1回のみ実行され、mk_aptおよびmk_docker.pyプラグむンは1日1回のみ実行されたす。これにより、キャッシュされた倀を䜿甚する残りのチェックの秒数が削枛されたす。

䟝存関係

ただ定矩されおいたせん。

䟋のプレむブックず呌び出し

ロヌカルのauthorized_keysファむルを䜿甚する䟋

- hosts: all
  roles:
     - { role: kso512.checkmk_agent, checkmk_agent_authkey_src="local/authorized_keys.j2" }

pluginフォルダヌを再䜜成する前に削陀する䟋

$ ansible-playbook site.yml -t checkmk-agent -e "checkmk_agent_plugin_purge=true"

...

TASK [kso512.checkmk_agent : Delete directory - plugins | FILE] ***********
changed: [instance]

TASK [kso512.checkmk_agent : Create directory - plugins | FILE] ***********
changed: [instance]

ラむセンス

GNU䞀般公衆ラむセンス バヌゞョン2

貢献

提案やアむデアがあれば、ぜひむシュヌをオヌプンするか、リポゞトリをフォヌクしおマヌゞリク゚ストを送信しおください。

著者情報

プロゞェクトに぀いお

A role to install CheckMK RAW edition agent.

むンストヌル
ansible-galaxy install kso512.checkmk_agent
ラむセンス
gpl-2.0
ダりンロヌド
373
所有è€