centos7安装ELK

参考:

https://blog.csdn.net/e_wsq/article/details/81303713

https://blog.csdn.net/zdxxinlang/article/details/84616438

-------------------------------------------------  

两台机子:

192.168.42.128 elasticsearch(E) elasticsearch-head(这个是插件)LogStash(L) kibana(K)

192.168.42.130 LogStash(L)

安装 elasticsearch 以下是命令:

修改源

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

编辑repo文件

# vim /etc/yum.repos.d/elasticsearch.repo

加上如下内容:

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md 

安装 elasticsearch 这一步很慢,我用公司网络才10k/s 而且会一直切换镜像,耐心等候

# yum install -y elasticsearch  

安装JAVA环境 使用yum安装 快一点

1.检查系统是否安装弄过java
# yum list installed | grep java
2. 如果有旧版本的java,可以用如下方法卸载java
# yum -y remove java-1.8.0-openjdk*
3. 查看java软件包列表
# yum -y list java*
4. 下载安装java1.8的所有软件包,中途需要输入y来确认下载。
# yum install java-1.8.0-openjdk*
5.安装成功,输入如下命令检查是否安装成功,如果返回正确的版本号则表示安装成功。
#  java -version

创建elasticsearch data的存放目录,并修改该目录的属主属组,修改elasticsearch的日志属主属组

# mkdir -p /data/es-data   (自定义用于存放data数据的目录)
# chown -R elasticsearch:elasticsearch /data/es-data
# chown -R elasticsearch:elasticsearch /var/log/elasticsearch/

修改elasticsearch的配置文件 修改的时候,把井号去掉!把#去掉! 把井号#去掉!!重要的事情说三次

# vim /etc/elasticsearch/elasticsearch.yml

 
找到配置文件中的cluster.name,打开该配置并设置集群名称
cluster.name: demon
 
找到配置文件中的node.name,打开该配置并设置节点名称
node.name: elk-1
 
修改data存放的路径
path.data: /data/es-data
 
修改logs日志的路径
path.logs: /var/log/elasticsearch/
 
配置内存使用用交换分区
bootstrap.memory_lock: true
 
监听的网络地址
network.host: 0.0.0.0
 
开启监听的端口
http.port: 9200
 
增加新的参数,这样head插件可以访问es (5.x版本,如果没有可以自己手动加)
http.cors.enabled: true
http.cors.allow-origin: "*"

启动服务

/etc/init.d/elasticsearch start

如果有报错。请移步:https://blog.csdn.net/e_wsq/article/details/81303713

如果没有就是长这样子:


创建开机自启动服务

# chkconfig elasticsearch on

注意事项:

需要修改几个参数,不然启动会报错
 

vim /etc/security/limits.conf
在末尾追加以下内容(elk为启动用户,当然也可以指定为*)
elk soft nofile 65536
elk hard nofile 65536
elk soft nproc 2048
elk hard nproc 2048
elk soft memlock unlimited
elk hard memlock unlimited
 
继续再修改一个参数
vim /etc/security/limits.d/90-nproc.conf
将里面的1024改为2048(ES最少要求为2048) 也有可能不是1024,我的是4000多
*          soft    nproc     2048
 
