elasticsearch+kibanaをCentOS7にインストールしてみた
macOSでVM環境を構築して、elasticsearch(6.x)+kibana(6.x)をインストールした際のメモ
各種ソフトウェアのダウンロード
- virtualboxのダウンロード
- vagrantのダウンロード
vagrantbox.es
- 標準のテンプレートは以下サイトから取得できる
box追加
- centos7.2をインストール
$ vagrant box add centos7.2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
vagrantFile
Vagrant.configure("2") do |config| config.vm.box = "bento/centos-7.0" config.vm.hostname = "192.168.33.10" config.ssh.insert_key = false config.vm.network "private_network", ip: "192.168.33.10" config.vm.provider "virtualbox" do |vb| vb.name = config.vm.hostname vb.memory = "2048" vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["setextradata", :id, "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled", 0] vb.customize ["modifyvm", :id, "--cableconnected1", "on"] end config.vm.provision "shell", inline: <<-SHELL sudo systemctl restart network.service yum update -y yum install -y zsh vim tree telnet dstat git tig SHELL end
vagrant up エラーする場合
- 以下のサイトを参考に対処する
- virtualboxを再インストールするとうまくいった
Elasticsearch+kibanaのセットアップ
Elasticsearch requires at least Java 8. Specifically as of this writing, it is recommended that you use the Oracle JDK version 1.8.0_73.
$ yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel $ java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build 1.8.0_151-b12) OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
- 参考URL
Elasticsearch6.1.1インストール
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- Installing from the RPM repository
$ sudo vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
- yumでelasticsearchインストール
$ sudo yum -y install elasticsearch
- 起動設定
$ sudo vi /etc/elasticsearch/elasticsearch.yml ## ElasticSearchをインストールしたIPを設定 network.host: 192.168.33.10 http.port: 9200
- elasticsearchを再起動
$ sudo service elasticsearch restart
- elasticsearchの自動起動設定
$ sudo /bin/systemctl daemon-reload $ sudo /bin/systemctl enable elasticsearch.service
kibana6.1.1インストール
$ sudo vi /etc/yum.repos.d/kibana.repo [kibana-6.x] name=Kibana repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
- yumでkibanaインストール
$ sudo yum -y install kibana
- kinaba.ymlの設定
$ sudo vi /etc/kibana/kibana.yml server.port: 5601 server.host: "192.168.33.10" elasticsearch.url: "http://192.168.33.10:9200"
- kibanaを再起動
$ sudo service kibana restart
- kibanaの自動起動設定
$ sudo /bin/systemctl daemon-reload $ sudo /bin/systemctl enable kibana.service
firewalld設定
- kibanaの5601ポート
- elasticsearch9200ポート
$ sudo vi /etc/firewalld/zones/piblic.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <port protocol="tcp" port="5601"/> <!-- kibanaポート追加 --> <port protocol="tcp" port="9200"/> <!-- elasticsearchポート追加 --> </zone>
- firewalldの設定反映
$ sudo systemctl restart firewalld
- kinabaへアクセス
elasticsearchのインストールディレクトリ
- /usr/share/elasticsearch
Plugin
- kuromoji
- Kibana上で日本語を正しく解析する際に必要となるプラグイン
cd /usr/share/elasticsearch
sudo bin/elasticsearch-plugin install analysis-kuromoji
Elasticsearch6を利用する前に読んでおいたほうがいいもの
Content-Typeを指定しないとエラーになるので注意
curl -H "Content-Type: application/json" -XPOST http://192.168.33.10:9200/blog/article/2 -d ' { "title": "My Name Is Kitagawa", "content": "I love cat", "tags": ["red", "green", "blue", "orange"] }
- jsonで一括登録する方法
$ cat requests { "index" : { "_index" : "ropeway", "_type" : "event" } } { "test" : "fukuda" } curl -X POST -H "Content-Type: application/x-ndjson" http://192.168.33.10:9200/_bulk?pretty --data-binary "@requests"
ElasticsearchとRDBとの比較
- インデックス:データベース
- マッピングタイプ:テーブル
- カラム:フィールド
- レコード:ドキュメント