ELK日志分析系统搭建

ELK日志分析系统搭建

1.规范节点

节点规划见表1。

表1节点规划

IP主机名节点
100.100.0.21elk-1Elasticsearch/Kibana
100.100.0.226elk-2Elasticsearch/Logstash
100.100.0.204elk-3Elasticsearch

2.基础准备

根据云平台所分配三台 CentOS 7.9 系统云主机和一台带有图形化页面云主机。使用所分配的云主机作为本次案例的实验节点。

案例实施

3.基础环境配置

hostname....忽略

[root@elk-1 ~]# cat /etc/yum.repos.d/http.repo          #elk-2,elk-3同样配置
[centos]
name=centos
gpgcheck=0
enable=yes
baseurl=http://192.168.95.171/yum-centos7/
[root@elk-1 ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel #三台主机安装 JDK 环境(以第一台节点为例)

4.部署 Elasticserach

[root@elk-1 ~]# curl -O http://192.168.95.171/openstack/elasticsearch-6.0.0.rpm
[root@elk-1 ~]# rpm -ivh elasticsearch-6.0.0.rpm
#配置elasticsearch 的配置文件,配置文件在/etc/elasticsearch/elasticsearch.yml
cat /etc/elasticsearch/elasticsearch.yml
[root@elk-1 ~]# vi /etc/elasticsearch/elasticsearch.yml
cluster.name: ELK #取消注释,配置 elasticsearch 集群名称
node.name: elk-1 #配置节点名,默认随机指定一个 name 列表中名字,该列表在 Elasticserach 的 jar 包中 config 文件夹里 name.txt 文件中
node.master: true #添加指定该节点是否有资格被选举成为 node
node.data: false #添加指定该节点是否有资格被选举成为 node,Elasticserach 是默认集群中的第一台机器为 master,如果这台机挂了就会重新选举 master,其他两节点为 false。
network.host: 172.128.11.10 #设置绑定的 ip 地址,可以是 ipv4 或 ipv6 的,默认为 0.0.0.0。
http.port: 9200 #启动的 Elasticserach 对外访问的 http 端口,默认 9200
discovery.zen.ping.unicast.hosts: ["elk-1","elk-2","elk-3"] #设置集群中 master 节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
[root@elk-1 ~]# systemctl enable elasticsearch --now
[root@elk-2 ~]# systemctl enable elasticsearch --now
[root@elk-3 ~]# systemctl enable elasticsearch --now
[root@elk-1 ~]# ss  -lntup | grep java
tcp    LISTEN     0      128       [::ffff:100.100.0.21]:9200               [::]:*                   users:(("java",pid=16408,fd=168))
tcp    LISTEN     0      128       [::ffff:100.100.0.21]:9300               [::]:*                   users:(("java",pid=16408,fd=142))
[root@elk-2 ~]# ss  -lntup | grep java
tcp    LISTEN     0      128      [::ffff:100.100.0.204]:9200               [::]:*                   users:(("java",pid=16485,fd=191))
tcp    LISTEN     0      128      [::ffff:100.100.0.204]:9300               [::]:*                   users:(("java",pid=16485,fd=142))
[root@elk-3 ~]# ss -lntup | grep java
tcp    LISTEN     0      128      [::ffff:100.100.0.226]:9200               [::]:*                   users:(("java",pid=16458,fd=215))
tcp    LISTEN     0      128      [::ffff:100.100.0.226]:9300               [::]:*                   users:(("java",pid=16458,fd=142))
##检查集群状态
[root@elk-1 ~]# curl '100.100.0.21: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" : 6,           
  "active_shards" : 12,
  "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
}

5.部署kibana

第一台elk-1安装

[root@elk-1 ~]# curl -O http://192.168.95.171/openstack/kibana-6.0.0-x86_64.rpm
[root@elk-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%]
[root@elk-1 ~]# cat /etc/kibana/kibana.yml |grep -v ^#
server.port: 5601 
server.host: 100.100.0.21
elasticsearch.url: "http://100.100.0.21:9200"
[root@elk-1 ~]# systemctl enable kibana --now
[root@elk-1 ~]# ss -lntup | grep node
tcp    LISTEN     0      128    100.100.0.21:5601                  *:*                   users:(("node",pid=16597,fd=10))

启动后如果有进程或者能够发现 5601 端口暴露则服务启动成功,并可以通过浏览器访问地址 http://172.17.1.104:5601/,能够看到如图 1 所示的页面。

6.部署logstash

第二台elk-2安装

[root@elk-2 ~]# curl -O http://192.168.95.171/openstack/logstash-6.0.0.rpm
[root@elk-3 ~]# 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
[root@elk-2 ~]# vi /etc/logstash/logstash.yml
http.host: "100.100.0.204" //第二台主机名称
[root@elk-2 ~]# cat /etc/logstash/conf.d/syslog.conf
input {
  file {
    path => "/var/log/messages"
    type => "systemlog"
    start_position => "beginning"
    stat_interval => "3"
 }
}
output {
  if [type] == "systemlog" {
    elasticsearch {
      hosts => "100.100.0.21:9200"              ##elk-1主机ip
      index => "system-log-%{+YYYY.MM.dd}"
   }
  }
}
[root@elk-2 ~]# chmod 644 /var/log/messages
[root@elk-2 ~]# chown -R logstash /var/lib/logstash/
[root@elk-2 ~]# ln -s /usr/share/logstash/bin/logstash /usr/bin
[root@elk-2 ~]# logstash --path.settings /etc/logstash -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.prop
erties
Configuration OK //结果显示 OK 则证明没问题
参数说明:
● --path.settings 用于指定 logstash 的配置文件所在的目录。
● -f 指定需要被检测的配置文件的路径。
● --config.test_and_exit 指定检测完之后就退出,不然就会直接启动了。
[root@elk-2 ~]# systemctl enable logstash --now
[root@elk-2 ~]# ss  -lntup | grep 9600
tcp    LISTEN     0      50       [::ffff:100.100.0.204]:9600               [::]:*                   users:(("java",pid=16889,fd=20))
​

7.Kibana检索日志

[root@elk-1 ~]# curl '100.100.0.204:9200/_cat/indices?v'
health status index                 uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana               SMIUXAT_SDKEgkjHCnJUFw   1   1          2            0     14.1kb            7kb
green  open   system-log-2023.04.29 DV32WoeYQtaIOVYFQfOhYA   5   1       1371            0      1.1mb        576.3kb
[root@elk-1 ~]# curl '100.100.0.204:9200/system-log-2023.04.29?pretty'
{
  "system-log-2023.04.29" : {
    "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

##

Web 页面配置

浏览器访问 172.17.1.104:5601,到 kibana 上配置,索引的目录为:system-log-2023.04.29,修改完成后点击“Create”按钮,如图 2 所示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值