インターネット作るマン

インフラ周りの技術や資格取得についてのメモ

Elasticsearch入門メモ

Elasticsearchというのがアツいらしいので調べた。
参考書籍『サーバ/インフラエンジニア要請読本 ログ収集〜可視化編』

◆Elasticsearchとは
elastic社が開発した全文検索エンジン

……全文検索ってなんだ?

全文検索(wikiより引用)
コンピュータにおいて、複数の文書(ファイル)から特定の文字列を検索すること。

全文検索エンジンはなにもElasticsearchだけというわけではなくて、Apache Solr、Amazon CloudSearch、Groongaなど色々ある模様。IT業界で複数の文書ファイルといえばサーバやネットワーク機器が出力するログデータで、それを整理して可視化するような事例がほとんど。

◆Elasticsearch用語
・Kibana
ElasticsearchのWEBインタフェース。kibana経由でElasticsearchに検索クエリを投げて、データを整理させるイメージか。

クラスタ
複数のElasticsearchプロセスを1つのElasticsarchとして動作させること、およびその機能を使って1つのElasticsearchを構成する複数のElasticsearchの集まりのこと。単に各Elasticsearchでクラスタ名を同一にすれば構成できるらしい。カンタン。ネットワーク機器も見習ってくれ。。

・ノード
Elasticsearchの1プロセスに相当。クラスタへ投げられたクエリは、ノードへのリクエストに変換されて、各ノードで処理される。

・ドキュメント
Elasticsearchが扱うデータの最小単位。RDBMSの1レコードに相当。

・フィールド
RDMBSのカラムに相当。検索に影響する箇所。

・インデックス
ドキュメントの集合。Elasticsearchでは基本的にインデックス単位でデータを管理し、クラスタ内の各ノードに分散して保持されることで大量のデータを扱うことができる。

・インデックスタイプ
インデックスに登録するドキュメントの論理的な分類。

・シャード(セグメント)
インデックスを小さな単位に分割したもの。なんで分割するのかというと、インデックスで説明した通りクラスタ内の各ノードにインデックスを分散して保持する(ことができる?)から。多分RAIDと同じような感じで、冗長性や処理速度の向上が見込める?

プライマリシャードとレプリカシャードがあって、あるインデックス内を複数のシャードに分けて、更に各シャードがプライマリシャードとレプリカシャードとして別々のノードに分かれるイメージか。多分シャードというのは領域的(このデータはこのプライマリシャードに置かれて、それからそのプライマリシャードに紐づくレプリカシャードにコピーされる)なものを指している。

マッピング
インデックスに保存されるデータの構造を定義するためのもの。インデックスタイプ毎にドキュメントのフィールドがどのような名前で、どのような型のデータを保存するかを記述する。つまり各ドキュメントがどのようなフィールドで区切られているのかは、このマッピングで設定するということ?

転置インデックス
「入力されたデータを特定のロジックで単語に分割し、単語をキーとして入力されたデータのIDをバリューとして保存する」もの。

……???

Elasticsearchのインデックス(およびシャード)は、Apache Lucene(また新しい言葉が出てきた。。)でデータ管理しているらしく、このLucene全文検索のためにデータを転置インデックスに変換して保存し、検索するらしい。。ここまで全く意味が分からない。。

最後の最後で一番意味の分からない言葉が出てきたが、全文検索のために重要な処理らしい。とは言えこの先「転置インデックス」という言葉を再び使う機会は無い気がしている。

Apache Lucene
「ルシーン」と読むらしい。Javaで記述された全文検索エンジン

用語を知る段階から疲れる。

apache、nagios構築メモ

CentOS6.7にでnagiosを建てました。以下メモ

【参考にしたページ】
http://centossrv.com/apache.shtml
http://centossrv.com/nagios.shtml
http://j-caw.co.jp/blog/?p=1125
http://d.hatena.ne.jp/t_fujii/20080815/1218770999

【したこと】
apacheのインストール
nagiosのインストール
◆日本語化パッチのインストール
apache設定ファイルの編集、WEBサーバの起動
nagios設定ファイルの編集
nagios用のベーシック認証の設定
◆監視対象ホストの追加

nagios設定ファイル】
◆/usr/local/nagios/etc/objects/contacts.cfg
 ・ユーザ名とか管理者メールアドレス。
◆/usr/local/nagios/etc/objects/localhost.cfg
 ・localhostの監視設定ファイル。
◆/usr/local/nagios/etc/objects/commands.cfg
 ・よく分からん。

apache設定ファイル】
◆/etc/httpd/conf/httpd.conf
 ・項目が多くて面倒くさい。
◆/etc/httpd/conf.d/nagios.conf
 ・nagios用設定ファイル。アクセスの許可/拒否など。

【監視対象ホストの追加方法】
 ・nagiosは監視対象、監視方法などをテキストファイルで管理する。
◆/usr/local/nagios/etc/servers/[ホスト名].cfg
※追加・編集後は/etc/rc.d/init.d/nagios restart でrestartすること!

今は知人が建てているサーバをHTTP監視しています。