ELK可视化系统日志以及日志显示

一、概述

ELK可视化系统包含elasticsearch(7.6.2)、elasticsearch-head(5)、logstash(7.6.2)、kibana(7.6.2)等模块。

logstash用于收集日志,传给elasticsearch,elasticsearch-head是elasticsearch的可视化工具,kibana可以显示日志数据。

本文中实现远程监控指定设备的nginx日志(系统日志以及ipsec日志)

二、准备

需要两台虚拟机器。
192.168.1.169:被监听的一方,安装logstash。
192.168.1.168:监听的一方,安装elasticsearch,elasticsearch-head,kibana。

三、168安装elasticsearch和kibana等

使用docker进行安装

1.安装docker

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
yum list docker-ce --showduplicates | sort -r
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose  /usr/bin/

docker 修改镜像源

编辑/etc/docker/daemon.json中写入如下内容(如果文件不存在就新建)

{"registry-mirrors":["http://docker.mirrors.ustc.edu.cn/"]}
sudo service docker restart

中科大:"http://docker.mirrors.ustc.edu.cn/"
阿里:"http://ip1rqq6e.mirror.aliyuncs.com"
网易:"http://hub-mirror.c.163.com/"

2.安装elasticsearch和kibana

(1)下载ealastic search和kibana

docker pull elasticsearch:7.6.2
docker pull kibana:7.6.2

elasticsearch会开启9100端口
kibana会开启9601端口

(2)配置

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
chmod -R 777 /mydata/elasticsearch/

(3)启动Elastic search

设置开机启动elasticsearch

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2 

设置开机启动elasticsearch

docker update elasticsearch --restart=always

(4)启动kibana:

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.1.168:9200 -p 5601:5601 -d kibana:7.6.2

设置开机启动kibana

docker update kibana  --restart=always

(5)测试

查看elasticsearch版本信息: http://192.168.1.168:9200/

{
  "name" : "99ca67f3cf65",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "T3r6dBWqTEaXESOLtQV2Nw",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

显示elasticsearch 节点信息http://192.168.1.168:9200/_cat/nodes ,

127.0.0.1 17 93 40 0.85 1.40 1.10 dilm * 99ca67f3cf65

访问Kibana: http://192.168.1.168:5601/app/kibana
在这里插入图片描述

3.安装elasticsearch-head

安装elasticsearch head插件监控管理

docker pull mobz/elasticsearch-head:5
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
docker update elasticsearch-head的id --restart=always   #设置开机自启

在浏览器中打开elasticsearch-head页面,填入ElasticSearch地址

elasticsearch-head会开启9200端口

在这里插入图片描述
集群未连接:解决办法

vi /mydata/elasticsearch/config/elasticsearch.yml(可能是跨域问题)
http.cors.enabled: true
http.cors.allow-origin: "*"

尝试再依次启动elasticsearch和elasticsearch-head

docker restart elasticsearch
docker restart elasticsearch-head的ID(使用docker ps查看)

再次进入9100端口输入9200的地址进行连接查看
在这里插入图片描述
解决elasticsearch-head数据浏览无数据问题:
在这里插入图片描述

docker ps查看elasticsearch-head的id为b25d095f3d33
docker exec -it b25d095f3d33 /bin/bash进入head容器
cd _site
vi vendor.js报错说bash: vi: command not found即容器中不支持vi

在这里插入图片描述
可以安装vim,修改此文件

apt-get update
apt-get install vim

也可以把配置文件从容器里面拷贝到主机目录,( elasticsearch-head是容器名,也可以用容器ID,先exit退出容器)使用命令:

 docker cp elasticsearch-head的id:/usr/src/app/_site/vendor.js ./
vi vendor.js(切记不能屏蔽原句,只能在原句基础上修改成新的)

6886行 contentType: “application/x-www-form-urlencoded”,(这行代码是有逗号的)

改成contentType: “application/json;charset=UTF-8”,

7573行 var inspectData = s.contentType ===“application/x-www-form-urlencoded” &&
改成var inspectData =s.contentType === “application/json;charset=UTF-8” &&
将改完后的文件拷贝回容器: docker cp vendor.js elasticsearch-head:/usr/src/app/_site
不用重启,刷新网页即可。
在这里插入图片描述

四、169安装logstash

1.前提准备

jdk11版本的安装包、logstash7.6.2的rpm包

2.部署

2.1.安装jdk

Jdk包放到/usr/local目录下解压
vi /etc/profile末尾添加:

export JAVA_HOME=/usr/local/jdk-11.0.16.1 #jdk的绝对路径
export JRE_HOME=${
   JAVA_HOME}/jre
export CLASSPATH=.:${
   JAVA_HOME}/lib:${
   JRE_HOME}/lib
export PATH=${
   JAVA_HOME}/bin:$PATH

使之生效

source /etc/profile
ln -s /usr/local/jdk-11.0.16.1/bin/java /usr/bin/java
2.2安装logstash(版本为7.6.2,保持与elasticsearch和kibana版本一致)

安装

rpm -ivh logstash-7.6.2.rpm

配置监听数据

cd /etc/logstash/
vi logstash.yml
logstash.yml修改http.host为当前ip,比如192.168.1.169
vi logstash-sample.conf

内容为(复制粘贴容易造成缩进错误,请注意):

hosts的ip为要把日志传给对方的对方ip
配置文件通过监听多个日志文件收集自己169的nginx日志
input标准输入,file指监听的路径,可以赋予type类型
output标准输出
filter过滤掉不用的数据

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
   
  file {
   
    path => "/var/log/messages"
    type => "system-log"
  }
  file {
   
    path => "/ipsec/logs/sys_*.log"
    type =>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值