怎么理解Zabbix 监控方式(如何对数据库中慢SQL进行快速定位)

怎么理解Zabbix 监控方式(如何对数据库中慢SQL进行快速定位)

如何对数据库中慢SQL进行快速定位

定位数据库慢查询SQL有多种,根据具体使用的数据库种类和经济实力来定:APM全程为Application Performance Management,软硬件解决方案都有,如果经济实力不错,直接买大厂商的APM产品最为省时省力,而且还附带报警和分析功能。APM不仅是管理数据库性能的,还可以对应用服务器进行检测,对Java、.NET、PHP、Ruby、Python、NodeJS等语言开发的应用程序性能进行监测。目前市面上很多,有像深信服等提供的集成在硬件中的一体机式的,还有一些纯软件的APM产品,例如像OneAPM那样即可以本地部署的,还可以本地安装弹针然后云端SaaS部署的。这里就不一一列举了,大家可以根据自己预算找相应的厂家咨询。市面上还有一类小众的专门针对数据库的产品。大部分都是多年DBA在自己多年的数据库运维经验基础上针对某种数据库定制的监测系统,除了针对数据库各个性能指标进行监测报警外,还提供智能分析和性能优化等服务。例如作为微软SQL Server金牌合作伙伴的北京格瑞趋势公司所推出的SQL专家云等产品,是专门针对微软SQL Server数据库某一段时间的采样数据分析、诊断,主要的应用场景包括:对数据库进行体检,自动形成体检报告;分析当前系统存在的问题及隐患;分析采样时段的性能问题及根源;分析数据库的参数配置及索引;自动优化并生产可执行的脚本。例如Zabbix、Nagios、Grafana、Open-falcon等,这些开源系统同APM产品类似,但主要是提供给服务器运维人员使用的,内置了一部分数据库监控的功能,有的插件很多,功能和界面都还是不错的。但是开源产品的安装和使用需要有较高水平的运维人员来使用,需要自己来摸索适合的,针对性也不够强。而且由于缺少支持,遇到问题解决起来比较麻烦。许多数据库的日志系统都带有慢查询记录功能,对于流量不大的系统,又不想投入大量金钱,可以先直接使用数据库日志来记录慢查询,然后定期汇总分析,持续优化应用程序系统。一般用在开发期,或系统刚上线的试运行期。例如MySQL的慢查询日志,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。MySQL 慢查询的相关参数解释:slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。log-slow-queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.logslow-query-log-file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.loglong_query_time :慢查询阈值,当查询时间多于设定的阈值时,记录日志。log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。log_output:日志存储。log_output='FILE'表示将日志存入文件,默认值是'FILE'。log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。MySQL数据库支持同时两种日志存储,配置的时候以逗号隔开即可,如:log_output='FILE,TABLE'。日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。Postgrsql也有类似的慢查询日志记录,PostgreSQL 日志支持的输出格式有 stderr(默认)、csvlog 、syslog。一般的错误跟踪,只需在配置文件“postgresql.conf”简单设置几个参数,当然还有错误级别等要设置。Postgresql 慢查询配置相关参数:logging_collector = onlog_destination = 'stderr'log_directory = 'log'log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'查询控制台查看当前慢查询设置:show log_min_duration_statement;===>5s

怎么样开发一个分布式的进程监管

现在手上有很多程序需要管理。程序分布在各种机器上,部署、单进程部署。部署的网络环境是局域网+外网。

现在在自学linux,但感觉有些吃力了,去哪里学比较好一些

