ELK日志分析系统配置实验

目录

实验前准备

Elasticsearch集群部署(Node1、Node2)

环境准备

部署Elasticsearch软件

创建数据存放路径

启动elasticsearch

查看节点信息

安装Elasticsearch-head插件

安装依赖环境

安装phantomjs前端框架

安装Elasticsearch-head数据可视化工具

修改Elasticsearch主配置文件

启动elasticsearch-head服务

通过9100的端口进行访问测试

索引测试

Logstash部署

更改主机名,方便实验

安装apache服务(httpd)

安装Java环境

安装logstash

测试

定义logstash配置文件

Kibana部署

安装kibana

设置kibana的主配置文件

验证

再配置

访问测试


实验前准备

Node1节点(至少2核4G内存):192.168.188.15,Elasticsearch、Kibana
Node2节点(至少2核4G内存):192.168.188.16,Elasticsearch
Apache节点:192.168.188.14,Logstash、Apache
客户端:192.168.188.1(本机win11)
关闭防火墙
systemctl stop firewalld
setenforce 0

Elasticsearch集群部署(Node1、Node2)

环境准备

更改主机名,更加直观
Node1:hostnamectl set-hostname node1
bash刷新一下

Node2:hostnamectl set-hostname node2
bash刷新一下

配置dns,访问更加迅速
192.168.188.15 node1
192.168.188.16 node2

安装JAVA环境
rpm -ivh jdk-8u201-linux-x64.rpm
vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH


source /etc/profile.d/java.sh
看一下有没有成功 java -version

部署Elasticsearch软件

安装elasticsearch-rpm包
rpm -ivh elasticsearch-5.5.0.rpm
加载系统服务
systemctl daemon-reload
systemctl enable elasticsearch.service
修改elasticsearch主配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
指定集群名字

指定节点名字,Node1和Node2的名字不一样,请注意


指定数据存放路径

指定日志存放路径

启动时不锁定内存

监听地址,设为所有地址

监听端口,默认9200

指定单薄查找的集群节点,如果/etc/hosts中没有添加dns,这里也可以写IP地址

把最小主节点数设置为2

创建数据存放路径

mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data/

启动elasticsearch

systemctl start elasticsearch.service
netstat -anpt | grep :9200
如果没有就等几秒再试,还没有就去看日志

查看节点信息

在客户端浏览器访问http://192.168.188.15:9200和http://192.168.188.16:9200

也可以通过访问http://192.168.188.15:9200/_cluster/health?pretty
或者http://192.168.188.16:9200/_cluster/health?pretty的方式查看集群的健康状况

还可以通过访问http://192.168.188.15:9200/_cluster/state?pretty查看集群状态信息

这样看起来太费劲了,我们可以使用Elasticsearch-head插件更加方便地管理集群

安装Elasticsearch-head插件

安装依赖环境

安装依赖包node和phantomjs
yum -y install gcc gcc-c++ make
安装node
tar -zxvf /opt/node-v8.2.1.tar.gz
cd node-v8.2.1/
./configure
如果虚拟机有4核,那就-j 4,2核就-j 2,只有1核就make && make install慢慢等
make -j 4 && make install

安装phantomjs前端框架

tar -jxvf /opt/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

安装Elasticsearch-head数据可视化工具

tar -zxvf /opt/elasticsearch-head.tar.gz -C /usr/local/src/
cd /usr/local/src/elasticsearch-head/
npm install

修改Elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml
在最后添加两行
http.cors.enabled: true
http.cors.allow-origin: "*"

重启服务
systemctl restart elasticsearch

启动elasticsearch-head服务

cd /usr/local/src/elasticsearch-head/
npm run start &

通过9100的端口进行访问测试

打开长这样

在elasticsearch进行连接查询

索引测试

通过命令插入一个索引,索引名为index-demo,类型为test
curl -X PUT 'localhost:9200/index-demo1/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

在浏览器中可以访问到这个索引信息,可以看见索引默认被分片5个,并且有一个副本

点数据浏览可以看到该索引的相关信息

Logstash部署

更改主机名,方便实验

hostnamectl set-hostname logstash
bash

安装apache服务(httpd)

