部署 ELK 日志分析系统(图文详解)

文章目录

  • 一、拓扑图
  • 二、需求描述
  • 三、环境介绍
  • 四、开始部署
      • 1.配置 Elasticsearch 环境
      • 2.部署 Elasticsearch 软件
      • 3.安装 elasticsearch-head 插件
      • 4安装 logstash 并做一些日志搜集输出到 ES 中
      • 5.登录 Apache 主机做对接配置(Kibana)

一、拓扑图

部署 ELK 日志分析系统(图文详解)_第1张图片

二、需求描述

  1. 配置 ELK 日志分析群集
  2. 使用 Logstash 收集日志
  3. 使用 Kibana 查看分析日志

三、环境介绍

主机 主机名 IP 地址 主要软件
Node1 CentOS 7-1 192.168.74.135 Elasticsearch、Kibana
Node2 CentOS 7-2 192.168.74.122 Elasticsearch
Apache CentOS 7-3 192.168.74.128 Logstash

四、开始部署

1.配置 Elasticsearch 环境

登录 CentOS 7-1(192.168.74.135),更改主机名,配置域名解析并查看 Java 环境

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#先关防火墙及安全机制
hostnamectl set-hostname node1 #修改主机名
su

vim /etc/hosts
192.168.74.135   node1
192.168.74.122   node2
#尾部添加

java -version
#查看JAVA环境,一般默认是1.8.0_131

#上传jdk压缩包至opt目录下
tar xzvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
mv jdk1.8.0_91 jdk
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA HOME}/lib:${JRE HOME}/lib
export PATH=${JAVA_HOME}/bin: $PATH

source /etc/profile .
java- version                     #检查和版本会改变成安装包的版本
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

在这里插入图片描述
登录 CentOS 7-2(192.168.74.122),同上操作

在这里插入图片描述

2.部署 Elasticsearch 软件

先配置node1(192.168.74.135)

  1. 安装 rpm 包
cd /opt              #将软件包传至该目录下
rpm -ivh elasticsearch-5.5.0.rpm 
 
#加载系统服务
systemctl daemon-reload
systemctl enable elasticsearch.service
  1. 更改 ES 主要配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
#备份

vim /etc/elasticsearch/elasticsearch.yml
//17行	cluster.name: my-elk-cluster							#集群名字
//23行	node.name: node1										#节点名字
//33行	path.data: /data/elk_data								#数据存放路径
//37行	path.logs: /var/log/elasticsearch/						#日志存放路径
//43行	bootstrap.memory_lock: false							#不在启动的时候锁定内存(前端缓存,与IOPS-性能测试方式,每秒读写次数相关)
//55行	network.host: 0.0.0.0									#提供服务绑定的IP地址,0.0.0.0代表所有地址
//59行	http.port: 9200											#侦听端口为9200
//68行	discovery.zen.ping.unicast.hosts: ["node1", "node2"]	#集群发现通过单播实现


grep -v "^#" /etc/elasticsearch/elasticsearch.yml                     #检查配置

部署 ELK 日志分析系统(图文详解)_第2张图片
3. 创建数据存放路径并授权

mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data/
  1. 查看启动 ES 是否成功开启
systemctl start elasticsearch.service
netstat -antp | grep 9200
#这里可能出现一次性检测不出来端口号的情况,多restart重启几次服务即可

部署 ELK 日志分析系统(图文详解)_第3张图片

  1. 查看节点信息,用宿主机浏览器打开 http://192.168.74.135:9200

部署 ELK 日志分析系统(图文详解)_第4张图片

node2操作同上
部署 ELK 日志分析系统(图文详解)_第5张图片
在这里插入图片描述
部署 ELK 日志分析系统(图文详解)_第6张图片

3.安装 elasticsearch-head 插件

node1:

  1. 编译安装 node 组件依赖包
cd /opt
#将软件包传至本目录下
yum install -y gcc gcc-c++ make

tar zxvf node-v8.2.1.tar.gz
cd node-v8.2.1/
./configure 
make -j 4 && make install
#过程耗时较长!!建议同时编译安装node2,然后再去配置Apache
  1. 安装 phantomjs(前端框架)
cd /usr/local/src/
#将软件包传至本目录下
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin
  1. 安装 elasticsearch-head(数据可视化工具)
cd /usr/local/src/
#将软件包传至本目录下
tar zxvf elasticsearch-head.tar.gz

cd elasticsearch-head/
npm install
  1. 修改主配置文件
cd ~
vim /etc/elasticsearch/elasticsearch.yml
#在尾部添加配置
http.cors.enabled: true
http.cors.allow-origin: "*"
#注释
1.开启跨域访问支持,默认为false
2.跨域访问允许的域名地址


systemctl restart elasticsearch
  1. 启动 elasticsearch-head
cd /usr/local/src/elasticsearch-head/
npm run start &
#切换到后台运行

netstat -lnupt |grep 9100
netstat -lnupt |grep 9200

