我发送给沉迷于Elasticsearch2.3和Kibana4.5的你一个一分钟即可运行的脚本

我是GYAO公司的窗边工程师,我叫玉利。

我每天都要忙着做泡菜,同时还要兼顾日本方面的服务开发。如果说哪个是“片手间”,公司倾向于认为日本方面的工作是主要的,但实际上让人费心的是越南那边…因为需要进行与之相关的日本方面工作。

所以,我拖延了很久的工作终于开始紧迫起来了。最初计划使用Google Cloud Platform的StackDriver来构建监视系统,但因为一些原因不再使用它,而在NewRelic中很难处理日志相关的问题(除非投入更多成本),而DATADOG在日志监视方面似乎也不擅长。

因此,我們又回到了常見的Elasticsearch + logstash + kibana的設定。

在安装时遇到困难

我个人长期以来一直使用”樱云”的服务,这里的文档也非常友好。15分钟的速度可真是太棒了。
http://knowledge.sakura.ad.jp/tech/2736/

此外,我参考了各个地方的安装文章。但是,当我放纵自己并安装最新版本时,遗憾的是陷入了困境。

问题1:无法通过浏览器打开Elasticsearch2.3。

我正在使用常见的head插件进行设置。在测试运行中,使用curl http://localhost:9200命令可以正常运行,但在浏览器中访问http://${HOSTNAME}:9200/没有反应。

默认情况下,仅监听127.0.0.1,需要以下设置。如果确实要在Mac本地进行尝试,这个设置是不必要的。
/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0

问题2:kibana出现认证错误。

奇怪,我记得之前尝试时应该没有出现这种情况,但现在无法连接到Kibana。准确地说,Kibana无法连接到Elasticsearch。

Courier Fetch Error: unhandled courier request error: Authorization Exception

当我尝试搜索时,我找到了它。看起来是最近版本中的组合问题。

https.cors.enabled在以前的kibana设置中是必需的,尽管在许多文档中有记载,请在此处将其注释掉。

# http.cors.enabled: true # kibana4.5 is not work on ES2.3 so please comment out here

然后,创建一个独立的脚本

由于我之前负责过Yahoo的广告系统运营工作,所以当时我和其他两个人一起负责管理约5000个广告。这让我们的生活非常忙碌。手动修复这些问题是非常耗时耗力的。因此,我总是把这些步骤统统自动化为Shell脚本来处理,这是我的工作准则。

如果你已经到这一步了,再给厨师找点吃的也不难,但是我认为使用Shell脚本更方便,直接复制粘贴就能运行,所以我会用Shell脚本进行公开。

请注意,本操作无保证。操作系统为CentOS。对于细节部分,请见谅。请根据需要自行配置elasticsearch集群等设定(如host1,host2等)。

#!/usr/bin/env bash

echo 'Elasticsearch/logstash/kibana Auto setup script for logcol[01-02].subdomain'
echo "Copyright GYAO Corporation `date +%Y`"
echo "Author: Bungo Tamari"

sudo yum install -y java
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

cat << EOS |sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOS

sudo yum install -y elasticsearch
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

sudo mv /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.orig && \
cat << EOS |sudo tee  /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
http.port: 9200
node.name: ${HOSTNAME}
cluster.name: log_collector
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: [host1,host2] # please change here
# http.cors.enabled: true # kibana4.5 is not work on ES2.3 so please comment out here
EOS

sudo -u elasticsearch /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
sudo -u elasticsearch /usr/share/elasticsearch/bin/plugin install royrusso/elasticsearch-HQ
sudo -u elasticsearch /usr/share/elasticsearch/bin/plugin install polyfractal/elasticsearch-inquisitor
sudo systemctl daemon-reload
sudo /etc/init.d/elasticsearch restart
sudo /etc/init.d/elasticsearch status
sudo /sbin/chkconfig --add elasticsearch


## logstash

cat << EOS |sudo tee /etc/yum.repos.d/logstash.repo
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=http://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOS

sudo yum install -y logstash

### kibana


cat << EOS |sudo tee /etc/yum.repos.d/kibana.repo
[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOS

sudo yum install -y kibana
sudo chkconfig --add kibana
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
sudo /etc/init.d/kibana restart

echo 'please check'
echo "http://${HOSTNAME}:9200/_plugin/head/"
echo "http://${HOSTNAME}:5601"

动一下只需要一分钟,但是包括调整的话需要几个小时来制作。然后我们可以让他们去越南学习关于日志管理的内容。

广告
将在 10 秒后关闭
bannerAds