CentOS部署ELK

CentOS部署ELK,第1张

CentOS部署ELK CentOS部署ELK

*** 作系统版本: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

安装JAVA环境

因为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  #删除锁文件

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存