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監視しています。