做这篇文章我已经自己搭建了3次,前2次都会遇到不一样的问题,第三次基本遇到问题就很快解决了。
这篇文章,介绍从0开始搭建Nginx,filebeat。es和kibana本次使用的是现有环境,不做介绍。

我是克隆的虚拟机,虚拟机搭建不做介绍

克隆虚拟机可能存在ip未能分配:我是通过重启所有机器解决的。

重启后

网络测试

1、安装wget、tar及nginx必备库
yum -y install wget
yum install -y tar
yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel
yum install -y pcre pcre-devel
2、 下载nginx并安装
wget http://nginx.org/download/nginx-1.21.4.tar.gztar -xzvf nginx-1.21.4.tar.gz
# ./configure是检查文件的命令,检查是否正确
./configure
#执行安装操作
make && make install
3、校验启动
#校验文件
/usr/local/nginx/sbin/nginx -t
#启动
/usr/local/nginx/sbin/nginx
4、查看防火墙
#查看开放了哪些端口
firewall-cmd --list-all
#查看开放的端口
firewall-cmd --list-ports
#如果没有显示80,则需要开放80端口
firewall-cmd --add-port=80/tcp --permanent #开放端口
firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --reload #重新加载
5、测试外网

6、查看日志
Nginx日志在logs下面。
/usr/local/nginx/logs

1、下载
https://www.elastic.co/cn/downloads/past-releases/filebeat-8-0-0
2、上传、解压
比如上传到:/usr/src/filebeat
通过一下命令解压
tar -zxvf 压缩文件名
3、配置Nginx.yml 和 filebeat.yml
Nginx.yml在 cd modules.d/ 文件夹里面
当然里面是是Nginx.yml.disabled
这是我启用后的截图:

