Etizolam

For our good night sleep.

Raspberry piにもDatadog Agentをインストールしてみる(前編)

Raspberry piにもDatadog Agentをインストールしてみる(後編)

Raspberry PiではRasbianを起動している。これって所詮Linuxじゃんなんて思い妄想トランスに入ると、Datadog Agent(以後DD-agent)が動けば、GPIOの入力を簡単に可視化できるし、その情報を基に色々遊べるかな〜と思ったもした。

ということでDD-agentのインストール手順まとめておくことにする。インストールが終わった後(次回以降)は、python周りのライブライリーを使って、Raspberry Pi上のGPIO入出力データをDatadogに送ってみることにする。

Datadog Agentのインストール

DD-agentをインストールするためには、sysstatが必要です。確認の意味でもパッケージ管理コマンドを実行しインストールの有無を確認し、必要に応じてsysstatインストールしておくことにします。

1
sudo apt-get install sysstat

次に、Datadogのアカウントを取得し、Datadogのダッシュボードにログインします。ダッシュボードが表示できたところで、Integrationsへカーソルを合わせるとプルダウンメニューが現れるので、Agentを選択する。

datadog agent from source

左側にあるメニューの一番下のFrom Sourceを選択すると次のような画面が表示されるでの、赤く囲った部分の一行コマンドをコピーする。

datadog agent from source

このコマンドを、Raspberry Piのコンソール画面からroot権限で実行すると、次のような出力が表示されDD-agentが実行中の状態になる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   184  100   184    0     0    309      0 --:--:-- --:--:-- --:--:--   859
100 17616  100 17616    0     0  19108      0 --:--:-- --:--:-- --:--:-- 19108


Installing Datadog Agent 4.2.1


Creating Agent directory /root/.datadog-agent..... Done
Creating log file /root/.datadog-agent/ddagent-install.log.....Done
Setting up virtual environment.....Done
Setting up setuptools and pip.....Done
Installing tornado 2.4.1 using pip.....Done
Downloading the latest version of the Agent from github (~2.5 MB).....Done
Uncompressing the archive.....Done
Configuring datadog.conf file......Done
Setting up launching scripts.....Done
Setting up supervisor.....Done
Consolidating logging.....Done
Cleaning up the installation directory.....Done
Starting the Agent.....Done

    Your Agent has started up for the first time. We're currently verifying
    that data is being submitted. You should see your Agent show up in Datadog
    shortly at:

        https://app.datadoghq.com/infrastructure

Waiting for metrics.................................

    Success! Your Agent is functioning properly, and will continue to run
    in the foreground. To stop it, simply press CTRL-C. To start it back
    up again in the foreground, run:

    cd /root/.datadog-agent
    sh bin/agent

しばらくして、DatadogのダッシュボードのInfrastructureタブ –> raspiのホスト名をクリックすると次ぎの写真みたいなグラフをDatadogのダッシュボードで見ることができます。

datadog dash & raspi

ここまででDD-agent自体のインストールは終了です。しかしながら、毎回コンソール画面から起動コマンドを入力するのも面倒なので、次回のポストで/etc/init.d以下に設置する起動スクリプトについて書きたいと思います。

Raspberry piにもDatadog Agentをインストールしてみる(後編)

追記 2014/04/15:

僕の環境では、次のDatadog-agentのコマンドオプションを実行したところ、tornado.httpserverのimportエラーが出ました。

1
2
3
$ sudo su
# cd /root/.datadog-agent/bin
# ./agent info

途中のメッセージは飛ばし、エラー部分だけを表示します。

1
2
3
4
Traceback (most recent call last):
  File "agent/ddagent.py", line 32, in <module>
    import tornado.httpserver
ImportError: No module named tornado.httpserver

次のコマンドのようにtornadoをpipでインストールすることで、先のエラーは解決しました。

1
# pip install tornado

Datadogでサービスモニターリング [Agentのインストール]

世界では着実に知名度を上げてきているDatadogのモニターリング・サービスなのだが、日本語の情報がまだまだ少ないせいか、国内での盛り上がりに欠ける気がしてならない。 しかしながら、僕が2013 Pycon APACの時に使った写真主体のDatadogスライドには、定期的に閲覧が発生している。

数年に渡ってDatadogを見てきた僕としては、Datadogをもっと理解してもらうためには日本語の入門ポストを書くしかなと感じた。更に、いつも僕の要望に応えてくれるDatadog CTOのAlexisへの恩返しのためにもなるしね。

