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

如果没有就是长这样子:

image

创建开机自启动服务

# 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"
}
image

利用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
      }
    }
image

安装插件 使用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 地方报错

image

其中这一行是报错信息

image

解决:

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

接着启动长这样

image

然后页面访问

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

以下才是正确的样子

image

关注这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 {} }'
image

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

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

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

创建配置文件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
image

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

然后继续配置安全日志的并且把日志的索引按类型做存放,继续编辑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 
image

这些设置都没有问题之后,接下来安装下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
image
image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容