ELK日志分析系统配置实验
2023-12-25 17:32:42
实验前准备
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.shexport 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个,并且有一个副本
点数据浏览可以看到该索引的相关信息
- 安装依赖环境node和phantomjs
- 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.confinput { ????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.confinput { ????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然后选择要查看地索引
然后就可以用图形化的方式方便地查看日志啦
- 安装kibana
文章来源:https://blog.csdn.net/qq_53772682/article/details/135203794
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!