美文网首页
【Zabbix】——ESXI日志如何转存logstash

【Zabbix】——ESXI日志如何转存logstash

作者: 乐维_lwops | 来源:发表于2022-08-17 15:16 被阅读0次

    一、安装rsyslog服务

    #yuminstall –y rsyslog

    二、调整rsyslog配置

    1、修改/etc/rsyslog.conf文件,过滤自身的日志,接收日志到文件/etc/log/syslog.log

    $template remote-incoming-logs,"%timestamp::date-rfc3339% %fromhost-ip% %app-name% %msg%\n"

    local4.*        /var/log/syslog.log;remote-incoming-logs

    :fromhost-ip, !isequal, "127.0.0.1" ?remote-incoming-logs

    三、安装logstash服务

    1、上传文件logstash-8.2.0-linux-x86_64.tar.gz,修改服务配置

    #tar –xf logstash-8.2.0-linux-x86_64.tar.gz

    #mv logstash-8.2.0-linux-x86_64  /usr/local/logstash

    2、修改logstash服务配置文件/usr/local/logstash/config/logstash-sample.conf,

    清空配置添加下列信息

    input {

    file {

    path =>"/var/log/syslog.log"

    type =>"system"

    start_position =>"end"

    }

    }

    filter {

    grok {

    match => { "message" => "%{SYSLOGTIMESTAMP:message_timestamp} %{SYSLOGHOST:hostname} %{DATA:message_program} %{GREEDYDATA:message_content}" }#这里通过grok对message字段的数据进行字段划分,这里将message字段划分了5个子字段。其中,message_content字段会在output中用到

    }

    mutate {

    add_field => {"[zabbix_key]" => "%{message_program}"} #新增的字段,字段名是zabbix_key,值为oslogs

    add_field => {"[zabbix_host]" => "%{hostname}"} #新增的字段,字段名是zabbix_host,值可以在这里直接定义,也可以引用字段变量来获取。这里>的%{host}获取的就是日志数据的主机名,这个主机名与zabbix web中“主机名称”需要保持一致

    remove_field => ["@version","message","type","host"] #这里是删除不需要的字段

    }

    date { #这里是对日志输出中的日期字段进行转换,其中message_timestamp字段是默认输出的时间日期字段,将这个字段的值传给 @timestamp字段

    match => [ "message_timestamp","MMM  d HH:mm:ss","MMM dd HH:mm:ss","ISO8601"]

    }

    }

    output {

    if [message_content]  =~ /(ERR|error|ERROR|Failed)/ {   #定义在message_content字段中,需要过滤的关键字信息,也就是在message_content字段中出

    现给出的这些关键字,那么就将这些信息发送给zabbix

    zabbix {

    zabbix_host =>"[zabbix_host]"  #这个zabbix_host将获取上面filter部分定义的字段变量%{host}的值

    zabbix_key =>"[zabbix_key]"  #这个zabbix_key将获取上面filter部分中给出的值

    zabbix_server_host =>"192.168.1.105"    #这是指定zabbix server的IP地址

    zabbix_server_port =>"10051"   #这是指定zabbix server的监听端口

    zabbix_value =>"message_content"    #这个很重要,指定要传给zabbix监控项item(oslogs)的值, zabbix_value默认的值是"message"字段,因>为上面我们已经删除了"message"字段,因此,这里需要重新指定,根据上面filter部分对"message"字段的内容划分,这里指定为"message_content"字段,其实,"message_content"字段输出的就是服务器上具体的日志内容

    }

    }

    stdout{

    #             codec => rubydebug

    }

    }    #这里是开启调试模式,当第一次配置的时候,建议开启,这样过滤后的日志信息直接输出的屏幕,方便进行调试,调试成功后,即可关闭

    3、安装logstash-output-zabbix插件

    #/usr/local/logstash/bin/logstash-plugin  install  logstash-output-zabbix

    4、启动服务

    /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/logstash-sample.conf --path.data /tmp

    查看日志,格式已固定

    四、创建模板

    注:(demo可下载,只添加了部分指标)

    五、创建主机

    相关文章

      网友评论

          本文标题:【Zabbix】——ESXI日志如何转存logstash

          本文链接:https://www.haomeiwen.com/subject/iuwjgrtx.html