Posted at

Alibaba CloudのECSインスタンスにMackerel-Agentをインストール方法

More than 1 year has passed since last update.


はじめに

qiitaでは、Mackerelについての記事が多いですが、クラウドサーバー(Alibaba Cloud, AWS)へのインストール方法をまとめる記事がまだ存在していないため、インストール方法について書きたいと思います。


Mackerelのインストール手順


グローバルIPを持つインスタンスの場合

グローバルIPを持つインスタンスはインターネットへ接続可能のため、公式ドキュメントにある手順の通りにインストールすることができます。自動化したい場合は、ansiblechefといったプロビージョンニングツールを使えばよいでしょう。

その一方、Alibaba Cloud のECSの場合は、「ユーザーデータ」という機能を利用してインストールすることもできます。Alibaba CloudのECSを購入する画面にあります。

image

ユーザーデータの入力ボックスに渡されるコマンドは、インスタンスが作成・初期化された後で実行されます。この機能を使えば、インスタンスを初期設定をBootstrapすることができます。

今回は、ユーザーデータを使用して、インスタンスを作成した後で mackerel-agentを自動インストールしたいと思います。インスタンス購入画面で、スペックなどを選択した後で、ユーザーデータのところに、以下のBashスクリップを入力することで、インスタンス作成が終わったあとで、mackerel-agentがインストールされます。

#!/bin/bash

curl -fsSL https://mackerel.io/assets/files/scripts/setup-yum.sh | sh
sudo yum install -y mackerel-agent
sudo yum update -y mackerel-agent
echo 'apikey = "<YOUR_API_KEY>"' | sudo tee --append /etc/mackerel-agent/mackerel-agent.conf
systemctl enable mackerel-agent

YOUR_API_KEYはMackerelの管理画面で確認できます

image

インスタンスが「実行中」の状態になったら、SSHでログインしmackerel-agentのインストールが確認できます。

[telescreen@iz6weh3wauwb270w71hzitz ~]$ cat /etc/mackerel-agent/mackerel-agent.conf$ cat /etc/mackerel-agent/mackerel-agent.conf

# pidfile = "/var/run/mackerel-agent.pid"
# root = "/var/lib/mackerel-agent"
# verbose = false
# apikey = ""

# [host_status]
# on_start = "working"
...
apikey = "<YOUR_API_KEY>"
[telescreen@iz6weh3wauwb270w71hzitz ~]$ sudo systemctl start mackerel-agent
[telescreen@iz6weh3wauwb270w71hzitz ~]$ systemctl status mackerel-agent
● mackerel-agent.service - LSB: start and stop mackerel-agent
Loaded: loaded (/etc/rc.d/init.d/mackerel-agent; bad; vendor preset: disabled)
Active: active (running) since Fri 2017-05-12 17:11:09 CST; 2 days ago
Docs: man:systemd-sysv-generator(8)
Process: 2127 ExecStart=/etc/rc.d/init.d/mackerel-agent start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mackerel-agent.service
└─2129 /usr/bin/mackerel-agent --pidfile=/var/run/mackerel-agent.pid --root=/var/lib/mackerel-agent

May 12 17:11:06 iZ6weh3wauwb270w71hzitZ systemd[1]: Starting LSB: start and stop mackerel-agent...
May 12 17:11:09 iZ6weh3wauwb270w71hzitZ mackerel-agent[2127]: Starting mackerel-agent:[ OK ]
May 12 17:11:09 iZ6weh3wauwb270w71hzitZ systemd[1]: Started LSB: start and stop mackerel-agent.

Mackerel管理画面の方でも、インスタンスのホスト名が表示されます。

image


グローバルIPを持たない場合

VPCのSNATゲートウェイの作成手順に書いた通りにまずSNATゲートウェイを設定してから、グローバルIPを持つ手順通りに設定できます。