https://github.com/mobz/elasticsearch-head
http://mobz.github.io/elasticsearch-head
Running
There are multiple ways of running elasticsearch-head.
Running with built in server
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
This will start a local webserver running on port 9100 serving elasticsearch-head
Running with docker
- for Elasticsearch 5.x:
docker run -p 9100:9100 mobz/elasticsearch-head:5
- for Elasticsearch 2.x:
docker run -p 9100:9100 mobz/elasticsearch-head:2
- for Elasticsearch 1.x:
docker run -p 9100:9100 mobz/elasticsearch-head:1
- for fans of alpine there is
mobz/elasticsearch-head:5-alpine
Running as a Chrome extension
- Install ElasticSearch Head from the Chrome Web Store.
- Click the extension icon in the toolbar of your web browser.
Running as a plugin of Elasticsearch (deprecated)
- for Elasticsearch 5.x: site plugins are not supported. Run as a standalone server
- for Elasticsearch 2.x:
sudo elasticsearch/bin/plugin install mobz/elasticsearch-head
- for Elasticsearch 1.x:
sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/1.x
- for Elasticsearch 0.x:
sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/0.9
open http://localhost:9200/_plugin/head/
This will automatically download the appropriate version of elasticsearch-head from github and run it as a plugin within the elasticsearch cluster. In this mode elasticsearch-head automatically connects to the node that is running it
Running with the local proxy
This is an experimental feature which creates a local proxy for many remote elasticsearch clusters
- configure clusters in proxy/clusters
- create a file per remote cluster you want to connect to ( see
localhost9200.json
as example ) - requires node >= 6.0
npm install
npm run proxy
At the moment it only works with grunt server
running on http://localhost:9100
Alternatives
- File System: elastisearch-head is a standalone webapp written in good-ol’ html5. This means, you can put it up on any webserver, run it directly from the filesystem. It’ll even fit on a floppy disk.
- DEB package: There is an unofficial deb package. the plugin executable will be available at
/usr/share/elasticsearch/bin/plugin
. - Homebrew: There is an unofficial keg. The plugin executable will be available at
/usr/local/Cellar/elasticsearch/(elasticsearch version)/libexec/bin/plugin
.
Connecting to elasticsearch
By default elasticsearch exposes a http rest API on port 9200 which elasticsearch-head connects to.
Enable CORS in elasticsearch
When not running as a plugin of elasticsearch (which is not even possible from version 5) you must enable CORS in elasticsearch otherwise your browser will rejects requests which appear insecure.
In elasticsearch configuration;
- add
http.cors.enabled: true
- you must also set
http.cors.allow-origin
because no origin allowed by default.http.cors.allow-origin: "*"
is valid value, however it’s considered as a security risk as your cluster is open to cross origin from anywhere.
Basic Authentication
elasticsearch-head will add basic auth headers to each request if you pass in the correct url parameters
You will also need to add http.cors.allow-headers: Authorization
to the elasticsearch configuration
x-pack
elasticsearch x-pack requires basic authentication and CORS as described above. Make sure you have the correct CORS setup and then open es-head with a url like “http://localhost:9100/?auth_user=elastic&auth_password=changeme”
URL Parameters
Parameters may be appended to the url to set an initial state eg. head/index.html?base_uri=http://node-01.example.com:9200
base_uri
force elasticsearch-head to connect to a particular node.dashboard
experimental feature to open elasticsearch-head in a mode suitable for dashboard / radiator. Accepts one parameterdashboard=cluster
auth_user
adds basic auth credentials to http requests ( requires elasticsearch-http-basic plugin or a reverse proxy )auth_password
basic auth password as above (note: without additional security layers, passwords are sent over the network in the clear )lang
force elasticsearch-head to use specified ui language (eg: en, fr, pt, zh, zh-TW, tr, ja)
Contributing
To contribute to elasticsearch-head you will need the following developer tools
Then
- create a fork of elasticsearch-head on github
- clone your fork to your machine
cd elasticsearch-head
npm install
# downloads node dev dependenciesgrunt dev
# builds the distribution files, then watches the src directory for changes (if you have an warning like "Warning: Task “clean” failed. Use —force to continue.", well use —force ;) )
Changes to both _site and src directories must be committed, to allow people to
run elasticsearch-head without running dev tools and follow existing dev patterns,
such as indenting with tabs.
安装
yum localinstall elasticsearch-6.1.1.rpm -y
mkdir -p /elk/{data,logs} && chown -R elasticsearch.elasticsearch /elk
配置
grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml
cluster.name: yoho8elk #ELK的集群名称,名称相同即属于是同一个集群
node.name: manager-node-1 #本机在集群内的节点名称ode-1
path.data: /elk/data #数据保存目录
path.logs: /elk/logs #日志保存目录
bootstrap.memory_lock: true #服务启动的时候锁定足够的内存,防止数据写入swap,可能会导致云主机报错.可以不填写.
network.host: 0.0.0.0 #监听 10.0.1.0网段的
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.0.1.100", "10.0.1.24"]
修改内存限制,并同步配置文件:
https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
vim jvm.options
-Xms1g
-Xmx1g
#官方配置文档最大建议30G以内。
修改节点2的配置文件。
[root@test-manager elasticsearch]# scp elasticsearch.yml test-web04:/etc/elasticsearch/
[root@test-web04 elasticsearch]# grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml
cluster.name: yoho8elk
node.name: test-web04-node-2
path.data: /elk/data
path.logs: /elk/logs
bootstrap.memory_lock: true #在云主机上加上这个参数可能会报错。
network.host: 0.0.0.0 #监听 0.0.0.0网段的
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.0.1.100", "10.0.1.24"]
设置java路径
which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
ln -sv /application/jdk/bin/java* /usr/local/sbin/
启动elasticsearch
systemctl start elasticsearch
systemctl enable elasticsearch
systemctl status elasticsearch
访问测试
curl 10.0.1.100:9200
集群管理head 插件
git clone git://github.com/mobz/elasticsearch-head.git
yum install -y npm
yum update openssl -y
npm install grunt -save
npm install 或 npm install -g cnpm --registry=https://registry.npm.taobao.org && cnpm install
启动插件
npm run start &
netstat -lntp |grep 9100
修改elasticsearch支持跨域访问并重启
vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true #最下方添加
http.cors.allow-origin: "*"
systemctl restart elasticsearch
ik分词器
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.1.2/elasticsearch-analysis-ik-6.1.2.zip