*** 作系统版本:CentOS7.9(镜像CentOS-7-x86_64-Minimal-2009.iso)
Elasticsearch版本:6.1.0
Logstash版本:6.1.0
Kibana版本:6.1.0
*** 作系统下载链接:http://mirrors.neusoft.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
JAVA下载链接:https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
Elasticsearch下载链接:https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
Logstash下载链接:https://artifacts.elastic.co/downloads/logstash/logstash-6.1.0.rpm
Kibana下载链接:https://artifacts.elastic.co/downloads/kibana/kibana-6.1.0-x86_64.rpm
因为ELK安装需要JAVA环境,首先安装JAVA环境
进入相应路径
cd /usr/local/
安装wget
sudo yum -y install wget
获取安装包
sudo wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gzsudo
解压安装包
sudo tar -zxvf jdk-8u201-linux-x64.tar.gz
重命名安装路径
sudo mv jdk1.8.0_201/ jdk
安装vim
sudo yum -y install vim
配置环境变量
sudo vim /etc/profile
在/etc/profile中追加以下内容
export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
追加完成后更新配置
source /etc/profile
查看是否安装成功
java -version
显示java版本则安装成功
设置软链接
sudo ln -s /usr/local/jdk/bin/java /usr/bin/java安装Elasticsearch
获取Elasticsearch安装包
sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.rpm
安装Elasticsearch
sudo rpm -ivh elasticsearch-6.1.0.rpm
查找安装路径,一般是装在/usr/share/elasticsearch/下
sudo rpm -ql elasticsearch
修改配置文件elasticsearch.yml
sudo vim /etc/elasticsearch/elasticsearch.yml
配置文件中可以定义data和logs存放的路径
#设置data存放的路径,以下是默认data路径 path.data: /var/lib/elasticsearch #设置logs日志的路径,以下是默认logs路径 path.logs: /var/log/elasticsearch #设置内存不使用交换分区 bootstrap.memory_lock: false #设置允许所有ip可以连接该elasticsearch network.host: 0.0.0.0 #开启监听的端口为9200 http.port: 9200 #增加新的参数,为了让elasticsearch-head插件可以访问es http.cors.enabled: true http.cors.allow-origin: "*"
修改data、logs权限
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch
启动Elasticsearch
#启动 sudo systemctl start elasticsearch #查看状态 sudo systemctl status elasticsearch #设置开机启动 sudo systemctl enable elasticsearch
配置防火墙允许端口流量通过
sudo firewall-cmd --add-port=9200/tcp --permanent sudo firewall-cmd --reload
查看是否启动成功
# 服务器最小化安装时无法使用netstat,需要首先安装net-tools sudo yum -y install net-tools #查看是否启动成功 netstat -antp |grep 9200 #查看进程 ps -ef | grep elasticsearch
控制台输入curl http://127.0.0.1:9200测试访问是否正常(或通过浏览器访问http://127.0.0.1:9200)
curl http://127.0.0.1:9200
浏览器安装Elasticvue插件查看状态、索引等信息
安装Logstash获取Logstash安装包
sudo wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.0.rpm
安装Logstash
sudo rpm -ivh logstash-6.1.0.rpm
定位Logstash位置
sudo rpm -ql logstash
修改配置文件
sudo vim /etc/logstash/logstash.yml
以下是配置文件中原有配置信息
# 设置data存储路径,默认为/var/lib/logstash path.data: /var/lib/logstash # 设置管道配置文件路径为/etc/logstash/conf.d path.config: /etc/logstash/conf.d/*.conf # 设置logs存储路径,默认为/var/log/logstash path.logs: /var/log/logstash
修改data、logs权限
sudo chown -R logstash:logstash /var/lib/logstash sudo chown -R logstash:logstash /var/log/logstash
启动Logstash
#启动 sudo systemctl start logstash #查看Logstash状态 sudo systemctl status logstash #开机启动Logstash sudo systemctl enable logstash安装Kibana
获取Kibana安装包
sudo wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.0-x86_64.rpm
安装Kibana
sudo rpm -ivh kibana-6.1.0-x86_64.rpm
查看Kibana安装路径,一般是在/usr/share/kibana/目录
rpm -ql kibana
修改配置文件
sudo vim /etc/kibana/kibana.yml
#kibana页面映射在5601端口 server.port: 5601 #允许所有ip访问5601端口 server.host: "0.0.0.0" #elasticsearch所在的ip及监听的地址 elasticsearch.url: "http://localhost:9200" kibana.index: ".kibana"
启动Kibana
#启动 sudo systemctl start kibana #查看状态 sudo systemctl status kibana 设置开机启动 sudo systemctl enable kibana
开启防火墙端口
sudo firewall-cmd --add-port=5601/tcp --permanent sudo firewall-cmd --reload
访问5601端口查看是否正常显示数据,有回显数据则正常
curl http://127.0.0.1:5601测试日志发送接收情况
在本地服务器测试发送syslog日志数据
查看rsyslog服务状态
systemctl status rsyslog
配置rsyslog.conf发送日志信息
sudo vi /etc/rsyslog.conf
插入以下数据,表示发送UDP数据至127.0.0.1的514端口
*.* @127.0.0.1:514
重启rsyslog服务
sudo systemctl restart rsyslog
创建并配置Logstash配置文件conf
cd /etc/logstash/conf.d/
这里添加了一个syslog.conf的配置文件,根据我们在logstash.yml中的配置,Logstash的配置文件要以.conf后缀结尾
sudo touch syslog.conf
Logstash中一般常用input、filter、output,input用于输入数据、filter用于过滤数据、output用于输出数据
首先来测试数据的input和output是否正常,即数据是否能够正常接收和输出
sudo vi syslog.conf
input { udp { port => 514 } } output{ elasticsearch { index => "syslog-device-server-%{+YYYY.MM.dd}" hosts => ["127.0.0.1:9200"] } }
配置完成logstash的conf配置文件之后,测试其配置语法是否正确
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf -t
配置语法正确时会提示Configuration OK,存在WARNING可暂时忽略
执行命令,执行完成之后Ctrl+C
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf -r
若要指定data和logs路径则添加参数
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf -r --path.data=/etc/logstash/syslog --path.logs=/etc/logstash/conf.d/logs/syslog.log
查看本地服务器各日志文件中是否有数据,确认是否有产生源日志数据
sudo tail -5 /var/log/secure
其他日志文件同理,在有源日志数据的情况下查看日志接收目的端口514是否正常启动
ps -ef | grep 514
在服务器上抓包查看是否接收到日志数据
安装tcpdump
sudo yum -y install tcpdump
抓包514端口号
sudo tcpdump -i ens33 dst port 514 -w cap1.pcap
查看是否有抓取到流量
sudo tail -5 /etc/local/cap1.pcap
通过firefox浏览器elasticvue插件连接elasticsearch
安装完成elasticicvue插件右上角会有小插件
添加Elasticsearch实例,填写URL地址
测试连接是否正常,连接Elasticsearch
可以查看Elasticsearch健康状态
查看elasticsearch索引是否建立,即日志数据是否output到elasticsearch数据库中存放
查看该索引下的数据
配置防火墙允许端口流量通过
sudo firewall-cmd --add-port=514/udp --permanent sudo firewall-cmd --reload
若Elasticsearch中不存在日志数据,使用tcpdump进一步排错
抓包Elasticsearch的9200端口
sudo tcpdump -i ens33 port 9200 -w cap2.pcap
查看是否有抓取到流量
sudo tail -10 /etc/local/cap2.pcap
确认完成Elasticsearch中存在日志数据后,可以开始建立Kibana索引
Kibana建立索引分析数据浏览器访问Kibana管理界面http://127.0.0.1:5601
选择Management-Index Patterns
下面显示的列表syslog-device-server是我们在Elasticsearch中存在的数据,输入syslog*建立Kibana索引
选择@timestamp作为Time Filter field name
这样就建立完成Kibana索引
选择Discover搜索数据
在完成了Logstash中conf配置文件的input、output后,要再来添加filter条件以及Kibana的分析策略
在测试Logstash的filter时,会经常使用以下重复添加日志源数据查看其正确性及差异性的 *** 作
1.日志来源发送日志数据至Logstash所在服务器固定端口 #配置策略 2.日志源保存发送日志配置 #生效 3.日志目的Logstash修改配置文件接收日志源数据 #配置策略 4.日志目的Logstash配置检查及生效 #生效 5.Kibana建立索引查看和分析日志数据 #分析
当调试均完成后,要正式启用logstash收集日志时,可使用pipeline.yml
vi /etc/logstash/pipelines.conf
- pipeline.id: main #唯一标识,用于区分不同pipeline path.config: "/etc/logstash/conf.d/*.conf" #每个不同id位的conf生效文件 pipeline.workers: 2 #建议该值=CPU核心数/管道数 queue.type: persisted #持久队列
启动logstash
sudo /usr/share/logstash/bin/logstash --config.reload.automatic
常见错误解决方法:
1.sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf提示Logstash could not be started because there is already another instance
该错误是因为已经有相同实例在运行
sudo ps -ef | grep syslog.conf #查找进程
sudo kill -9 id #关闭进程 id是ps -ef出来的进程id
sudo find / -name ".lock" #查找锁文件
sudo rm -f /usr/share/logstash/data/.lock #删除锁文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)