Memo/Linux/Zabbix/docker

https://dexlab.net:443/pukiwiki/index.php?Memo/Linux/Zabbix/docker
 

Dockerの監視


Template OS LinuxからdockerコンテナのNICとDiskを除外する

  • 環境
    • Zabbix 3.0.x
    • CentOS 7.x
  • 問題点
    • dockerコンテナがデプロイされると「vethXXXX」のような仮想NICが増減する。「Template OS Linux」を使うとLLDの機能で、NICやディスクの監視項目が自動で増える。存在しないNICやディスクが表示され、グラフ一覧が非常に見難くなる。
    • NICの場合: vethXXXX がdockerコンテナデプロイ毎に増える。
    • Diskの場合: /var/lib/docker/plugins 等の仮想ディスクが増える。
  • NICのLLDの確認
    # 他ホストから 192.168.0.10 のLLDを取得
    zabbix_get -s 192.168.0.10 -k 'net.if.discovery' | jq .
    
    {
      "data": [
        {
          "{#IFNAME}": "veth521476c"
        },
        {
          "{#IFNAME}": "eth0"
        },
        {
          "{#IFNAME}": "docker0"
        },
        {
          "{#IFNAME}": "veth4f84bfb"
        },
        {
          "{#IFNAME}": "dummy0"
        },
    ...
    
    # 自ホスト(192.168.0.10)からLLD取得
    zabbix_agentd -t 'net.if.discovery' | cut -d '|' -f 2 | jq .
  • DiskのLLDの確認
    # 他ホストから 192.168.0.10 のLLDを取得
    zabbix_get -s 192.168.0.10 -k 'vfs.fs.discovery' | jq .
    
    {
      "data": [
    ...
        {
          "{#FSNAME}": "/var/lib/docker/plugins",
          "{#FSTYPE}": "xfs"
        },
    ...
        {
          "{#FSNAME}": "/var/lib/docker/overlay/xxxxxxxxxxx/merged",
          "{#FSTYPE}": "overlay"
        },
        {
          "{#FSNAME}": "/var/lib/docker/containers/xxxxxxxxxxxxx/shm",
          "{#FSTYPE}": "tmpfs"
        },
        {
          "{#FSNAME}": "/run/docker/netns/xxxxxxxx",
          "{#FSTYPE}": "nsfs"
        },
    ...
    
    # 自ホスト(192.168.0.10)からLLD取得
    zabbix_agentd -t 'vfs.fs.discovery' | cut -d '|' -f 2 | jq .

解決方法:

  • NICの場合: veth から始まるNICを除外する
  1. 管理 > 一般設定 > 正規表現
  2. Network interfaces for discovery を編集し、以下を追加。
    結果が偽 ^veth チェックする
  3. テストタブに「vethXXXX」を入れて、テスト条件式ボタンをクリックし、結果が偽(=除外)されるか確認する
  4. discoveryのデフォルトでは1時間毎に更新されるので、最新データで除外されたか確認。
  • Diskの場合: /var/lib から始まるDiskを除外する
  1. 管理 > 一般設定 > 正規表現
  2. File system name for discovery を追加し、以下を追加
    結果が偽 ^/var/lib チェックしない
  3. テストタブに「/var/lib/docker/plugins」を入れて、テスト条件式ボタンをクリックし、結果が偽(=除外)されるか確認する
  4. 設定 > テンプレート > Template OS Linux > ディスカバリルール > Mounted filesystem discovery
  5. フィルター > 追加
    計算タイプ: and
    {#FSNAME} 一致する
  6. discoveryのデフォルトでは監視対象が存在しなくなってから、30日間はデータを保持する。すぐに確認したい場合は、1日等に変更して翌日確認。0は誤操作でヒストリも削除されるため推奨されない。

zabbix-docker-monitoring: サードパーティ製のdocker監視

  • 注意点
    • zabbix_module_docker.so + Zabbix-Template-App-Docker-active.xml だとCPU使用率が跳ね上がった。Zabbix-Template-App-Docker.xmだと問題無かった。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-01-07 (月) 15:56:31 (160d)