python监控日志
㈠ elastalert的简单运用
elastalert 是yelp使用 python 开发的 elasticsearch 告警工具。
github: https://github.com/Yelp/elastalert
很多人使用ELK stack来做日志收集分析, Kibana 强大而方便,跟踪分析统计样样俱全,然而,但是,却有一个问题。Automation!你让我每天写 query 、查 kibana ?死给你看。
于是yelp的懒鬼们开发了 elastalert ,配好 yaml ,你只要等着收邮件就好了。
elastalert依照一定频率查询es,将查询结果对比告警阈值,超过阈值即进行告警。告警方式包括但不局限于邮箱、jira等。虽然官方没有提供微信等告警方式,但是也有第三方版本可以使用。
使用elastalert需要配置rule.yaml文档,来定义你要进行告警的条件、内容。
我们可以定义多个yaml,同时进行多种告警。也即对于每个rule.yaml,其包含一种告警发生规则,即阈值;包含一些告警方式,即email、jira等。
使用elastalert的步骤简单分为以下几步:
1. 安装elastalert
2. 配置config.yaml
3. 建立elastalert的索引
4. 配置规则yaml
5. 测试你的规则
6. 运行elastalert
elastalert文档齐全,以上步骤在官方文档种又详细介绍:
http://elastalert.readthedocs.io/en/latest/running_elastalert.html
我们来看一个简单的 example_rule.yaml 例子:
你可能一看就明白这个 yaml 做了哪些事情,但是我们还是把它分成三段来具体了解一下:
ip、port、index、query,通过这四项来定义我们要监控的文档。filter指的是es query(DSL) 中的filter。
在yaml中配置filter:
http://elastalert.readthedocs.io/en/latest/recipes/writing_filters.html
关于filter:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html
type 即告警模式,elastalert官方提供了11种 type ,简单说一下:
+ any(全部): 定义要监控文档中的每个命中都会生成一个警报
+ blacklist(黑名单): 检查和名单中的特定字段,如果他们在黑名单中则匹配
+ whitelist(白名单): 与黑名单类似,此规则会将某个字段与白名单进行比较,如果白名单不包含此词,则匹配
+ change(变化): 监视某个字段,当该字段改变时匹配
+ frequency(频率): 给定事件范围内,至少有一定数量时匹配
+ spike(环比): 给定时间段内的事件量比前一时间段大或小时,匹配
+ flatline(基线): 某个时间段内的时间总数低于给阈值
+ new_term(新词): 当指定字段出现新的词时匹配
+ cardinality(基数): 当某个时间段内特定字段的唯一值总数高或低于阈值时,匹配
+ metric_aggregation(聚合): 计算窗孔中度量值高或低于阈值时匹配
+ percentage_match(百分比): 匹配值所占百分比高或低与阈值时匹配。
FYI: http://elastalert.readthedocs.io/en/latest/ruletypes.html#rule-types
例子中我们选择邮件告警,发送到 [email protected]
发送邮件需要配置邮件服务器,可以配置在config.yaml中,也可以在rule.yaml分别配置。
3.1
alert_subject 更改邮件的标题
alert_text_type: alert_text_only 因为我们要自定义邮件内容,所以使用 alert_text_only
alert_text 自定义邮件内容, {} 用于引用参数,参考python的string format。此处我需要格式化日期格式,故在{}中添加参数 :%Y-%m-%d %H:%M:%S
alert_text_args 这里的参数依次对应 alert_text 中的 {}。此处可用的参数包括 elastalert_status/elastalert 中文档内 _source/match_body 下的所有字段,以及一些保留字段。可用的字段存储在此 dict 中
㈡ 如何利用Python自动监控网站并发送邮件告警
1、监控网站
监控网站其实就是去爬网页的源码,每次对比或检查网页源码特定位置的html代码是否有变化即可,具体可以用
fromurllibimportrequest
page=request.urlopen("网址")
html=page.read()
就可以获取网页源码;
2、发送高警
建议别用邮件,邮件发多几次就会认为你的发件箱有发垃圾邮件的嫌疑。用 喵提醒 ,是个公众号,可以免费发提醒到手机上。调用方法也和监控网页代码类似,具体自己看喵提醒的教程。
㈢ 我的的python语言脚本监控的服务器日志,日志出现错误的时候根据错误关键字进行语音告警。可是最近出现
应该是split后生成的列表的原始超过2个了。看下面的简单的例子就知道了。
其实应该看一下生成后的长度,做个保护,否则像你这种赋值,只要列表长度不为2,都会异常。
>>> x=[1,2,3]
>>> a,b=x
Traceback (most recent call last):
File "<interactive input>", line 1, in <mole>
ValueError: too many values to unpack
㈣ 运维需要学什么
运维工程师一般有系统运维、网络运维、运维开发、数据库运维、云运维等方向,今天主要介绍系统运维工程师所需要具备的一些技能和考证方面。
系统运维工程师必备技能
系统运维工程师不仅需要有Linux基本操作技能,还应该会服务器硬件、以及企业里常用的双机集群、Windows、VMware、数据库等技能,这样才能有担任合格的系统运维工程师。
需要特别注意企业里物理机都是用双机集群,一定要掌握双机集群的技能,包括Linux双机集群、Windows双机集群、Oracle Rac数据库集群、sql Server数据库集群等。
㈤ python 执行函数长时间不打日志,检测是否还在运行
pyhon的一个函数在执行I/O参数比如文件读写,socket正在等待数据时是不能干其他事情的,包括打日志。如果想让一个文件准备好读写了或者一个socket有数据可以直接接收时让操作系统通知程序的话,可以试试select库
㈥ 在docker中远程调用PhantomJS
背景:写了一个爬虫程序使用的docker部署,部署后在docker中安装PhantomJS 比较麻烦,于是想到了再另一个docker容器中部署一个PhantomJS ,通过远程调用的方式来使用它
通过java 调用:
通过python调用,先运行 pip install selenium安装selenium
监控一下docker的日志,发现调用成功
参考:
㈦ 大数据如何入门
首先我们要了解Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。
大数据
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据基础。
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapRece和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapRece是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapRece程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapRece、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapRece处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。
㈧ 如何用python写监控日志函数
def write_log(username,operation): ''' 写日志函数 :param username:用户名 :param operation:用户的操作信息 :return: ''' w_time = time.strftime('%Y-%m-%d %H%M%S') with open('log.txt','a+') as fw: log_content = '%s %s %s \n'%(w_tim...
㈨ 监控日志在哪
张工负责维护他公司电脑系统,保证24小时运行不出
问题, 经常人在机房时候
没有吊问题,人一走,就出大小问题,大的问题有时
候突然服务器掉网,造成业务阻断,又有如突然某个
业务程序莫名其妙退出,影响了业务正常进行,人回
家睡觉了,第二天到公司,被上司大骂并扣了奖金。
有了前例,张工每次回家都提心吊胆,睡不好觉。连
中午出去吃饭都提心吊胆。
自从张工上网下载了福州鼎嵌DQ-WARING智能手机-服
务器系统日志远程监控软件并安装到手机后,他可以
在睡觉或外出就餐的时候若第一时间听到手机软件闹
铃告警,并打开手机界面查看系统日志文件告警内容
,并立刻到机房,及时处理故障,恢复业务。服务器
侧只需安装一个小程序,定时读取DQ-WARING.LOG文件
即可。java/c/c#/vb/c++程序或shell或python只需将
需要告警的内容文本写入DQ-WARING.LOG文件,并编写
0,1,2,3告警级别即可。
比如当脚本检测硬盘只剩10%时候,写入“硬盘xxx空
间即将爆满-0”,手机端即可告警并看到该文本内容
。
又比如,当业务服务器的网络掉网时您业务中断时,
则心跳信号失去了,则发出告警。(保证手机不欠话
费的前提下)。
又比如,当张工刚好整理好下班回家途中,突然某程
序退出,则导致DQ-WARING.LOG长时间没更新,手机即
可判断某程序退出。
欢迎大家下载该系统日志维护手机助手,为您解除后
顾之忧。联系人鼎嵌江老师。