参考:
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