第2章 集中型ロギングスイートのインストール
2.1. 集中型ログリレー/トランスフォーマーのインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の最小仕様を満たすベアメタルシステムを見つけます。
- 8 GB のメモリー
- シングルソケット Xeon クラス CPU
- 500 GB のディスク容量
- Red Hat Enterprise Linux 7 をインストールします。
システムが Operational Tools パッケージにアクセスできるようにします。
システムを登録してサブスクライブします。
# subscription-manager register # subscription-manager list --consumedOpenStack サブスクリプションが自動的にアタッチされない場合は、手動でサブスクリプションをアタッチ する ためのドキュメントを参照してください。
最初に有効なリポジトリーを無効にし、操作ツールに適したリポジトリーのみを有効にします。
# subscription-manager repos --disable=* # subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-openstack-8-optools-rpms注記ベース OpenStack リポジトリー(rhel-7-server-openstack-8-rpms)をこのノードで有効にしないでください。このリポジトリーには、特定の Operational Tools 依存関係の新しいバージョンが含まれている可能性があり、Operational Tools パッケージと互換性がない場合があります。
以下のコマンドを実行して
Elasticsearch、Fluentd、Kibanaソフトウェアをインストールします。# yum install elasticsearch fluentd rubygem-fluent-plugin-elasticsearch kibana httpdElasticsearchで Cross-origin resource sharing (CORS)を有効にします。これを行うには、/etc/elasticsearch/elasticsearch.ymlを編集し、以下の行をファイルの最後に追加します。http.cors.enabled: true http.cors.allow-origin: "/.*/"注記これにより、
ElasticsearchJavaScript アプリケーションを Web サーバーの任意の Web ページから呼び出すことができます。Kibanaサーバーからの CORS のみを許可するには、以下を使用します。http.cors.allow-origin: "http://LOGGING_SERVER"IP アドレスまたはホスト名を使用して
Kibanaにアクセスするかどうかに応じて、LOGGING_SERVER をKibanaサーバーの IP アドレスまたはホスト名に置き換えます。ただし、Elasticsearchサービスが信頼されるホストからのみアクセス可能である場合、/.*/ を使用しても安全です。Elasticsearchインスタンスを起動し、起動時に有効にします。# systemctl start elasticsearch # systemctl enable elasticsearchElasticsearchインスタンスが機能していることを確認するには、以下のコマンドを実行します。# curl http://localhost:9200/これにより、以下のような応答が返されるはずです。
{ "status" : 200, "name" : "elasticsearch.example.com", "cluster_name" : "elasticsearch", "version" : { "number" : "1.5.2", "build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512", "build_timestamp" : "2015-02-19T13:05:36Z", "build_snapshot" : false, "lucene_version" : "4.10.3" }, "tagline" : "You Know, for Search" }Fluentdをログデータを受け入れ、これをElasticsearchに書き込むように設定します。/etc/fluentd/fluent.confを編集し、そのコンテンツを以下に置き換えます。# In v1 configuration, type and id are @ prefix parameters. # @type and @id are recommended. type and id are still available for backward compatibility <source> @type forward port 4000 bind 0.0.0.0 </source> <match **> @type elasticsearch host localhost port 9200 logstash_format true flush_interval 5 </match>Fluentdを起動し、起動時に有効にします。# systemctl start fluentd # systemctl enable fluentdヒントFluentdのジャーナルをチェックし、起動時にエラーがないことを確認します。# journalctl -u fluentd -l -fKibanaをElasticsearchインスタンスを参照するように設定します。/etc/httpd/conf.d/kibana3.confを作成し、以下の内容を内部に配置します。<VirtualHost *:80> DocumentRoot /usr/share/kibana <Directory /usr/share/kibana> Require all granted Options -Multiviews </Directory> </VirtualHost>たとえば、
KibanaおよびElasticsearchへのアクセスを許可されたユーザーのみに制限する必要がある場合(たとえば、これらのサービスはオープンネットワーク内のシステム上で実行されているため)、HTTP Basic 認証を使用して仮想ホストのセキュリティーを保護し、Elasticseachをプロキシーの背後に移動します。これを行うには、次の手順を実行します。以下の内容で
/etc/httpd/conf.d/kibana3.confファイルを作成します。<VirtualHost *:80> DocumentRoot /usr/share/kibana <Directory /usr/share/kibana> Options -Multiviews AuthUserFile /etc/httpd/conf/htpasswd-kibana AuthName "Restricted Kibana Server" AuthType Basic Require valid-user </Directory> # Proxy for Elasticsearch <LocationMatch "^/(_nodes|_aliases|.*/_aliases|_search|.*/_search|_mapping|.*/_mapping)$"> ProxyPassMatch http://127.0.0.1:9200/$1 ProxyPassReverse http://127.0.0.1:9200/$1 </LocationMatch> # Proxy for kibana-int/{dashboard,temp} <LocationMatch "^/(kibana-int/dashboard/|kibana-int/temp)(.*)$"> ProxyPassMatch http://127.0.0.1:9200/$1$2 ProxyPassReverse http://127.0.0.1:9200/$1$2 </LocationMatch> </Virtualhost>注記AuthUserFileオプションに別のパスを使用し、AuthNameオプションのその他の説明を使用できます。Kibanaへのアクセスが許可されるユーザー名とパスワードのペアを作成します。これには以下のコマンドを実行します。# htpasswd -c /etc/httpd/conf/htpasswd-kibana user_name注記AuthUserFileオプションに別のパスを使用している場合は、それに応じてコマンドを変更します。user_name を任意のユーザー名に置き換えます。プロンプトが表示されたら、このユーザー名で使用するパスワードを入力します。パスワードを再入力するよう求められます。
必要に応じて、以下のコマンドを実行して、独自のパスワードを持つユーザーをさらに作成します。
# htpasswd /etc/httpd/conf/htpasswd-kibana another_user_namelocalhostインターフェイスのみをリッスンするようにElasticsearchを設定します。これを行うには、エディターで/etc/elasticsearch/elasticsearch.ymlファイルを開き、以下のオプションを追加します。network.host: 127.0.0.1また、以下のオプションを
/etc/elasticsearch/elasticsearch.ymlに追加して、CORS で HTTP の Basic 認証データを使用できるようにElasticsearchを設定する必要もあります。http.cors.allow-credentials: trueElasticsearchを再起動して、これらの変更を有効にします。# systemctl restart elasticsearch最後に、
Elasticsearchファイルがプロキシーを使用してダウンロードされ、HTTP Basic 認証データがブラウザーによって送信されていることを確認します。これを行うには、/usr/share/kibana/config.jsファイルを編集します。このファイルで以下の行を見つけます。elasticsearch: "http://"+window.location.hostname+":9200",そして、以下のように変更します。
elasticsearch: {server: "http://"+window.location.hostname, withCredentials: true},
Kibana(Apache 内)を有効にしてElasticsearchに接続し、Apache を起動して起動時に有効にします。# setsebool -P httpd_can_network_connect 1 # systemctl start httpd # systemctl enable httpdシステムでファイアウォールを開き、
Fluentdおよびhttpdへの接続を許可します。# firewall-cmd --zone=public --add-port=4000/tcp --permanent # firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --reloadさらに、HTTP 認証および
Elasticsearchプロキシーを設定していない場合は、ファイアウォールを開いてElasticsearchへの直接接続を許可します。# firewall-cmd --zone=public --add-port=9200/tcp --permanent # firewall-cmd --reload重要HTTP 認証を使用した
KibanaおよびElasticseachへのアクセスを制限しない場合、Kibana および Elasticsearch によって提供される情報は、認証なしですべてのユーザーが利用できます。データを保護するには、システムまたは開いている TCP ポート(80、4000、および 9200)が信頼できるホストからのみアクセスできることを確認してください。