ELK不香了!我用Graylog( 三 )


性能和可靠性就是配置ElasticIndex的一些参数 , 主要参数包括 , Shards和Replicas 。
除了上面提到的日志处理流程 , Graylog还提供了Pipeline脚本实现更灵活的日志处理方案 。
这里不详细阐述 , 只介绍如果使用Pipelines来过滤不需要的日志 。 下面是丢弃level>6的所有日志的PipelineRule的例子 。
从数据采集(input) , 字段解析(extractor) , 分流到stream , 再到Pipeline的清洗 , 一气呵成 , 无需在通过其他方式进行二次加工 。
Sidecar是一个轻量级的日志采集器 , 通过访问Graylog进行集中式管理 , 支持Linux和windows系统 。
Sidecar守护进程会定期访问Graylog的RESTAPI接口获取Sidecar配置文件中定义的标签(tag) , Sidecar在首次运行时会从Graylog服务器拉取配置文件中指定标签(tag)的配置信息同步到本地 。
目前Sidecar支持NXLog , Filebeat和Winlogbeat 。 他们都通过Graylog中的web界面进行统一配置 , 支持Beats、CEF、Gelf、JsonAPI、NetFlow等输出类型 。
Graylog最厉害的在于可以在配置文件中指定Sidecar把日志发送到哪个Graylog群集 , 并对Graylog群集中的多个input进行负载均衡 , 这样在遇到日志量非常庞大的时候 , Graylog也能应付自如 。
rule''discarddebugmessages''whento_long($message.level)>6thendrop_message();end日志集中保存到Graylog后就可以方便的使用搜索了 。 不过有时候还是需要对数据进行近一步的处理 。
主要有两个途径 , 分别是直接访问Elastic中保存的数据 , 或者通过Graylog的Output转发到其它服务 。
服务安装和部署
主要介绍部署Filebeat+Graylog的安装步骤和注意事项!
ELK不香了!我用Graylog
文章图片
使用Graylog来收集日志
①部署Filebeat工具
官方提供了多种的部署方式 , 包括通过rpm和deb包安装服务 , 以及源代码编译的方式安装服务 , 同时包括了使用Docker或者kubernetes的方式安装服务 。
我们根据自己的实际需要 , 进行安装即可:
#Ubuntu(deb)$curl-L-Ohttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.1-amd64.deb$sudodpkg-ifilebeat-7.8.1-amd64.deb$sudosystemctlenablefilebeat$sudoservicefilebeatstart#使用Docker启动dockerrun-d--name=filebeat--user=root--volume=''./filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro''--volume=''/var/lib/docker/containers:/var/lib/docker/containers:ro''--volume=''/var/run/docker.sock:/var/run/docker.sock:ro''docker.elastic.co/beats/filebeat:7.8.1filebeat-e-strict.perms=false-Eoutput.elasticsearch.hosts=[''elasticsearch:9200'']②部署Graylog服务
我们这里主要介绍使用Docker容器来部署服务 , 如果你需要使用其他方式来部署的话 , 请自行查看官方文档对应章节的安装部署步骤 。
在服务部署之前 , 我们需要给Graylog服务生成等相关信息 , 生成部署如下所示:
#生成password_secret密码(最少16位)$sudoaptinstall-ypwgen$pwgen-N1-s16zscMb65...FxR9ag#生成后续Web登录时所需要使用的密码$echo-n''EnterPassword:''&&head-1</dev/stdin|tr-d'n'|sha256sum|cut-d''''-f1EnterPassword:zscMb65...FxR9ag77e29e0f...557515f生成所需密码信息之后 , 我们将如下yml信息保存到docker-comopse.yml文件中 , 使用docker-compose命令启动该服务 , 即可完成部署 。
version:''3''services:mongo:restart:on-failurecontainer_name:graylog_mongoimage:''mongo:3''volumes:-''./mongodb:/data/db''networks:-graylog_networkelasticsearch:restart:on-failurecontainer_name:graylog_esimage:''elasticsearch:6.8.5''volumes:-''./es_data:/usr/share/elasticsearch/data''environment:-http.host=0.0.0.0-transport.host=localhost-network.host=0.0.0.0-''ES_JAVA_OPTS=-Xms512m-Xmx5120m''ulimits:memlock:soft:-1hard:-1deploy:resources:limits:memory:12gnetworks:-graylog_networkgraylog:restart:on-failurecontainer_name:graylog_webimage:''graylog/graylog:3.3''ports:-9000:9000#Web服务提供的访问端口-5044:5044#Filebeat工具提供端口-12201:12201#GELFTCP-12201:12201/udp#GELFUDP-1514:1514#SyslogTCP-1514:1514/udp#SyslogUDPvolumes:-''./graylog_journal:/usr/share/graylog/data/journal''environment:-GRAYLOG_PASSWORD_SECRET=zscMb65...FxR9ag-GRAYLOG_ROOT_PASSWORD_SHA2=77e29e0f...557515f-GRAYLOG_HTTP_EXTERNAL_URI=http://11.22.33.44:9000/-GRAYLOG_TIMEZONE=Asia/Shanghai-GRAYLOG_ROOT_TIMEZONE=Asia/Shanghainetworks:-graylogdepends_on:-mongo-elasticsearchnetworks:graylog_network:driver:bridge之后 , 通过浏览器访问对应服务器地址的9000端口 , 即可登录主页 。