另外还需注意一个问题(在日志发现如下内容,这样也会导致启动失败,这一问题困扰了很久)
[2017-06-14T19:19:01,641][INFO ][o.e.b.BootstrapChecks    ] [elk-1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2017-06-14T19:19:01,658][ERROR][o.e.b.Bootstrap          ] [elk-1] node validation exception
[1] bootstrap checks failed
[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    
解决:修改配置文件,在配置文件添加一项参数(目前还没明白此参数的作用)
vim /etc/elasticsearch/elasticsearch.yml 
bootstrap.system_call_filter: false

 访问9200端口查看是否成功

先检查9200端口是否起来
netstat -antp |grep 9200
tcp        0      0 :::9200                     :::*                        LISTEN      2934/java
 
浏览器访问测试是否正常(以下为正常)
# curl http://127.0.0.1:9200/
{
  "name" : "linux-node1",
  "cluster_name" : "demon",
  "cluster_uuid" : "kM0GMFrsQ8K_cl5Fn7BF-g",
  "version" : {
    "number" : "5.4.0",
    "build_hash" : "780f8c4",
    "build_date" : "2017-04-28T17:43:27.229Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.0"
  },
  "tagline" : "You Know, for Search"
}

利用api查看状态

# curl -i -XGET 'localhost:9200/_count?pretty' 
    HTTP/1.1 200 OK
    content-type: application/json; charset=UTF-8
    content-length: 95
 
    {
      "count" : 0,
      "_shards" : {
        "total" : 0,
        "successful" : 0,
        "failed" : 0
      }
    }

安装插件 使用git安装elasticsearch-head

# yum install -y npm
# git clone git://github.com/mobz/elasticsearch-head.git
# cd elasticsearch-head
# npm install (这一步安装很慢。进度条一直卡在20%过不去,然后我敲了几下回车就报错了,没办法只能重装)
# npm run start
检查端口是否起来
# netstat -antp |grep 9100
浏览器访问测试是否正常
http://IP:9100/

注意事项:

npm install 地方报错

 其中这一行是报错信息

解决:

# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts

 接着启动长这样

然后页面访问

http:/IP:9100 (这就是没去掉井号的后果。显示集群健康值:未连接)

以下才是正确的样子

关注这3个地方。

Logstash 安装

安装Logstash环境:
 
下载yum源的密钥认证:
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
 
利用yum安装logstash 有点大,107M
# yum install -y logstash
 
查看下logstash的安装目录
# rpm -ql logstash
 
创建一个软连接,每次执行命令的时候不用在写安装路劲(默认安装在/usr/share下)
ln -s /usr/share/logstash/bin/logstash /bin/
 
执行logstash的命令
# logstash -e 'input { stdin { } } output { stdout {} }'

 

如果标准输出还有elasticsearch中都需要保留应该怎么玩,看下面

# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.42.128:9200"] } stdout { codec => rubydebug }}'
 
运行成功以后输入:
啦啦啦

 我们不可能每次都是输入这么长的一串命令。所以把命令修改到配置文件当中

创建配置文件01-logstash.conf
# vim /etc/logstash/conf.d/elk.conf
 
文件中添加以下内容
input { stdin { } }
output {
  elasticsearch { hosts => ["192.168.1.202:9200"] }
  stdout { codec => rubydebug }
}
 
使用配置文件运行logstash (在这一步,要把目录cd到elk.conf的当前目录。我的目录就是在/etc/logstash/conf.d/)
# logstash -f ./elk.conf

logstash的数据库类型

Input插件
    权威指南:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
    
    file插件的使用
    # vim /etc/logstash/conf.d/elk.conf
 
    添加如下配置
    input {
        file {
            path => "/var/log/messages"
            type => "system"
            start_position => "beginning"
            }
    }
    output {    
             elasticsearch {
                    hosts => ["192.168.1.202:9200"]
                    index => "system-%{+YYYY.MM.dd}"
                }
    }
 
 
运行logstash指定elk.conf配置文件,进行过滤匹配
#logstash -f /etc/logstash/conf.d/elk.conf

我理解以上都是系统的日志

然后继续配置安全日志的并且把日志的索引按类型做存放,继续编辑elk.conf文件

# vim /etc/logstash/conf.d/elk.conf
 
添加secure日志的路径
input {
    file {
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
    }
 
    file {
        path => "/var/log/secure"
        type => "secure"
        start_position => "beginning"
    }
}
 
output {
 
    if [type] == "system" {
 
        elasticsearch {
            hosts => ["192.168.1.202:9200"]
            index => "nagios-system-%{+YYYY.MM.dd}"
        }
    }
 
    if [type] == "secure" {
 
        elasticsearch {
            hosts => ["192.168.1.202:9200"]
            index => "nagios-secure-%{+YYYY.MM.dd}"
        }
    }
}
 
运行logstash指定elk.conf配置文件,进行过滤匹配
# logstash -f ./elk.conf 

这些设置都没有问题之后,接下来安装下kibana,可以让在前台展示

安装kibana环境
 
官方安装手册:https://www.elastic.co/guide/en/kibana/current/install.html
 
下载kibana的tar.gz的软件包
# wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz
 
解压kibana的tar包
# tar -xzf kibana-5.4.0-linux-x86_64.tar.gz
 
进入解压好的kibana
# mv kibana-5.4.0-linux-x86_64 /usr/local
 
创建kibana的软连接
# ln -s /usr/local/kibana-5.4.0-linux-x86_64/ /usr/local/kibana 
 
编辑kibana的配置文件
# vim /usr/local/kibana/config/kibana.yml
 
修改配置文件如下,开启以下的配置
server.port: 5601
 
server.host: "0.0.0.0"
 
elasticsearch.url: "http://192.168.1.202:9200"
 
kibana.index: ".kibana" 
 
安装screen,以便于kibana在后台运行(当然也可以不用安装,用其他方式进行后台启动)
# yum -y install screen
 
# screen
 
# /usr/local/kibana/bin/kibana
netstat -antp |grep 5601
tcp        0      0 0.0.0.0:5601                0.0.0.0:*                   LISTEN      17007/node 
打开浏览器并设置对应的index
http://IP:5601

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镜中先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值