Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化

1,049 views

Published on

MasterCloud #7
Zabbix Conference Japan 2017 LTで発表した
クラスタ監視および、Zabbixでの運用自動化の資料です
Zabbix 3.0 の新機能により進化した全自動Zabbixをご活用ください。

Published in: Technology
  • Be the first to comment

Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化

  1. 1. Zabbixによるオートスケーリングクラスタ監 視と オペレーション自動化 ZabbixアグリゲーションとアクションによるEC2制御 2017/11/17
  2. 2.  CN:九龍真乙(くりゅうまおと)  所属:自宅ラック勉強会  :株式会社サーバーワークス  Twitter: @qryuu  クックパッド: https://cookpad.com/kitchen/4142562  好きなAWSサービス:RDS,SystemsManager 著者紹介 2017/11/17
  3. 3.  全自動Zabbix https://www.slideshare.net/qryuu/zabbix-20563483  AutoScalingも怖くない、Zabbix自動登録  http://blog.serverworks.co.jp/tech/2014/05/29/zabbix-auto- registration/  全自動Zabbix完全版  https://qiita.com/qryuu/items/39548aa77ef0e8152630  全自動Zabbix2.2&2.4  https://www.slideshare.net/qryuu/zabbix2224 既出資料 2017/11/17
  4. 4.  Zabbixオートスケーリング監視のポイント  Agent自動登録  アグリゲートアイテム  ディスカバリ自動削除  オペレーション自動化のポイント  AWS CLIの実行  ホストインベントリの利用 目次 2017/11/17
  5. 5. Zabbixオートスケーリング監視のポイン ト 2017/11/17
  6. 6.  Agent自動登録EC2UserData  自動登録アクション設定 Agent自動登録の設定 2017/11/17
  7. 7.  #!/bin/bash  zabbix_version=3.0 #Zabbixバージョン  zabbix_server_ip=172.31.8.28 #ZabbixServer/ProxyのローカルIP  zabbix_matadata=web #HostMataData  echo [serverworks-zabbix] >> /etc/yum.repos.d/serverworks.repo  echo name=Serverworks-Zabbix >> /etc/yum.repos.d/serverworks.repo  echo baseurl=https://s3-ap-northeast-1.amazonaws.com/serverworks-yum-repos/zabbix/$zabbix_version/$basearch >> /etc/yum.repos.d/serverworks.repo  echo gpgcheck=0 >> /etc/yum.repos.d/serverworks.repo  yum update  yum install zabbix-agent zabbix-get zabbix-sender -y  sed -i -e 's/LogFileSize=0/LogFileSize=10/g' /etc/zabbix/zabbix_agentd.conf  sed -i -e 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/g' /etc/zabbix/zabbix_agentd.conf  sed -i -e 's/# LogRemoteCommands=0/LogRemoteCommands=1/g' /etc/zabbix/zabbix_agentd.conf  sed -i -e "s/Server=127.0.0.1/Server=$zabbix_server_ip/g" /etc/zabbix/zabbix_agentd.conf  sed -i -e "s/ServerActive=127.0.0.1/ServerActive=$zabbix_server_ip/g" /etc/zabbix/zabbix_agentd.conf  sed -i -e 's/Hostname=Zabbix server/# Hostname=Zabbix server/g' /etc/zabbix/zabbix_agentd.conf  sed -i -e 's/# HostnameItem=system.hostname/HostnameItem=system.hostname/g' /etc/zabbix/zabbix_agentd.conf  sed -i -e "s/# HostMetadata=/HostMetadata=$zabbix_matadata/g" /etc/zabbix/zabbix_agentd.conf  sed -i -e 's/# RefreshActiveChecks=120/RefreshActiveChecks=60/g' /etc/zabbix/zabbix_agentd.conf  chkconfig zabbix-agent on  service zabbix-agent start EC2UserData 2017/11/17
  8. 8.  アプリケーションをインストールしたAMIを利用し、先ほどのホスト メタデータを投入することで、ZabbixAgentのインストールおよび起 動が完了します。  EC2 Auto Scalingの起動設定にUserDataを設定することで、 Auto Scalingされたインスタンスが自動的に監視対象となる ようになります。 EC2UserData 2017/11/17
  9. 9.  自動登録アクションの条件にUserDataで指定したHostMataDataを登 録します。 自動登録アクション 2017/11/17
  10. 10.  ホストの登録先グループ、リンクさせるテンプレートを指定します。 自動登録アクション 2017/11/17
  11. 11.  Zabbix 3.0 から自動登録アクションでインベントリモードの設定が 行えるようになりました。  インベントリ情報を利用したコマンド実行が設定しやすくなりまし た。 自動登録アクション 2017/11/17
  12. 12.  AutoScalingを利用する環境では、複数のサーバーによるリソースス ラスタが組まれます。  その場合、ホストグループ内の最大値、最小値、平均値を監視でき るアグリゲートアイテムの利用が適しています。 アグリゲートアイテム 2017/11/17
  13. 13.  AutoScalingを利用する環境では、複数のサーバーによるリソースス ラスタが組まれます。  その場合、ホストグループ内の最大値、最小値、平均値を監視でき るアグリゲートアイテムの利用が適しています。 アグリゲートアイテム 2017/11/17
  14. 14.  アグリゲートテンプレートを作成する際にホストグループをマクロ 化して作成しておくと、汎用テンプレートとして利用可能です。 アグリゲートアイテム 2017/11/17
  15. 15.  特定のクラスタを表すホストを作成し、ホストマクロでホストグ ループ名を 設定します。 アグリゲートアイテム 2017/11/17
  16. 16.  Auto Scaling環境では自動登録だけではなく、自動削除も必要です。  自動削除にはネットワークディスカバリ機能を利用します  ネットワークディスカバリを行う場合、グローバルIPではなくプラ イベートIPが適しています。  Zabbixサーバ/Zabbixプロキシを同一もしくはピアリングされたセグ メントに配置します。 ディスカバリ自動削除 2017/11/17
  17. 17.  Auto scalingの頻度に合わせて、ディスカバリ周期およびディスカバ リ範囲を設定します。 ディスカバリ自動削除 2017/11/17
  18. 18.  Auto scalingの頻度に合わせて、ディスカバリ周期およびディスカバ リ範囲を設定します。 ディスカバリ自動削除 2017/11/17
  19. 19.  インスタンス削除後にメトリクス分析などを行いたい場合は、 削除ではなく無効化を行うように設定します。 ディスカバリ自動削除 2017/11/17
  20. 20.  インスタンス削除後にメトリクス分析などを行いたい場合は、 削除ではなく無効化を行うように設定します。 ディスカバリ自動削除 2017/11/17
  21. 21.  インスタンス削除後に監視設定も不要な場合は、削除を行います。 ディスカバリ自動削除 2017/11/17
  22. 22.  インスタンス削除後に監視設定も不要な場合は、削除を行います。 ディスカバリ自動削除 2017/11/17
  23. 23. オペレーション自動化のポイント 2017/11/17
  24. 24.  今回の構成では、インスタンスの再作成はAuto Scalingで実施します。  Zabbixは障害が発生した際に、インスタンスのTerminateを実施しま す。 AWS CLIの実行 2017/11/17
  25. 25.  Zabbixサーバもしくは、ZabbixProxyインスタンスにIAMロールをア タッチしておきます。  IAMロールにより、認証情報を明示せずにAWS CLIが実行可能になり ます。  実行したいAWS CLIは以下のものになります。  aws ec2 terminate-instances --instance-ids <インスタンスID> -- region ap-northeast-1  IAMロールでは aws configure によるデフォルトリージョンが指定出 来ないので、コマンド内でリージョンを明示します。 AWS CLIの実行 2017/11/17
  26. 26.  インスタンスIDを自動的にコマンドに入れる方法  system.runを利用し、インベントリメタデータからインスタンスIDを 取得します。  system.run["curl -s http://169.254.169.254/latest/meta-data/instance- id"] ホストインベントリの利用 2017/11/17
  27. 27.  アイテムとして取得しただけでは、アクションで利用しづらいので、 このデータを任意のホストインベントリに登録します。 ホストインベントリの利用 2017/11/17
  28. 28.  ホストインベントリマクロを利用し、AWS CLIを設定します。  aws ec2 terminate-instances --instance-ids {INVENTORY.HARDWARE} --region ap-northeast-1 ホストインベントリの利用 2017/11/17
  29. 29.  リージョン情報も同様にインスタンスメタデータとホストインベン トリで設定することも可能です。 ホストインベントリの利用 2017/11/17
  30. 30.  障害を検知するとアクションでコマンドが実行されます。 コマンドの実行結果 2017/11/17
  31. 31.  インスタンスローンチをクラウド側に任せることで、 スクリプト開発やアプリ開発を行わなくても、Zabbixの基本機能を 組み合わせるだけで、オペレーションの自動化が可能です。  既存のAutoScalingよりもより細かな監視ポイントなどを利用して、 健全なクラスタを維持することが可能になります。 Zabbixでのオペレーション自動化 2017/11/17
  32. 32.  今回の設定で利用しているZabbixTemplate  Linux base: https://1drv.ms/u/s!AvJ4teJDyD_Q0F9RHIMemZajwRzF  Linux OS: https://1drv.ms/u/s!AvJ4teJDyD_Q0F0HS2AqvFJiYWLU  Linux Aggregate: https://1drv.ms/u/s!AvJ4teJDyD_Q0F6eHwLe6ecpkjeX 参考Template 2017/11/17

×