DevOps

UdemyでDockerを学ぶ④ 〜Section4〜 (Docker Network編)


リンクバル技術部の川畑です。前回の記事UdemyでDockerを学ぶ③ 〜Section3〜(Docker Compose編)では、主にDocker Composeを利用したDockerコンテナのの管理について学びました。今回はDockerのネットワーク管理が中心となります。それでは見ていきましょう。

「Section4: The Complete Docker Course for DevOps and Developers」の内容

Section4の内容は以下の通り。

続きを読む


UdemyでDockerを学ぶ③ 〜Section3〜(Docker Compose編)


リンクバル技術部の川畑です。開発環境をDockerに移行するため勉強中。前回の記事UdemyでDockerを学ぶ② 〜Section2〜では、Dockerイメージの管理などのレッスンが中心でした。今回はDockerコンテナでアプリケーションを起動したり、複数のDockerコンテナのリンク、Docker Composeを利用した複数Dockerコンテナの一元管理などのレッスンが中心となります。それでは見ていきましょう。

「Section3: Create Dockerized Web Applications」の内容

Section3の内容は以下の通り。

続きを読む


UdemyでDockerを学ぶ② 〜Section2〜


リンクバル技術部の川畑です。最近はエンジニアなら誰でも憧れる、継続的デリバリーを実現するべくDocker勉強中。前回の記事UdemyでDockerを学ぶ① 〜概要からSection1〜では、Dockerの概要とDockerを構成する概念についてのレッスンが中心でした。今回はDockerイメージの管理などのレッスンが中心となります。それでは見ていきましょう。

「Section2: Working with Docker Images」の内容

Section2の内容は以下の通り。

続きを読む


UdemyでDockerを学ぶ① 〜概要からSection1まで〜


リンクバル技術部の川畑です。エンジニアとは常に新しい技術を勉強し続けねばならない悲しい生物(!?)です。最近はそんなエンジニアのためにドットインストールや、paizaなどオンラインで簡単に勉強ができるようになってきました。そんな中で今回はDokcerを体系的に学びたいと思い、UdemyでDockerを勉強してみました。

Udemy(ユーデミー)とは

アメリカのオンライン学習プラットフォーム。学びたい講座を購入(1部無料)し受講したり、また誰でも講師となり、自分の講座を動画でインターネット上に公開できる、オンライン学習プラットフォーム。

続きを読む


Amazon Elasticsearch Service で利用可能になったElasticSearch5.1の良いところとは?


こんにちはリンクバルの井上です

今年の1月にAmazon Elasticsearch Service でElasticSearch5が利用可能になりました。

今回はElasticSearch5の個人的にいいな思うところ簡単に書いてみました

インデキシングパフォーマンス

5.0.0では数値データ構造の改善を始め様々な改善によりインデキシングのスループットが劇的に向上されケースによってはインデキシングのスループットは80%の向上を見込めるようです・・これだけでもすごい

続きを読む


LogStashでElasticSearchにlogを送る


リンクバルの井上です。
ElastcSearch, Kibana, Logstashの使用例の定番といえばアクセスログなどのログ収集と可視化かと思います。
今回はログ収集からKibanaでの可視化までの簡単なsampleをご紹介します。

 

Logstashのインストール

今回はbrewでinstallしてみたいと思います

brew install logstash

log収集のためのconfファイルの作成

今回は簡単な設定ファイルを作成します

この設定ファイルを使用してlogをelasticsearchへ送信します。

 

設定ファイルの解説

input

読み込むファイルを指定する今回は標準入力の設定です

input  {
  stdin { }
}

下記のように直接ファイルを指定することも可能

input  {
  file { path="/var/log/apache2/access.log" }
}

filter

logファイルから取得したログをelasticsearchように整形する

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    locale => "en"
  }
  mutate {
    replace => { "type" => "apache_access" }
  }
}

output

ログの送信先を設定今回はローカルのElasticsearchを指定している

output {
  #stdout { codec => rubydebug }
  elasticsearch { hosts => '127.0.0.1:9200' }
}

logをElasticSearchへ送信

下記のようにファイルを指定してコマンドを実行してみます

/usr/local/bin/logstash -f logstash.conf < -f   logファイルのpath

kibanaでの確認

kibanaを開くと下記のように画面が表示されてますが緑色のCreateボタンを押下します

すると下記のような画面になるかと思いますので次にDiscoverを押下します

logstashから送信されたデータが確認できました。

 

いかがでしたでしょうか?意外と簡単にログ送信できるイメージできたでのではないでしょうか

リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


OpenLDAPでSSH公開鍵を管理


リンクバル技術部の川畑です。サーバーのログインユーザーのSSH公開鍵についてOpenLDAPで管理できないか調査しました。OpenSSHをソースからコンパイルしてとかいろいろ情報がありましたが、Ubuntu 14.04.1 LTSではOpenSSH 6.6.1p1がapt-getで入手できるのでスキーマファイルをダウンロードしてincludeするだけで簡単に設定できそうなので検証してみました。

