ELK搜索引擎三剑客(存储+检索+分析) ---logstach(日志收集)

logstach安装
解压 配环境变量

#运行 logstach 必须手写conf配置文件

logstach作为日志收集工具

1.支持多种数据源输入
2.支持多种过滤器
3.支持多种数据输出目的地

实例1:

input {
file{
path =>["/etc/passwd","/var/log/messages"]
start_position =>“beginning”
sincedb_path =>"/dev/null"
}
}
filter{}
output {
stdout{}
}

输入源:file
1.path:目录为两个目录 多个目录中用逗号分隔
2.start_position=>beginning 从起始位置开始输入
sincedb_path=>/dev/null 指定输入后产生的临时日志文件的垃圾回收路径

#正常情况下输入会产生缓存日志,如果没有垃圾回收,或者未删除缓存日志,下次读取则会从
#已经读取过的位置来开始读取 缓存日志存放路径 /opt/logstash/data/plugins/inputs/file
过滤器:空
输出源:控制台打印

实例2:

input {
file{
path => “/root/stu.json”
start_position =>“beginning”
sincedb_path =>"/dev/null"
codec =>“json”
}
}
filter{}
output {
stdout{codec =>“rubydebug”}
}

1.codec => “json” 指定输入源文件格式为json
2.stdout{codec =>“rubydebug”} 指定控制台输出代码风格为rubydebug

实例3:

input {
stdin{}
}
filter{
grok{
match=>{“message”=>"%{NUMBER:duration} %{IP:client}"}
}
mutate{convert=>[“duration”,“integer”]}
}
output{
if [duration]<100{
stdout{codec=>rubydebug}
}
}

1.filter 指定过滤器类型为grok match 匹配中"message"为固定格式 后面跟的%{NUMBER:duration} %{IP:client}
这些都是grok类型过滤器中自行设定好的变量, NUMBER类型标识数字, IP类型识别IP
2.mutate类型也是filter过滤器的一种,可以对字段进行重命名,修改
3.output中可以给定条件判断进行输出

实例4:

input{
stdin{}
}
filter{
grok{
match=>{“message”=>"(?\d*[./-]\d*[./-]\d* \d*:\d*:\d*) %{NUMBER:duration} %{IP:client}"}
}
}
output{stdout{codec=>rubydebug}}

1.grok中可以自行定义正则表达式去匹配,如上述定义了date类型的正则

实例5(重点练习):

input {
file{
path =>"/root/logstash/student.csv"
start_position =>“beginning”
sincedb_path => “/dev/null”
}
}
filter {
csv {
separator => “,”
columns => [“userid” ,“username” ,“age”,“score”]
}
mutate {
convert => {
“userid” => “integer”
“username” => “string”
“age” => “integer”
“score” => “float”
}
}
}
output {
elasticsearch{
hosts =>[“192.168.56.100:9200”]
index =>“student”
document_type => “userinfos”
}
}
1.过滤器中可以指定对csv文件进行的过滤 其中分隔符为, 分割后的字段为上述columns中的内容
2.mutate convert进行类型指定
3.输出中指定输出源为es,主机地址映射9200,索引名为student,类型名为userinfos

案例6(重点练习):

input {
jdbc {
jdbc_connection_string => “jdbc:mysql://localhost:3306/log”
jdbc_user => “root”
jdbc_password => “ok”
jdbc_driver_library => “/root/workspace/download/mysql-connector-java-5.1.44-bin.jar”
jdbc_driver_class => “com.mysql.jdbc.Driver”
jdbc_paging_enabled => “true”
jdbc_page_size => “1000”
statement => “select * from logs_20171206”
schedule => “* * * * *”
type => “jdbc”
}
}
output {
elasticsearch {
hosts => [“192.168.56.100:9200”]
index => “behivour-logs”
document_type => “logs_20171206”
document_id => “%{id}”
}
}
1.输入源 指定类型为jdbc 将数据库中的表导入es
jdbc固定格式,连接地址,用户名,密码,指定jdbc驱动,查询语句
2.指定输出index名 type名,并且将数据库中id作为 type的指定id

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值