yum -y install httpd
systemctl start httpd

安装Java环境

1.1有做过,不会往前翻
java -version
不是jdk就行

安装logstash

rpm -ivh logstash-5.5.1.rpm
直接启动
systemctl start logstash
添加软链接方便使用
ln -s /usr/share/logstash/bin/logstash /usr/local/bin

测试

Logstash 命令常用选项:
-f:通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。
-e:从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。
-t:测试配置文件是否正确,然后退出。
定义输入和输出流,采用标准输入输出
logstash -e 'input { stdin{} } output { stdout{} }'
等一会,等看到successfully就可以输入了,输入内容测试一下logstash能不能用

测试结束按ctrl+c退出
使用rubydebug输出详细格式
codec是一种编解码器
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'

再测试一下使用Logstash将信息写入Elasticsearch中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.188.15:9200"] } }'

这里我们输入了并没有输出,因为输出已经发送到elasticsearch服务器上了
直接在客户端上访问http://192.168.188.15:9100/
发现多了一个索引

点到数据浏览查看更多信息

定义logstash配置文件

Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选)。
Input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等
filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式
output:表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch。
格式为:input {...}、filter {...}、output {...}
在每个部分中可以指定多个访问方式,例如如果要指定两个日志来源文件,格式为:
input {
file { path =>"/var/log/messages" type =>"syslog"}
file { path =>"/var/log/httpd/access.log" type =>"apache"}
}
现在我们来实际操作一下
假设我们要收集系统日志即/var/log/messages,并输出到elasticsearch中
先让logstash可读系统日志
chmod +r /var/log/messages
修改logstash的配置文件
vim /etc/logstash/conf.d/system.conf

input {
    file {
          path => "/var/log/messages"   # 收集的日志位置
          type => "system"             # 类型
          start_position => "beginning"   # 开始位置为“开始”,也就是从头收集
    }
}
output {
    elasticsearch {
          hosts => ["192.168.188.15:9200"]  # 指定elasticsearch的地址和端口
          index => "system-%{+YYYY.MM.dd}"  # 索引格式system-后面加日期年月日
    }
}



重启服务
systemctl restart logstash
浏览器访问测试


没毛病

Kibana部署

安装kibana

rpm -ivh kibana-5.5.1-x86_64.rpm

设置kibana的主配置文件

vim /etc/kibana/kibana.yml
取消注释,默认端口5601

取消注释,设置监听地址,0.0.0.0为所有地址

取消注释,设置和elasticsearch建立连接的地址和端口

取消注释,设置kibana的索引就是以.kibana为后缀

启动服务
systemctl start kibana
查看端口有没有打开
netstat -anpt | grep :5601

验证

浏览器访问http://192.168.188.14:5601
长这样

第一次登录需要添加一个 Elasticsearch 索引

点击create创建
点击左侧的Discover可以看到图表信息

点一下Available Fields中的host右边的add按钮,就会看到按照host筛选后的结果

数据展示就会变成这样,同时host选项从Available Fields移到了Selected Fields中

再配置

将logstash服务器上的日志,包括访问日志(access)和错误日志(error),都添加到Elasticsearch中,并通过Kibana展示
vim /etc/logstash/conf.d/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.188.15:9200"]
              index => "apache_access-%{+YYYY.MM.dd}"
          }
    }
    if [type] == "error" {
          elasticsearch {
              hosts => ["192.168.188.15:9200"]
              index => "apache_error-%{+YYYY.MM.dd}"
          }
    }
}



用命令指定logstash的配置文件
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/apache_log.conf

访问测试

先访问一下http://192.168.188.15:9100,注意地址和端口
发现apache_error文件正常出现,但是没有apache_access文件

那是因为apache_access是空的,我们没有登录过
所以我们在浏览器对apache的服务进行访问
http://192.168.188.14:80

就这个页面,多刷新几次
再回去看就有了

接着访问http://192.168.188.14:5601,注意地址和端口
然后点击create index pattern按钮添加索引


在索引名中添加apache_access-*和apache_error-*索引


选择Discover然后选择要查看地索引

然后就可以用图形化的方式方便地查看日志啦

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值