部署 ELK 日志分析系统(图文详解)_第7张图片
node2操作同上

1.在宿主机上打开浏览器,访问 http://192.168.74.135:9100/
2.然后在 Elasticsearch 后面的栏目中摄入 http://192.168.74.135:9200,点击连接,查看群集颜色是否是健康的绿色
3.访问 http://192.168.74.122:9100/,同上操作

部署 ELK 日志分析系统(图文详解)_第8张图片
登录 node1

curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"xcf","mesg":"hello world"}'
#索引为index-demo,类型为test,可以看到成功创建
1.打开浏览器输入http://192.168.74.135:9200/ 查看索引信息
2.可以看见索引默认被分片5个,并且有一个副本
3.点击数据浏览,会发现在node1上创建的索引为index-demo,类型为test这些相关的信息

部署 ELK 日志分析系统(图文详解)_第9张图片

4安装 logstash 并做一些日志搜集输出到 ES 中

  1. 更改主机名并安装 Apache httpd 服务
hostnamectl set-hostname apache
su -

yum install -y httpd
systemctl start httpd
  1. 安装 JAVA 环境:同 node1/2一样的操作
java -version
  1. 安装 logstash
cd /opt
#将软件包传至本目录下
rpm -ivh logstash-5.5.1.rpm

systemctl start logstash.service
systemctl enable logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#建立软连接,方便系统识别
  1. 做对接测试 logstash(Apache)与 elasticsearch(node)功能是否正常
Logstash [选项] [对象]
-f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
-e:后面跟着字符串 该字符串可以被当做logstash的配置(如果是" ",则默认使用stdin作为输入、stdout作为输出)
-t:测试配置文件是否正确,然后退出
  1. 输入采用标准输入,输出采用标准输出
logstash -e 'input { stdin{} } output { stdout{} }'
...
...
www.baidu.com		#输入内容
www.4399.com		#输入内容

部署 ELK 日志分析系统(图文详解)_第10张图片
部署 ELK 日志分析系统(图文详解)_第11张图片

5.登录 Apache 主机做对接配置(Kibana)

  1. logstasgh 配置文件
#Logstash配置文件主要由三部分组成:input、output、filter(根据需要)

chmod o+r /var/log/messages
ll /var/log/messages
  1. 配置文件中定义的是收集系统日志(system)
vim /etc/logstash/conf.d/system.conf
input {
		file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
			}
		}

output {
        elasticsearch {
          hosts => ["192.168.74.135:9200"]
          index => "system-%{+YYYY.MM.dd}"
					  }
       }

systemctl restart logstash.service
  1. 宿主机浏览 http://192.168.126.11:9100/ 查看索引信息
    部署 ELK 日志分析系统(图文详解)_第12张图片

  2. 在 node1 主机安装 Kibana

cd /usr/local/src/
#将软件包传至本目录下
rpm -ivh kibana-5.5.1-x86_64.rpm

cd /etc/kibana/
cp kibana.yml kibana.yml.bak

vim kibana.yml
//2行	server.port: 5601                					#kibana打开的端口
//7行	server.host: "0.0.0.0"           					#kibana侦听的地址
//21行	elasticsearch.url: "http://192.168.74.135:9200"		#和elasticsearch建立联系
//30行	kibana.index: ".kibana"								#在elasticsearch中添加.kibana索引


systemctl start kibana.service
systemctl enable kibana.service
  1. 宿主机浏览 192.168.74.135:5601
1.首次登录创建一个索引 名字:system-*  ##这是对接系统日志文件
Index name or pattern   
#下面输入ystem-*
2.然后点最下面的出面的create 按钮创建
3.然后点最左上角的Discover按钮,会发现system-*信息
4.然后点下面的host旁边的add,会发现右面的图只有Time和host选项了,个比较友好

部署 ELK 日志分析系统(图文详解)_第13张图片
部署 ELK 日志分析系统(图文详解)_第14张图片

  1. 对接 Apache 主机的 Apache 日志文件
Apache(192.168.126.13):

cd /etc/logstash/conf.d/
touch apache_log.conf

vim apache_log.conf
input {
       file{
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
        }
       file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
        }
        
      }
output {
        if [type] == "access" {
        elasticsearch {
          hosts => ["192.168.126.11:9200"]
          index => "apache_access-%{+YYYY.MM.dd}"
          }
        }
        if [type] == "error" {
        elasticsearch {
          hosts => ["192.168.126.11:9200"]
          index => "apache_error-%{+YYYY.MM.dd}"
          }
        }
        }


/usr/share/logstash/bin/logstash -f apache_log.conf


-----
1.宿主机浏览器,输入http://192.168.126.13,访问apache

2.输入http://192.168.126.11:9100/,查看索引信息

3.输入http://192.168.126.11:5601
点击左下角有个management选项
index  patterns
create index pattern
分别创建"apache_error-*""apache_access-*"的索引

你可能感兴趣的:(ELK,elk)