学做投资网站好,如何建设网站兴田德润可信赖,淮北论坛招聘驾驶员,网上哪里可以注册公司ELK日志分析系统
ELK指的是ElasticsearchLogstashKibana这种架构的缩写。
ELK是一种日志分析平台#xff0c;在很早之前我们经常使用Shell三剑客#xff08;一般泛指grep、sed、awk#xff09;来进行日志分析#xff0c;这种方式虽然也可以应对多种场景#xff0c;但是当…ELK日志分析系统
ELK指的是ElasticsearchLogstashKibana这种架构的缩写。
ELK是一种日志分析平台在很早之前我们经常使用Shell三剑客一般泛指grep、sed、awk来进行日志分析这种方式虽然也可以应对多种场景但是当日志量大、分析频率高并且在结合用户不会使用Shell的情况下这种方法就很不受欢迎。这时候就运营而出了一种新型的日志分析系统那就是ELK它的配置方便、使用简单同时它的分析结果可以使用户能够更加直观的看出分析出来的结果。
一个完整的集中式日志系统需要包含以下几个主要特点 收集能够采集多种来源的日志数据 传输能够稳定的把日志数据传输到中央系统 存储如何存储日志数据 分析可以支持 UI 分析 警告能够提供错误报告监控机制
而ELK则提供一整套的解决方案并且都是开源软件之间相互配合完美衔接高效的满足了很多场合的应用。
1Elasticsearch服务
Elasticsearch是一款开源的、分布式、高扩展并且高实时的搜索与数据分析引擎它提供了一个分布式多用户能力的全文搜索引擎基于RESTful Web接口。Elasticsearch是使用Java语言开发的他能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性能使数据在生产环境变得更有价值。
Elasticsearch使用Lucene全文检索引擎工具包并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating如果新文档与注册查询匹配这对于通知非常有用。另一个特性称为“网关”处理索引的长期持久性例如在服务器崩溃的情况下可以从网关恢复索引。Elasticsearch支持实时GET请求适合作为NoSQL数据存储但缺少分布式事务。
2Logstash服务
Logstash经常用于日志系统中做日志采集设备最常用于ELK中作为日志搜集器使用。
简单的来说Logstash是具有实时流水线能力的开源的数据搜索引擎。它可以去动态的统一不同来源的数据并将数据标准化到用户选择的目标输出。它提供了大量的插件可以帮助我们解析、丰富、转换和缓冲任何类型的数据。Logstash大概分为三个部分分别是Inputs输入阶段、Filters过滤器阶段、Outputs输出阶段。
Inputs输入阶段会生成时间采集各种样式大小和相关来源数据负责从各个服务器中收集数据。
Filters过滤器阶段它可以将过滤器和条件语句结合使用对事件进行处理包括grok、mutate等。
Outputs输出阶段将事件数据发送到特定的目标完成了输出处理该事件就完成了执行。如elasticsearch、file等。
以上三个部分除了Filter是可选之外其他两个部分都是必须的。
3Kibana服务
Kibana也是一个开源的分析与可视化平台常和Elasticsearch搭配使用。用户可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等直观的展示数据从而达到高级的数据分析与可视化的目的。
ELK常见架构
ElasticsearchLogstashKibana这种架构是最常见的一种也是最简单的一种架构这种架构通过Logstash收集日志运用Elasticsearch分析日志最后通过Kibana中展示日志信息。
ElasticsearchLogstashFilebeatKibana在这种架构中增加了一个Filebeat模块。这个模块在上面的内容中没有对它详细介绍它是一款轻量的日志收集代理用来部署在客户端当中这个服务较Logstash来说能够节省资源一般在生产环境中大多采用这种架构但是这种架构有一个弊端那就是当Logstash出现故障后则会造成日志的丢失。
ElasticsearchLogstashfilebeatredis及其他中间件Kibana这种架构等于是上面第二种的完善通过增加中间件来去避免数据丢失当Logstash出现故障后日志依旧留存在中间件内当Logstash再次启动则会读取中间件中积压的日志。
基础环境配置
三台主机修改主机名
elk-1节点
[rootlqhelk-1 ~]# hostnamectl set-hostname elk-1
[rootlqhelk-1 ~]# bash
[rootelk-1 ~]# hostnamectlStatic hostname: elk-1Icon name: computer-vmChassis: vmMachine ID: cc2c86fe566741e6a2ff6d399c5d5daaBoot ID: 4786f596058f424db58406c8c1b9c635Virtualization: kvm
Operating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-1160.el7.x86_64Architecture: x86-64els-2节点
[rootlqhelk-2 ~]# hostnamectl set-hostname elk-2
[rootelk-2 ~]# hostnamectl Static hostname: elk-2Icon name: computer-vmChassis: vmMachine ID: cc2c86fe566741e6a2ff6d399c5d5daaBoot ID: 17e276b0811d4a01907ab8424a16a072Virtualization: kvm
Operating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-1160.el7.x86_64Architecture: x86-64elk-3节点
[rootlqhelk-3 ~]# hostnamectl set-hostname elk-3
[rootlqhelk-3 ~]# bash
[rootelk-3 ~]# hostnamectl Static hostname: elk-3Icon name: computer-vmChassis: vmMachine ID: cc2c86fe566741e6a2ff6d399c5d5daaBoot ID: 07d416916e744daa8a96163a93fcf34aVirtualization: kvm
Operating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-1160.el7.x86_64Architecture: x86-64三台主机配置主机名映射以第一台节点为例三个节点都要配置
[rootelk-1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.128.11.10 elk-1
172.128.11.17 elk-2
172.128.11.11 elk-3三台主机安装JDK环境以第一台节点为例
使用CentOS7.9镜像配置YUM源部署ELK环境需要jdk1.8以上的JDK版本软件环境我们本次实验使用的是opnejdk1.8可直接使用本地源进行安装。
[rootelk-1 ~]# mv /etc/yum.repos.d/* /media/
[rootelk-1 ~]# mkdir /opt/centos-2009
[rootelk-1 ~]# vi /etc/yum.repos.d/local.repo
[centos]
namecentos
baseurlfile:///opt/centos-2009
gpgcheck0
enabled1
[rootelk-1 ~]# mount CentOS-7-x86_64-DVD-2009.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[rootelk-1 ~]# cp -rvf /mnt/* /opt/centos-2009
[rootelk-1 ~]# umount /mnt/
[rootelk-1 ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
......
Installed:
java-1.8.0-openjdk.x86_64 1:1.8.0.262.b10-1.el7 java-1.8.0-openjdk-devel.x86_64 1:1.8.0.262.b10-1.el7 Dependency Installed:
alsa-lib.x86_64 0:1.1.8-1.el7 atk.x86_64 0:2.28.1-2.el7
avahi-libs.x86_64 0:0.6.31-20.el7 cairo.x86_64 0:1.15.12-4.elComplete!
[rootelk-1 ~]# java -version
openjdk version 1.8.0_262
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)部署Elasticserach
三台主机安装Elasticserach以第一台主机为例
将提供的elasticsearch-6.0.0.rpm包分别上传至三台主机的/root目录下并使用命令进行安装。 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm [rootelk-1 ~]# ll
total 27332
-rw-------. 1 root root 6880 Oct 30 2020 anaconda-ks.cfg
-rw-r--r--. 1 root root 27970243 Nov 27 02:52 elasticsearch-6.
0.0.rpm
-rw-------. 1 root root 6587 Oct 30 2020 original-ks.cfg
[rootelk-1 ~]# rpm -ivh elasticsearch-6.0.0.rpm
warning: elasticsearch-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing... ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Updating / installing...1:elasticsearch-0:6.0.0-1 ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service三台主机分别配置Elasticserach
配置elasticsearch的配置文件配置文件在/etc/elasticsearch/elasticsearch.yml。
elk-1节点
[rootelk-1 ~]# vi /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: ELK //取消注释配置elasticsearch集群名称
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: elk-1 //配置节点名默认随机指定一个name列表中名字该列表在Elasticserach的jar包中config文件夹里name.txt文件中
node.master: true //添加指定该节点是否有资格被选举成为node
node.data: false //指定该节点是否有资格被选举成为nodeElasticserach是默认集群中的第一台机器为master如果这台机挂了就会重新选举master其他两节点为false。
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch //配置索引数据存储位置(保持默认,不要开启注释)。
#
# Path to log files:
#
path.logs: /var/log/elasticsearch //设置日志文件的存储路径默认是Elasticserach根目录下的logs文件夹。
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 172.128.11.10 //设置绑定的ip地址可以是ipv4或ipv6的默认为0.0.0.0。
#
# Set a custom port for HTTP:
#
http.port: 9200 //启动的Elasticserach对外访问的http端口默认9200
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is [127.0.0.1, [::1]]
#
#discovery.zen.ping.unicast.hosts: [host1, host2]
discovery.zen.ping.unicast.hosts: [elk-1,elk-2,elk-3] //设置集群中master节点的初始列表可以通过这些节点来自动发现新加入集群的节点。elk-2节点参数说明不再详细写出
[rootelk-2 ~]# vi /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: ELK
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: elk-2
node.master: false
node.data: true
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch。
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 172.128.11.17
#
# Set a custom port for HTTP:
#
http.port: 9200
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is [127.0.0.1, [::1]]
#
#discovery.zen.ping.unicast.hosts: [host1, host2]
discovery.zen.ping.unicast.hosts: [elk-1,elk-2,elk-3]elk-3节点参数说明不再详细写出
[rootelk-3 ~]# vi /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: ELK
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: elk-3
node.master: false
node.data: true
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch。
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 172.128.11.11
#
# Set a custom port for HTTP:
#
http.port: 9200
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is [127.0.0.1, [::1]]
#
#discovery.zen.ping.unicast.hosts: [host1, host2]
discovery.zen.ping.unicast.hosts: [elk-1,elk-2,elk-3]三台主机启动服务以第一台节点为例
使用命令启动服务并设置开机自启最后使用命令查看进行及端口号。
[rootelk-1 ~]# systemctl start elasticsearch
[rootelk-1 ~]# systemctl enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
[rootelk-1 ~]# ps -ef |grep elasticsearch
elastic 15943 1 90 07:46 ? 00:00:11 /bin/java -Xms1g -Xmx1g -XX:UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction75 -XX:UseCMSInitiatingOccupancyOnly -XX:AlwaysPreTouch -server -Xss1m -Djava.awt.headlesstrue -Dfile.encodingUTF-8 -Djna.nosystrue -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafetrue -Dio.netty.noKeySetOptimizationtrue -Dio.netty.recycler.maxCapacityPerThread0 -Dlog4j.shutdownHookEnabledfalse -Dlog4j2.disable.jmxtrue -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/var/lib/elasticsearch -Des.path.home/usr/share/elasticsearch -Des.path.conf/etc/elasticsearch -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid --quiet
root 16023 15676 0 07:47 pts/0 00:00:00 grep --colorauto elasticsearch
[rootelk-1 ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1268/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1139/master
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 565/rpcbind
tcp6 0 0 172.128.11.10:9300 :::* LISTEN 15943/java
tcp6 0 0 :::22 :::* LISTEN 1268/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1139/master
tcp6 0 0 :::111 :::* LISTEN 565/rpcbind
tcp6 0 0 172.128.11.10:9200 :::* LISTEN 15943/java三台主机如果有进程存在或者能够发现9200和9300端口暴露则服务启动成功。
检查集群状态
elk-1节点
[rootelk-1 ~]# curl 172.128.11.10:9200/_cluster/health?pretty
{cluster_name : ELK, //集群名称status : green, //集群健康状态green为健康yellow或者red则是集群有问题timed_out : false //是否超时,number_of_nodes : 3, //集群中节点数number_of_data_nodes : 2, //集群中data节点数量active_primary_shards : 0,active_shards : 0,relocating_shards : 0,initializing_shards : 0,unassigned_shards : 0,delayed_unassigned_shards : 0,number_of_pending_tasks : 0,number_of_in_flight_fetch : 0,task_max_waiting_in_queue_millis : 0,active_shards_percent_as_number : 100.0
}部署Kibana
第一台主机安装kibana
将提供的kibana-6.0.0-x86_64.rpm包上传至第一台主机的/root目录下其他主机无需上传并使用命令进行安装。 wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpm [rootelk-1 ~]# rpm -ivh kibana-6.0.0-x86_64.rpm
warning: kibana-6.0.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:kibana-6.0.0-1 ################################# [100%]配置Kibana
配置kibana的配置文件配置文件在/etc/kibana/kibana.yml在配置文件增加或修改以下内容
[rootelk-1 ~]# cat /etc/kibana/kibana.yml |grep -v ^#
server.port: 5601
server.host: 172.128.11.10
elasticsearch.url: http://172.128.11.10:9200启动Kibana
[rootelk-1 ~]# systemctl start kibana
[rootelk-1 ~]# systemctl enable kibana
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.
[rootelk-1 ~]# ps -ef |grep kibana
kibana 16141 1 9 08:26 ? 00:00:03 /usr/share/kibana/bin/../node/bin/node --no-warnings /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml
root 16192 15676 0 08:27 pts/0 00:00:00 grep --colorauto kibana
[rootelk-1 ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1268/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1139/master
tcp 0 0 172.128.11.10:5601 0.0.0.0:* LISTEN 16141/node
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 565/rpcbind
tcp6 0 0 172.128.11.10:9300 :::* LISTEN 15943/java
tcp6 0 0 :::22 :::* LISTEN 1268/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1139/master
tcp6 0 0 :::111 :::* LISTEN 565/rpcbind
tcp6 0 0 172.128.11.10:9200 :::* LISTEN 15943/java启动后如果有进程或者能够发现5601端口暴露则服务启动成功并可以通过浏览器访问地址http://172.128.11.10:5601/能够看到如图1所示页面。 部署Logstash
安装Logstash
将提供的logstash-6.0.0.rpm包上传到第二台主机的/root目录下其他主机无需上传并使用命令进行安装。 wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.rpm [rootelk-2 ~]# ll
total 137968
-rw-------. 1 root root 6880 Oct 30 2020 anaconda-ks.cfg
-rw-r--r--. 1 root root 27970243 Feb 10 07:06 elasticsearch-6.0.0.rpm
-rw-r--r--. 1 root root 113288712 Feb 10 08:49 logstash-6.0.0.rpm
-rw-------. 1 root root 6587 Oct 30 2020 original-ks.cfg
[rootelk-2 ~]# rpm -ivh logstash-6.0.0.rpm
warning: logstash-6.0.0.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:logstash-1:6.0.0-1 ################################# [100%]
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash配置Logstash
配置/etc/logstash/logstash.yml修改增加第190行如下
[rootelk-2 ~]# vi /etc/logstash/logstash.yml
http.host: 172.128.11.17 //第二台主机名称配置logstash收集syslog日志
[rootelk-2 ~]# vi /etc/logstash/conf.d/syslog.conf
input {file {path /var/log/messagestype systemlogstart_position beginningstat_interval 3}
}
output {if [type] systemlog {elasticsearch {hosts [172.128.11.10:9200] //这里的地址为第一台主机地址index system-log-%{YYYY.MM.dd}}}
}检测配置文件是否有误
[rootelk-2 ~]# chmod 644 /var/log/messages //给这个文件赋权限如果不给权限则无法读取日志
[rootelk-2 ~]# ln -s /usr/share/logstash/bin/logstash /usr/bin
[rootelk-2 ~]# logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
Sending Logstashs logs to /var/log/logstash which is now configured via log4j2.properties
Configuration OK //结果显示OK则证明没问题参数说明
–path.settings 用于指定logstash的配置文件所在的目录-f 指定需要被检测的配置文件的路径–config.test_and_exit 指定检测完之后就退出不然就会直接启动了
启动Logstash
[rootelk-2 ~]# systemctl start logstash
[rootelk-2 ~]# ps -ef |grep logstash
logstash 17891 1 99 09:06 ? 00:00:18 /bin/java -XX:UseParNewGC -XX:UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction75 -XX:UseCMSInitiatingOccupancyOnly -XX:DisableExplicitGC -Djava.awt.headlesstrue -Dfile.encodingUTF-8 -XX:HeapDumpOnOutOfMemoryError -Xmx1g -Xms256m -Xss2048k -Djffi.boot.library.path/usr/share/logstash/vendor/jruby/lib/jni -Xbootclasspath/a:/usr/share/logstash/vendor/jruby/lib/jruby.jar -classpath : -Djruby.home/usr/share/logstash/vendor/jruby -Djruby.lib/usr/share/logstash/vendor/jruby/lib -Djruby.scriptjruby -Djruby.shell/bin/sh org.jruby.Main /usr/share/logstash/lib/bootstrap/environment.rb logstash/runner.rb --path.settings /etc/logstash
root 17927 15677 0 09:06 pts/0 00:00:00 grep --colorauto logstash
[rootelk-2 ~]# netstat -lnpt
Active Internet connections (only se rvers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1273/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1084/master
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 580/rpcbind
tcp6 0 0 172.128.11.17:9200 :::* LISTEN 15918/java
tcp6 0 0 172.128.11.17:9300 :::* LISTEN 15918/java
tcp6 0 0 :::22 :::* LISTEN 1273/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1084/master
tcp6 0 0 :::111 :::* LISTEN 580/rpcbind如果启动服务后有进程但是没有9600端口是因为权限问题之前我们以root的身份在终端启动过logstash所以产生的相关文件的属组属主都是root解决方法如下
[rootelk-2 ~]# ll /var/lib/logstash/
total 0
drwxr-xr-x. 2 root root 6 Feb 10 09:00 dead_letter_queue
drwxr-xr-x. 2 root root 6 Feb 10 09:00 queue
[rootelk-2 ~]# chown -R logstash /var/lib/logstash/
[rootelk-2 ~]# ll /var/lib/logstash/
total 0
drwxr-xr-x. 2 logstash root 6 Feb 10 09:00 dead_letter_queue
drwxr-xr-x. 2 logstash root 6 Feb 10 09:00 queue
[rootelk-2 ~]# systemctl restart logstash
[rootelk-2 ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1273/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1084/master
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 580/rpcbind
tcp6 0 0 172.128.11.17:9200 :::* LISTEN 15918/java
tcp6 0 0 172.128.11.17:9300 :::* LISTEN 15918/java
tcp6 0 0 :::22 :::* LISTEN 1273/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1084/master
tcp6 0 0 172.128.11.17:9600 :::* LISTEN 18724/java
tcp6 0 0 :::111 :::* LISTEN 580/rpcbind启动完毕后让syslog产生日志用第三台主机登录elk-2机器登录后退出
[rootelk-3 ~]# ssh elk-2
The authenticity of host elk-2 (172.128.11.17) cant be established.
ECDSA key fingerprint is SHA256:nJT1L6Cz5MvNxC/ib2RkWN6Q/a3E3yi/67VwVOjt5k.
ECDSA key fingerprint is MD5:10:0c:b0:88:e6:03:76:cb:53:0b:ea:97:5e:b7:8f:10.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added elk-2,172.128.11.17 (ECDSA) to the list of known hosts.
rootelk-2s password:
Last login: Thu Feb 10 01:34:28 2022 from 192.168.0.112
[rootelk-2 ~]#
[rootelk-2 ~]# logout
Connection to elk-2 closed.Kibana检索日志
Kibana上查看日志
之前部署kibana完成后还没有检索日志。现在logstash部署完成我们回到第一台主机上查看日志索引执行命令如下
[rootelk-1 ~]# curl 172.128.11.17:9200/_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open system-log-2022.02.10 E6kpwHcdRmy8iO42S3zlTg 5 1 20933 0 7.9mb 3.9mb
green open .kibana OdfKD6JFTx-pPwfJNZtpLA 1 1 1 0 7.3kb 3.6kb获取\删除指定索引详细信息
[rootelk-1 ~]# curl -XGET/DELETE 172.128.11.17:9200/system-log-2022.02.10?pretty //此处的system-log-2022.02.10是上面步骤查看出的日志索引名称system-log-2022.02.10 : {aliases : { },mappings : {systemlog : {properties : {timestamp : {type : date},version : {type : text,fields : {keyword : {type : keyword,ignore_above : 256}}},host : {type : text,fields : {keyword : {type : keyword,ignore_above : 256}}},message : {type : text,fields : {keyword : {type : keyword,ignore_above : 256}}},path : {type : text,fields : {keyword : {type : keyword,ignore_above : 256}}},type : {type : text,fields : {keyword : {type : keyword,ignore_above : 256}}}}}},settings : {index : {creation_date : 1644484128903,number_of_shards : 5,number_of_replicas : 1,uuid : E6kpwHcdRmy8iO42S3zlTg,version : {created : 6000099},provided_name : system-log-2022.02.10}}
}
}Web页面配置
浏览器访问172.128.11.10:5601到kibana上配置索引的目录为:system-log-2022.02.10修改完成后点击“Create”按钮 配置完成后点击左上角的“Discover”进入“Discover”页面后如果出现以下提示则是代表无法查找到日志信息 这种情况一般是时间的问题可以点击右上角切换成查看当天的日志信息 更改完成后可以看到Kibana服务已经成功检索主机的日志信息并反馈在页面