ES之监控nginx日志

captains 2023-05-16 PM 70219℃ 2697条

[TOC]

1、概述

  • 通过通过filebeat收集nginx日志,写入到redis,然后通过logstash读取数据,输入到es集群存储,最后通过grafana读取es数据,展示出来。

2、服务器信息

序号ip配置系统服务
1192.168.1.2014核8g512gcentos7.xnginx/filebeat
2192.168.1.2024核8g512gcentos7.xredis/es/logstash/grafana

3、安装

3.1 nginx配置

  • nginx安装

  • nginx日志配置
# 新增以下日志配置,并选择新的日志配置格式
$ vim /etc/nginx/nginx.conf
log_format aka_logs
    '{"@timestamp":"$time_iso8601",'
    '"host":"$hostname",'
    '"server_ip":"$server_addr",'
    '"client_ip":"$remote_addr",'
    '"xff":"$http_x_forwarded_for",'
    '"domain":"$host",'
    '"url":"$uri",'
    '"referer":"$http_referer",'
    '"args":"$args",'
    '"upstreamtime":"$upstream_response_time",'
    '"responsetime":"$request_time",'
    '"request_method":"$request_method",'
    '"status":"$status",'
    '"size":"$body_bytes_sent",'
    '"request_body":"$request_body",'
    '"request_length":"$request_length",'
    '"protocol":"$server_protocol",'
    '"upstreamhost":"$upstream_addr",'
    '"file_dir":"$request_filename",'
    '"http_user_agent":"$http_user_agent"'
  '}';
    access_log  /var/log/nginx/access.log  aka_logs;
  • 重新加载nginx
$ nginx -t && nginx -s reload

4、安装es集群

  • 因服务器有限,采用docker方式安装es集群
  • 管理为docker-compose

4.1 安装docker

4.2 安装docker-compose

$ yum install epel-release
$ yum install docker-compose

4.3 编写es的docker-compose yaml文件

  • 参照

    https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docker.html
    
  • yaml文件如下:
version: '2.2'
services:
  elasticsearch:
    image: elasticsearch:7.8.0
    container_name: grafana_es7_01
    environment:
      - node.name=grafana_es7_01
      - cluster.name=grafana_es-cluster
      - discovery.seed_hosts=grafana_es7_02,grafana_es7_01
      - cluster.initial_master_nodes=grafana_es7_01,grafana_es7_02
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/es/data/es01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300
    networks:
      - elastic
  elasticsearch2:
    image: elasticsearch:7.8.0
    container_name: grafana_es7_02
    environment:
      - node.name=grafana_es7_02
      - cluster.name=grafana_es-cluster
      - discovery.seed_hosts=grafana_es7_01,grafana_es7_02
      - cluster.initial_master_nodes=grafana_es7_01,grafana_es7_02
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/es/data/es02:/usr/share/elasticsearch/data
    networks:
      - elastic
networks:
  elastic:
    driver: bridge
    external:
      name: elastic

4.4 启动

# 创建数据目录
$ mkdir /data/es/data/{es01,es02} -pv
# 授权
$ chmod -R 775 /data/es/data
# 创建es网卡
$ docker network create elastic
# 启动es
$ cd /data/es/docker-compose
$ docker-compose up -d

4.5 检查状态

# 浏览器访问
http://192.168.1.202:9200

4.6 检查es集群的插件

  • 1、google浏览器插件
  • 2、elasticsearch-head插件
$ docker run -d -p 9100:9100 mobz/elasticsearch-head:5

至此es集群安装完成

5、安装redis

  • 通过docker安装
  • 启动命令
$ docker run -itd --name grafana_redis -p 6379:6379 --hostname grafana_redis --net elastic redis:latest --requirepass "qwer@12345"

6、安装filebeat

  • 安装jdk

  • 安装
# 安装
$ yum install https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.6.1/filebeat-7.6.1-x86_64.rpm
  • 配置filebeat
# 注释掉es信息
$ vim /etc/filebeat/filebeat.yaml



  • 启动filebeat
$ systemctl enable --now filebeat
  • 检查redis是否有数据输入

    • 登陆redis,查看0号库,会看到有nginx_logs的数据,就说明成功了

7、安装logstash

  • 安装jdk

  • 安装logstash
$ wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.6.1/logstash-7.6.1.rpm --no-check-certificate
$ yum install logstash-7.6.1.rpm
  • logstash增加nginx日志配置文件
$ cd /etc/logstash/conf.d
$ vim nginx.conf

  • 配置logstash的jdk环境变量
# 首行增jdk的环境变量
$ vim /usr/share/logstash/bin/logstash.lib.sh
export JAVA_HOME=/usr/java/jdk1.8.0_331
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
$ systemctl enable --now logstash

8、配置grafana

  • 安装

  • 安装必要插件
$ grafana-cli plugins install grafana-piechart-panel
$ grafana-cli plugins install grafana-worldmap-panel
$ service grafana-server restart
  • 配置grafana数据源es

9、导入grafana模板

  • 模板编号 11190

10、参考文档

标签: Grafana

非特殊说明,本博所有文章均为博主原创。

评论啦~