LogStash 日志搜集

安装

配置

  • bin目录添加logstash.conf
  • input { file { path => "E:/software/ELK/logs/file.log" //被采集的日志文件 start_position => beginning //采集位置 从开始 } }filter { //过滤为空 } output { stdout {}//标准输出显示 }

注: 配置文件必须utf8 without BOM格式编码 本机配置文件放在如下目录,建议是使用notepad++编辑配置

测试

`cd E:softwareELKlogstash-2.4.0in`
`logstash.bat -f logstash.conf -t`
  • Configuration OK 证明配置成功
  • 启动:logstash.bat -f logstash.conf
  • 打开并编辑E:/software/ELK/logs/file.log文件,会自动搜集内容

导入

  • 配置如下: ` input { file { path => "E:/software/ELK/logs/file.log" start_position => beginning } } filter {

} output { elasticsearch { hosts => ["0.0.0.0:9200"] } }`

  • 启动:logstash.bat -f logstash.conf
  • 编辑日志文件,即可把日志到入es
  • 如果遇到这个问题:ut Elasticsearch appears to be unreachable or down! {:error_message=>"Connection refused: connect", 很可能是你的配置有问题:hosts,最好使用IP:端口的形式

为了更好地看到效果:

 static void Main(string[] args)
        {
            while (true)
            {
                StreamWriter sw = File.AppendText("E:\software\ELK\logs\log.txt");
                string w = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                sw.WriteLine(w);
                sw.Close();

                System.Threading.Thread.Sleep(2000);
            }

            Console.ReadKey();
        }

不断地向指定目录中写入内容,es中结果如下:

问题:

当搜集的内容中包含中文,就会出现上面的问题!需要在logstash 中配置编码格式:

5 安装logstash 为windows服务

cd到logstash文件夹下bin目录

创建一个run.bat

logstash.bat agent -f logstash.conf

下载nssm

https://nssm.cc/release/nssm-2.24.zip

解压拷贝nssm-2.24win64目录下nssm.exe到logstash bin目录

cmd 运行 nssm install logstash

在弹出的界面设置 Path为run.bat,Details选项卡设置显示名,Dependencies选项卡设置依赖服务 elasticsearch-service-x64

最后点击install service 安装成功

资料

原文地址:https://www.cnblogs.com/tianboblog/p/6830468.html