go语言日志收集 go的日志库

filebeat采集日志到kafka配置及使用Filebeat是elastic公司beats系列工具中的一个,主要用于收集本地日志 。
在服务器上安装后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到配置文件中指定的输出端(例如:elasticsearch,logstarsh或kafka) 。
Filebeat使用go语言开发 , 使用时没有其go语言日志收集他依赖,比logstash-forworder轻量,不会占用部署服务器太多的资源 。
filebeat的工作流程:当go语言日志收集你开启filebeat程序的时候 , 它会启动一个或多个探测器(prospectors)去检测go语言日志收集你指定的日志目录或文件,对于探测器找出的每一个日志文件 , filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到go语言日志收集你指定的地点 。
2.配置filebeat
配置filebeat需要编辑filebeat的配置文件,不同安装方式,配置文件的存放路径有一些不同 ,  对于 rpm 和 deb的方式, 配置文件路径的是 /etc/filebeat/filebeat.yml,对于压缩包的方式,配置文件存在在解压目录下(例如:go语言日志收集我是在home目录下进行的解压,那么配置文件的路径就应该是~/filebeat-6.2.4-linux-x86_64/filebeat.yml) 。
由于我的预期目标是将filebeat收集的日志发送到kafka,所以配置output就选择了kafka 。读者可根据自己的使用场景 , 配置output 。
例子中的配置将对/var/log目录下所有以.log结尾的文件进行采集 。
3.启动
本文中只是为满足需求对filebeat进行了最基本的配置 。filebeat的很多重要的配置和特性并没有体现(例如:模块,多行消息),读者如果需要更深入的了解请参考:。
欢迎大家在评论区讨论使用过程的心得和疑惑 。
运维工程师必须掌握的基础技能有哪些?运维工程师必须掌握的基础技能有go语言日志收集:基础命令、基础服务、自动化技能、安全 。
1、基础命令:
这个基础就包括:用户管理命令go语言日志收集 , 文件管理命令,权限管理命令,软件包管理命令 , vim命令,网络管理命令等 。这些命令好学 , 因为每个命令都有相应的help帮助文档 , 而且很多网站都集成了命令帮助,把这些站点进行收藏,时不时的查下就记住了 。
2、基础服务:
企业常用的基础服务就包括DHCP,NTP,DNS,Nginx,Apache,Mysql,Redis,Vsftpd,Nfs 。基础服务的掌握,相比命令稍微的难一点,但是同样有很多技巧 。比如可以去各大视频站获取优质的免费视频学习 。
3、自动化技能:
这个自动化就包括脚本自动化,需要熟悉掌握shell脚本或者Python脚本;包括监控自动化,不能靠传统的点击页面 , 查看进程来判断服务是否在线,需要熟悉掌握zabbix,Prometheus等主流监控软件;还包括工具自动化,需要掌握向ansible,puppet,Jenkins等自动化软件,实现服务的批量部署与业务的自动化 。
4、安全:
作为运维工程师 , 首先就要时刻保障公司业务系统 , 服务器安全稳定运行 。所以安全至关重要 , 主流的iptables , firewalld防火墙技术要熟练掌握,有必要的话常见的挖矿病毒,ddos等攻击有段也要有所了解 。
运维工程师(Operations),负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI 。
运维工程师面对的最大挑战是大规模集群的管理问题,如何管理好几十万台服务器上的服务,同时保障服务的高可用性,是运维工程师面临的最大挑战 。

推荐阅读