你好,作为IT工作者以及计算机专业学生,在学校和求职过程中多次与培训机构打过交道。下面分享个人和IT培训机构的接触经验:一、亲身接触过的培训机构1)传智播客个人认为该机构的培训质量算高的了。涵盖培训范围也很广,包括常见IT岗位:前端开发,大数据开发,Java开发,Python开发,软件测试,C++开发;还有非IT培训:新媒体,网络营销,产品经理等等。当然包括Linux相关课程,一般是运维。具体各个培训岗位的培训内容及更多培训岗位可以参考官网。如果想进一步报名学习,可以听听它在各个媒体平台的公开课。补充:黑马程序员应该也是传智播客的子品牌。2)达内这也算最知名的IT培训公司之一了,还是上市公司。培训工作开展多年,可谓经验丰富,现场看起来比较专业,有助教。培训范围也同样广泛,具体查看达内官网。笔者曾经在校期间参加过该机构组织的活动,当时培训的老师是知名老师,讲课幽默风趣,效果不错。当时体验还可以。不过,最近发现可能质量并不是很高,毕竟好老师也是少数。想进一步了解的可以查看培训大纲或者观看直播课。还爆出过播放已经录制好的视频给学员的丑闻……3)千锋教育当初也来我们学校开过课程。讲课老师很负责,是北方人,讲课风格热情,印象不错。具体培训质量请各位读者观看直播课程进一步了解。4)其它北大青鸟(口碑可能很差);腾讯课堂有一些新兴培训机构,偏向垂直领域,比如Java,人工智能等。二、听说过但没有亲身接触过事实上上面提到过的培训机构,基本上都有Linux相关培训。而专门针对Linux这个垂直领域的培训机构,知名的有马哥教育。还有鸟哥的电子书也很知名。其它的也不一一列举了。1)参加培训还是很辛苦的,特别对于是基础比较差的人。完整培训时间起码是三四个月,注意这不是指在职培训,而是脱产。白天上课,晚上可能也在上课或者上课,一天十几个小时学习时间。可能还没有互联网(避免利用笔记本玩游戏),只有手机流量。当时笔者参加培训活动,白天上课,一边写代码,一边跟上老师的讲课进度还是有些吃力。一方面因为自己基础不好,另一方面是思维,没有发挥主观能动性,不应该被动学习,而是把培训内容当做兴趣学习,而且在几百人一起编程的现场氛围还是可以的,也有助教,也可以同学之间互相交流。2)培训质量参差不齐笔者注意到有的培训机构老师的培训内容也是书上的内容,而且写代码时旁边也有提示,还号称自己是名牌大学毕业的。不过想想也是,可能活动培训老师实际工资经验也不丰富,因此是将是上面的内容消化后,抽象概括后讲解给学员,相当于是二手信息。就像我们平时也是将看书学习作为主要学习。还有就是培训时间太短,顶多能够培养个能够搬砖的,属于应试教育(对付面试官),计算机基础肯定学不到,顶多偶尔碰到进一下,不会深入。当然培训老师自己有可能也不懂……逃~当然笔者并没有完全否定培训的作用。3)某些培训机构手段低劣比如笔者当年在上海求职时看到某培训机构招聘信息,过去发现人家是招生的……有个细节很有意思:在前台签到时还碰到毫无经验的人来面试,前台小姐姐还若有其事的让人家稍等……很专业的样子。笔者做完笔试题后,有个HR妹子(一看就知道不是搞技术的),和我面谈,说我这也不行,那也不行,然后应该参加他们培训,免费!但是就业后要将工资的部分交给他们,持续一年,别人工资7k,每月返还两三k,不提供住宿,这可是大上海,怎么活,细思极恐,太狠了吧!四、包就业?推荐工作?先下结论,非科班出生如果在培训期间,三天打鱼两天晒网肯定找不到工作,现在科班毕业一大堆,而且笔者前文说过,要想学习到东西,参加培训还是挺辛苦的,毕竟几个月要学几年的东西,有的只能一笔带过。假设你学的不错,恐怕也只能去个小公司或者外包,工资肯定不高。笔者身边也有非科班培训后,找到工作的——外包。也有找到待遇不错的,也有没有找到工作的(当时培训机构可是信誓旦旦包就业的哦)。综上所述,培训后发展个体差异性大。起码有一点可以肯定,必须付出巨大的努力才能有后续良好的发展,因此想要培训的人先要想好为何参加培训,规划好长期发展路线才是理想的行动。当然了以上都是个人经验,你可能觉得不具说服力。欢迎留言探讨。