【配置】Nginx.yml
这里你可以通过修改,然后在启用命令。
启动命令:
启动命令:./filebeat modules enable nginx
禁用命令:./filebeat modules disable nginx
也可以直接删除文件,自己本地上传。
# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-nginx.html
- module: nginx
# Access logs
access:
enabled: true
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
var.paths: ["/usr/local/nginx/logs/access.log*"]
# Error logs
error:
enabled: true
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:
# Ingress-nginx controller logs. This is disabled by default. It could be used in Kubernetes environments to parse ingress-nginx logs
ingress_controller:
enabled: false
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
var.paths: ["/usr/local/nginx/logs/error.log*"]
配置filebeat.yml
filebeat.inputs:
# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
# filestream is an input for collecting log messages from files.
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /usr/local/nginx/logs/*.log
fields:
source: demo
# ============================== Filebeat modules ==============================
filebeat.config.modules:
# Glob pattern for configuration loading
path: ${path.config}/modules.d/*.yml
# Set to true to enable config reloading
reload.enabled: false
# Period on which files under path should be checked for changes
#reload.period: 10s
# ======================= Elasticsearch template setting =======================
setup.template.settings:
index.number_of_shards: 1
#index.codec: best_compression
#_source.enabled: false
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["192.168.1.666:9200"]
# Protocol - either `http` (default) or `https`.
#protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "密码"
indices:
- index: "demo-%{+yyyy.MM.dd}"
when.equals:
fields.source: "demo"
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
启动后,如下图;会展示进程id

1、打开Kibana-DevTools

输入如下命令,index自动带出
GET demo-2022.12.04/_search
{
"query": {
"match_all": {}
}
}

查询结果

来到界面查询发现你没有,根据关键字【index pattern】在 Management 找到配置



右上角新建 Creat index pattern

选择时间戳字段

完成创建!右上角有删除按钮,后面不需要可以删除。

这样在界面就可以搜索啦

最终效果1

最终效果2

增加文件到如下目录
/usr/lib/systemd/system/filebeat.service
systemctl restart filebeat
systemctl stop filebeat
systemctl status filebeat
systemctl start filebeat
ps -ef | grep file
其实重要的命令只有一句:ExecStart ***
还有一个属性:Restart=always;根据字面意思理解,重启属性:总是;也就是你必须通过上述命令 systemctl stop filebeat 去关闭。不能kill。kill掉了还会重启~~~~
[Unit]
Description=Filebeat sends log files to Logstash or directly to Elasticsearch.
Documentation=https://www.elastic.co/products/beats/filebeat
Wants=network-online.target
After=network-online.target
[Service]
Environment="BEAT_LOG_OPTS="
Environment="BEAT_CONFIG_OPTS=-c /usr/src/filebeat/filebeat-8.0.0-linux-x86_64/filebeat.yml"
Environment="BEAT_PATH_OPTS=--path.home /usr/src/filebeat/filebeat-8.0.0-linux-x86_64/filebeat --path.config /usr/src/filebeat/filebeat-8.0.0-linux-x86_64 --path.data /usr/src/filebeat/filebeat-8.0.0-linux-x86_64/data --path.logs /usr/src/filebeat/filebeat-8.0.0-linux-x86_64/logs"
ExecStart=/usr/src/filebeat/filebeat-8.0.0-linux-x86_64/filebeat --environment systemd $BEAT_LOG_OPTS $BEAT_CONFIG_OPTS $BEAT_PATH_OPTS
Restart=always
[Install]
WantedBy=multi-user.target
虚拟机Linux打开是黑屏
答:Vmware安装Linux打开一直黑屏的四个解决方法-爱码网 (likecs.com)
LInux未能获取到内网ip。
答:重启所有的虚拟机。
ping 127.0.0.1 通,但是ping www.baidu.com 不通
问题原因:没有启用联网功能,启用联网功能
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改配置: ONBOOT=yes
重启网络服务: service network restart
ifconfig command not found
需要安装 net-tools
yum update
yum -y install net-tools
文章参考:
linux安装nginx - 行者无疆 - 博客园 (cnblogs.com)
[有手就行]filebeat零基础安装教程_大师兄啦啦啦的博客-CSDN博客_filebeat安装
Filebeat入门及使用-5 读取nginx日志,写入ES,并用kibana展示_小哇666的博客-CSDN博客_filebeat nginx
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(
如何在出现异常时指定全局救援,如果您将Sinatra用于API或应用程序,您将如何处理日志记录? 最佳答案 404可以在not_found方法的帮助下处理,例如:not_founddo'Sitedoesnotexist.'end500s可以通过调用带有block的错误方法来处理,例如:errordo"Applicationerror.Plstrylater."end错误的详细信息可以通过request.env中的sinatra.error访问,如下所示:errordo'Anerroroccured:'+request.env['si
我正在使用ruby标准记录器,我想要每天轮换一次,所以在我的代码中我有:Logger.new("#{$ROOT_PATH}/log/errors.log",'daily')它运行完美,但它创建了两个文件errors.log.20130217和errors.log.20130217.1。如何强制它每天只创建一个文件? 最佳答案 您的代码对于长时间运行的应用程序是正确的。发生的事情是您在给定的一天多次运行代码。第一次运行时,Ruby会创建一个日志文件“errors.log”。当日期改变时,Ruby将文件重命名为“errors.log
在运行Cucumber测试时,我得到(除了测试结果)大量调试/日志相关的输出形式:D,[2013-03-06T12:21:38.911829#49031]DEBUG--:SOAPrequest:D,[2013-03-06T12:21:38.911919#49031]DEBUG--:Pragma:no-cache,SOAPAction:"",Content-Type:text/xml;charset=UTF-8,Content-Length:1592W,[2013-03-06T12:21:38.912360#49031]WARN--:HTTPIexecutesHTTPPOSTusingt
我最近将我的http客户端切换到faraday,一切都按预期工作。我有以下代码来创建连接:@connection=Faraday.new(:url=>base_url)do|faraday|faraday.useCustim::Middlewarefaraday.request:url_encoded#form-encodePOSTparamsfaraday.request:jsonfaraday.response:json,:content_type=>/\bjson$/faraday.response:loggerfaraday.adapterFaraday.default_ada
网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.
像这样转换数组的最快/单行方法是什么:[1,1,1,1,2,2,3,5,5,5,8,13,21,21,21]...进入像这样的对象数组:[{1=>4},{2=>2},{3=>1},{5=>3},{8=>1},{13=>1},{21=>3}] 最佳答案 要获得所需的格式,您可以附加一个调用以映射到您的解决方案:array.inject({}){|h,v|h[v]||=0;h[v]+=1;h}.map{|k,v|{k=>v}}虽然它仍然是单行的,但它开始变得凌乱了。 关于ruby-在Ruby