更に僕のような3流プログラマーには、収集したいメトリックスをプログラマー自身がコード内で設定できる仕組みは、New Relicの決め打メトリックス収集と違って、かゆいところに手が届く仕様になっていると思うので、この醍醐味を少しでも多くのプログラマーに知ってもらいたいというのも動機を後押ししている。

尚、今回Datadog agentをインストールするOSは、僕が使い慣れているUbuntuにする。基本的なサーバーメトリックスをDatadogに送信ができるようになったら、Datadogが提供しているPythonラッパーを使って、プログラム内から自分たち独自のデータをDatadogに送信しモニターリングたり、APIを使ってタイムラインにメッセージを表示したりするなど、初歩的で特徴的な使い方を紹介したいと思っている。

UbuntuにDatadog agentをインストール

Windows, OSX, linuxなどの一般的なOSを利用していれば、agentのインストールは非常に簡単です。

まず最初にDatadogのアカウントを取得します。右上隅のFREE TRIALボタンをクリックし、登録情報の入力画面に遷移します。

datadog top page

一通り情報を入力し、Sing upボタンをクリックし登録を完了します。

datadog register page

登録が完了すると次のようなDatadogのダッシュボードが表示されます。このダッシュボードで、Integrationsタブにカーソルを移動しAgentと項目を選択すると次のページが表示されます。

datadog agent os select

僕は、ubuntuを使っているので、ページ内でubuntuを選択すると、ubuntu向けのDatadog agentをインストールするためのコマンドが表示されます。

datadog agent install

インストール手順のページから上記の赤く囲った部分をコピーし、 サーバのコンソールよりroot権限で実行します。

1
sudo DD_API_KEY={アカウントに紐づいたkey code} bash -c "$(curl -L http://dtdg.co/agent-install-ubuntu)"

インストール作業が順調に作業が進んで、Datadogへデータを送信できたことが確認が取れると次のメッセージがコンソールに表示されます。

1
2
3
4
5
6
7
8
9
10
11
12
Waiting for metrics.................................

Your Agent is running and functioning properly. It will continue to run in the
background and submit metrics to Datadog.

If you ever want to stop the Agent, run:

    sudo /etc/init.d/datadog-agent stop

And to run it again run:

    sudo /etc/init.d/datadog-agent start

コンソールにメッセージが表示されたところで、Infrastructureタブへ移動し、新しく追加したサーバが表示されていることを確認します。

datadog infrastructure page

サーバの名前をクリックすると、そのサーバに関してDatadog agentが集めている基本メトリックスを表示しているページに遷移することができます。

datadog  target infra page

次回以降は、Datadog agentが収集している基本メトリックス以外の情報をDatadogに送信するための情報を解説します。

Trema Day #4 参加しました。

基本情報:

関連情報:

感想:

2013年のDevOps Day Londonで、John WillisがSDNのプレゼンをしていた。彼の話しによれば、現在のSDNを取巻く環境は、彼が2005年くらいにPuppet Labs, Opscodeで顧客としていた”仮想化, クラウド, 自動化”に関する会話と酷似ていると言っていた。もしも、10年サイクルでICTに新しいトレンドが来るとすると、SDNのトレンドは既に始まっており、丁度仮想化業界にPuppetが登場する前当たりではないかともコメントしていた。

個人的には、計算能力とネットワーク転送力の比較をしてみると、転送力は明らかにスッペック不足のように感じる上、ネットワークエンジニア1人が管理しているネットワーク機器の数(1:120)は、オペレーションエンジニアが管理している計算ノードよりも圧倒的に少ない(FBでは、5名のシスアドミンで全体を管理)。 ”Infrastructure as Code”という概念には、当然ネットワークも自動化の対象として組み込まれないと完成しないと思う。

ネットワークの知識が中途半端打であったため、SDNの勉強会に参加してプレゼンで話されている単語を拾うのが精一杯であったのだが、今後も引き続き勉強していこうと思わせる分野には間違いと感じることができた。

今後の行動指針:

  • NTTの研究所で開発されているRyuというコントローラーは、Pythonで書かれているらしくこの辺から勉強を始めたら理解出来るかな〜。
  • Goで書かれている、FOSS系のOpenFlowのコントローラーがないか探してみたのですが、みあたらなかった見当たらなかった。日本の発のものはRubyとかPythonで書かれているけど、FOSSとしての配布のことを考えるとGoのほうが便利だから、なにか出来ないか〜。