参考:html
https://blog.csdn.net/e_wsq/article/details/81303713java
https://blog.csdn.net/zdxxinlang/article/details/84616438node
------------------------------------------------- linux
两台机子:ios
192.168.42.128 elasticsearch(E) elasticsearch-head(这个是插件)LogStash(L) kibana(K)git
192.168.42.130 LogStash(L)github
安装 elasticsearch 如下是命令:数据库
修改源npm
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchjson
编辑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