検証環境

  • OS:Ubuntu 14.04.1 LTS
  • OpenSSH:6.6.1p1
  • OpenLDAP:2.4.31

LDAPサーバ側の設定

まずLDAPサーバでの設定手順

続きを読む


Athenaを使ってS3のログファイルを検索してみる


AWSのサービスにS3のログ解析ツール「Athena」について書かせて頂きます。

Athenaとは?

https://aws.amazon.com/jp/athena/

Amazon Web ServiceのS3にある大量のログをSQLのクエリを書いて抽出できるサービスです。
大量のファイルが分割されていると解析するのが大変なのですが、

これらのファイルの入っているパケットを指定してAthenaの設定を完了すると、
以下のようにSQLクエリを実行するだけで検索できてしまいます。

SQLクエリは業務で良く書きますので、データベースを触っていたサーバーサイドエンジニアでも使いやすいのではと思いました。

Athenaの設定方法

1、データベースを作成する

2、データフォーマットを指定する


※CSVやJSONのデータフォーマットも指定できます。

3、カラムを指定する

4、パーティションを指定する


※CreateTableを押すとAthenaで利用するデータベースの完成です。

Athenaを使ってやってみたかったこと

json形式でファイル出力されたS3のログをキーベースで検索して、簡単にS3のファイルからデータを抽出したかったのですが、結果できませんでした。
なぜかというと、ファイル転送を挟んだログファイルだったためにファイル自体がtsv形式だったので、json形式のデータフォーマットに適用できなかったためです。
カラム型にjson型があると嬉しいなと思いました。

TSV形式での検索

LIKE検索ができますので、ログ自体の検索はできましたし、レスポンスも遅いわけでもなく使い勝手は良かったです。

下記、簡単なクエリ例です。SQLと変わらないですね。
SELECT * FROM table_name WHERE column_name LIKE '%xxxxx%' LIMIT 100;

まとめ

AWSを使ってS3に溜まっているログをAthenaを使うだけで抽出できるので、今後も使っていきたいと思います。
導入も簡単なので、まだ使ったことのない方は試してみるとどうでしょうか。

最後に

リンクバルではエンジニアの採用を募集しています。採用はこちら


JMeterによるもっとも簡単な負荷テスト方法


リンクバルの井上です。
今回はJMeterで誰でもできるもっとも簡単な負荷テストをやってみます

JMeterの起動

まずJMeterを起動してみますすると下記のような画面が表示されるかと思います

テストは基本的にはこのテスト計画に対して作成していきます。

 

スレッドグループ設定

まずテスト計画を選択した状態で「編集」を押下し「追加」の「Threads」と見て行くと下記のようにスレッドグループが表示されますのでスレッドグループを選択しましょう

 

スレッドグループを追加すると下記のような画面が表示されます

ここではどのくらいの負荷をかけるか設定をします。

例えば「10のスレッドを20秒の時間をかけて処理開始し、スレッド毎にシナリオを1回だけ実行する」だと下記のようになるのでこの辺をいじれば基本的な負荷は大丈夫です

スレッド数: 10
Ramp-Up期間(秒): 20
ループ回数: 1 (無限ループのチェックボックスはオフにしてください)

 

GETリクエストの設定

次にスレッドグループを選択した状態で「編集」から「追加」、「サンプラー」と見て行くと下記のようにHTTPリクエストが表示されるので追加します。

 

追加したHTTPリクエストに下記のように今回は自分のローカルアプリケーションの設定をしていきます

今回は単純なページアクセスの負荷をかけるのでサーバ名、メソッド、パスのみ設定します

 

 

試験結果の表示

そして負荷をかけたら当然結果を見たいかと思いますので結果表示の設定をします。

また同じ手順でスレッドグループを選択した状態で「追加」、「リスナー」と見ていくと下記のように表示されるので「結果を表で表示」を追加します

 

 

さてようやく準備が整ったので負荷試験を実行します

実行する際は上のメニューにあるので緑の再生ボタンのようなボタンを押下すると実行されます。

すると結果は「結果を表で表示」で以下のように表示されるかと思います。

いかがでしたでしょうか?簡単な負荷試験ならこんなに簡単にテストが作れるんです!

リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


Packerでマシンイメージを管理する

packer

リンクバル技術部の川畑です。サーバの構成管理はどこの会社でも課題になっていると思われます。このあたり構成管理ツールをつかってコードをGitHubとかで管理していきたいですね。構成管理ツールでもマシンイメージ・ミドルウェア・デプロイツールなどいくつかの階層によって適用できるツールがあると思われるのですが、今回はマシンイメージを管理する「Packer」を検証してみました。

1.Packer設定ファイル

  • json形式で記載
  • 「builder」でマシン環境を定義
  • 「provisioners」でサーバ上の動作を定義
  • ここでは「digitalocean.json」で保存

続きを読む