ELK搭建日志处理系统

一、实验环境

主机名 IP地址
elk-node1 192.168.200.111
elk-node1 192.168.200.112
apache 192.168.200.113

二、elk主机的安装

  • elk-node1主机配置
#修改主机名
hostname elk-node1
bash
[root@elk-node1 ~]#
#修改hosts文件生成主机名与ip的对应关系
vim /etc/hosts

192.168.200.111 elk-node1
192.168.200.112 elk-node2
  • elk-node2主机配置
#修改主机名
hostname elk-node2
bash
[root@elk-node2 ~]#
#修改主机名与IP地址的对应关系
vim /etc/hosts

192.168.200.111 elk-node1
192.168.200.112 elk-node2
  • 配置两台主机Java环境(软件是Java写的)
java -version
bash: java: 未找到命令
#没有发现Java环境使用yum安装Java环境
yum -y install java
#再次查看Java版本
java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
  • 两台主机上使用RPM包安装ES
rpm -ivh elasticsearch-5.5.0.rpm
警告:elasticsearch-5.5.0.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
正在升级/安装...
   1:elasticsearch-0:5.5.0-1          ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload   #提示你先识别服务
 sudo systemctl enable elasticsearch.service  #设置为开机自启
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service   #开启服务,现在先别开,等配置完成在开
-----------------------------------------------------------------------------------------------------------------
systemctl daemon-reload
systemctl enable elasticsearch.service
  • node1修改配置文件
vim /etc/elasticsearch/elasticsearch.yml

17 cluster.name: elk    #集群名称,两台主机集群名必须相同否则就跑到其他集群中去了
23 node.name: elk-node1  #本节点名称
33 path.data: /data/elk_data   #数据存放位置
37 path.logs: /var/log/elk.log   #日志存放位置
43 bootstrap.memory_lock: false  #不在启动时绑定内存
55 network.host: 0.0.0.0    #提供服务的ip地址
59 http.port: 9200     #监听端口
68 discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"]     #集群中的实例名
90 http.cors.enabled: true    #开启跨域传送
91 http.cors.allow-origin : "*"   #跨域传送可允许的ip
  • node2修改配置文件
vim /etc/elasticsearch/elasticsearch.yml

17 cluster.name: elk    #集群名称
23 node.name: elk-node2  #本节点名称
33 path.data: /data/elk_data   #数据存放位置
37 path.logs: /var/log/elasticsearch   #日志存放位置
43 bootstrap.memory_lock: false  #不在启动时绑定内存
55 network.host: 0.0.0.0    #提供服务的ip地址
59 http.port: 9200     #监听端口
68 discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"]     #集群中的实例名
  • 两台主机创建数据目录,并对其进行授权
mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data
  • 两台主机启动服务
systemctl start elasticsearch
#查看端口,这个端口不好出来
ss -lnupt| grep 9200
tcp    LISTEN     0      128                   :::9200                 :::*    users:(("java",13557,116))
  • 测试访问两台主机的9200端口
    注:9300是用于节点之间交互的
    ELK搭建日志处理系统_第1张图片
    ELK搭建日志处理系统_第2张图片
    三、为ES安装head插件(两台ES主机都要做相同操作)

  • 安装head插件,首先需要要有npm的命令,这里使用二进制包安装

#安装npm命令
 tar xf node-v8.2.1-linux-x64.tar.gz -C /usr/local/
 #将命令设置软连接
 ln -s /usr/local/node-v8.2.1-linux-x64/bin/node /usr/bin/
ln -s /usr/local/node-v8.2.1-linux-x64/bin/npm /usr/bin/
#查看版本信息
 node -v
v8.2.1
 npm -v
5.3.0

  • 安装head插件
#解压到ES的data目录
tar xf elasticsearch-head.tar.gz -C /data/elk_data/
#对目录进行授权
cd /data/elk_data/
chown -R elasticsearch:elasticsearch elasticsearch-head/
cd elasticsearch-head/
#安装
npm install
#报这一句表示结束
added 68 packages in 13.883s
  • 配置head插件
cd _site/
pwd
/data/elk_data/elasticsearch-head/_site
备份配置文件
cp app.js{,.bak}
#修改配置文件
vim app.js
4329 "http://192.168.200.111:9200" #修改为本机ip地址
  • 启动服务,查看端口
 npm run start &
[1] 13705
[root@elk-node1 _site]#
> [email protected] start /data/elk_data/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

[root@elk-node1 _site]# ss -lnupt |grep 9100
tcp    LISTEN     0      128                    *:9100                  *:*    users:(("grunt",13715,12))

  • 访问9100端口测试
    ELK搭建日志处理系统_第3张图片

四、安装logstash

#logstash也需要Java环境
rpm -ivh logstash-5.5.1.rpm
#做命令软连接
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

logstash命令

   -e          执行操作
   input       标准输入
   { input }   插件
   output      标准输出
   { stdout }  插件 
 #将logstash中的内容写入ES
   logstash -e 'input { stdin{} } output { elasticsearch { hosts=> ["192.168.200.111:9200"]} }'
  • 使用logstash配置文件
vim /etc/logstash/conf.d/elk.conf

  input {
        file {
            path => "/var/log/messages"
            type => "system"
            start_position => "beginning"
            }
    }
    output {    
             elasticsearch {
                    hosts => ["192.168.200.111:9200"]
                    index => "system-%{+YYYY.MM.dd}"
                }
    }

#使用配置文件加载服务
 /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/elk.conf

会出现system的文件信息
ELK搭建日志处理系统_第4张图片

五、安装kibana

rpm -ivh kibana-5.5.1-x86_64.rpm
systemctl enable kibana   #设置开机自启
  • 修改配置文件
vim /etc/kibana/kibana.yml

2 server.port: 5601
7 server.host: "0.0.0.0"
21 elasticsearch.url: "http://192.168.200.111:9200"
30 kibana.index: ".kibana"
  • 启动服务,查看端口

systemctl restart kibana
netstat -lnupt | grep 5601
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN   14747/node
  • 访问测试
    ELK搭建日志处理系统_第5张图片

六、测试Apache主机日志

  • 安装Apache

你可能感兴趣的:(linux)