×

微信扫一扫,快捷登录!

标签: 暂无标签
本帖最后由 monicazhang 于 2017-8-9 17:37 编辑

社区最近组织了“Zabbix的常用配置和日常运维交流”,探讨了以下几方面
  • Zabbix安装配置;
  • Zabbix数据采集(Agent,自定义脚本,SNMP,IPMI等);
  • Zabbix事件设计(触发器,触发器表达式);
  • Zabbix图形展示(grafana);
  • Zabbix性能调优(数据库优化,Zabbix配置文件优化,数据库表分区)
  • Zabbix二次开发(API)。

社区专家everychengxuan从活动中选取比较有针对性的问题,梳理如下,对Zabbix感兴趣、正在学习或使用的朋友,可以从中获得实用参考。

Zabbix安装配置

问题:
1.Zabbix的界面调试到中文模式,看图像出现乱码怎么回事?
2.Zabbix做分布式好做吗,哪位有相关文档?

[解答]:
Zabbix的安装配置不多赘述,Zabbix官方文档介绍很详尽: > [  /documentation/3.0/manual/installation]documentation/3.0/manual/installation[/url]
另外可以参考IT运维管理社区会员发表的文章:
[  /Article/178287]Article/178287[/url]
[  /Article/178419]Article/178419[/url]
Zabbix本身就具备分布式的优点,如同嘉宾bluetom520所答,Zabbix Server<--->Zabbix Proxy<--->Zabbix Agent就可以实现分布式;
分布式的部署参考官方文档:
documentation/3.0/manual/distributed_monitoring/proxies
file:///C:\Documents and Settings\xz17\Application Data\Tencent\Users\543032323\QQ\WinTemp\RichOle\%~NIER4QQIIY]_UNLK]_D@A.png
Zabbix数据采集
问题:
1.Zabbix的采集指标的工作原理和过程是怎么样的?请分析描述一下
2.请问Zabbix通过什么方法监控oracle和weblogic比较好?
3.Zabbix如何通过SNMP监控?

[解答]:
  • Zabbix支持多种数据采集方式:

    • Zabbix agent checks
    • SNMP agent checks
    • SNMP traps
    • IPMI checks
    • Simple checks
    • VMware monitoring
    • Log file monitoring
    • Calculated items
    • Zabbix internal checks
    • SSH checks
    • Telnet checks
    • External checks
    • Aggregate checks
    • Trapper items
    • JMX monitoring
    • ODBC checks

  • 在一般的监控情境下,常用的监控方式为:

    • 操作系统直接用Zabbix Agent,内置了很多键值,特殊情况下,可以用自定义键值来补充监控项;
    • Zabbix内置了一些常用的监控模板,比如MySQL、Tomcat等,但是其他的应用,比如数据库Oracle、DB2、SQLServer等,我们可以通过Shell、Python等脚本调用应用的命令来返回应用自身的数据,然后通过Zabbix Agent将数据传给Zabbix Server;Weblogic、WAS可以通过JMX监控。
    • SNMP和SNMP Trap是监控硬件常用的方式,X86服务器均可以通过SNMP来获取厂商的硬件管理平台的硬件状态,比如IBM的IMM、HP的ILO、Dell的idrac、Huawei的BMC等;网络设备可以直接通过SNMP来监控;存储设备大多只支持SNMP Trap,SNMP Trap获取的数据无法客户化,需要提前用脚本(比如Perl)提前对内容进行切片,而且触发器不容易编写(SNMP Trap触发的事件多种多样,触发器字段不容易匹配所有的事件),但是存储一般都有命令行管理软件,可以通过Shell、Python等脚本调用存储管理软件的命令来返回存储的状态,然后通过Zabbix Agent将数据传给Zabbix Server。

Zabbix事件设计
问题:1.Zabbix的告警事件关联是怎么做的?
2.Zabbix的告警事件丰富怎么做的?
3.Zabbix的重复告警压缩是怎么做的?告警抑制是怎么做的?

[解答]:
  • 首先,合理的触发器触发器表达式,可以让事件的接收者更容易判断事件的内容、严重程度,在设计触发器表达式时,注意事件的逻辑性,合理运用一些运算符号来使事件触发更加合理:

    • 多使用逻辑运算符,精确触发事件;
    • 多使用时间单位,对同一事件以时间来递增事件严重程度;
    • 多使用类似nodata这种函数来控制触发恢复区间,消除虚报。

  • 其次,在Zabbix的动作里,多设计几个条件和操作,可以对事件分级发送到不同的接受者。
  • 最后,关于事件的内容,Zabbix内置了几个基本的宏,例如:


  • 如果想使用更多的宏,来传递更多关于主机的信息,可以在添加主机的时候,写入更多的资产信息,那么可以在事件内容里就可以通过添加资产对应的宏, 来展示关于主机更多的信息。
    documentation/3.0/manual/appendix/macros/supported_by_location
  • 附上关于Zabbix微信和阿里钉钉报警的脚本链接:
    微信:[  /bluetom520/zabbix-weixin-picture]bluetom520/zabbix-weixin-picture[/url]
    阿里钉钉:[  /bluetom520/dingding]bluetom520/dingding[/url]


Zabbix图形展示
问题:
Zabbix只支持那么几种图吗?

[解答]:
众所周知,只要接触过Zabbix的人,都认为Zabbix的图形展示不够灵活,这也催生了大量的用户去研究Grafana,Grafana安装很简单,但是配置仪表盘确实耗费时间,刚接触的用户,建议先去Grafana的官方演示站,研究下官方配置的仪表盘, 参考下官方仪表盘的JSON文件:
Grafana Play Home :

IT运维管理社区会员bluetom520发表的文章:
[  /Article/178291]Article/178291[/url]

Zabbix性能调优

问题:
1.Zabbix在单位时间内采集监控大量指标的信息,会出现卡顿或空值的情况吗?为什么?
2.机器超过2000台时,Zabbix安装Proxy最佳实践是什么,有没有什么好的推荐?

[解答]:
  • 关于Zabbix的性能调优,主要从如下几个方面着手:

    • Zabbix配置文件的调优(Poller数量、Timeout等);
    • Zabbix监控项已经触发器表达式的调优(取值间隔、取值类型、触发器表达式函数的选择等);
    • Zabbix数据库表分区,Zabbix在目前的版本(3.2)中,仍需要对数据库做表分区,表分区后,性能的提升是明显;
      关于表分区的脚本,参考《Zabbix企业级分布式监控系统》作者提供的脚本:[  /itnihao/zabbix-book/tree/master/03-chapter]itnihao/zabbix-book/tree/master/03-chapter[/url]
    • Zabbix后端数据库的优化;
    • Zabbix架构的优化,例如引入Proxy等。

  • 回归到IT运维管理社区会员提问的问题,监控项取值为空或Timeout,均为性能问题的一种表现,可以参考上面提到的Zabbix调优方式进行调整优化;
  • 关于部署Porxy,首先强调一点,被监控主机超过2000台,不一定要上Proxy,Proxy部署与不部署,取决于Server端数据库的压力,首先确认Zabbix Server的Poller配置是否合理:

    • Zabbix Queue;
    • Zabbix Busy Process;

  • 其次检查Zabbix的Required server performance, new values per second,这个决定了每秒写入数据库的值,例如2000台主机,有的环境这个值能达到2000+,有的环境甚至1000左右,我们要做的是,尽量去减少这个数值,下面几种方式均能减少此数值:

    • 主机的监控项,是否存在有待优化的监控项,是否可以对此类监控项进行删减;
    • 监控项的取值间隔,是否所有监控项的取值间隔都非常短,是否可以对 对不同的监控项设定不同的取值间隔;
    • 自动发现的监控项,待第一次自动发现后,可以根据自身环境,大幅度延长自动发现列表的取值间隔时间,甚至关闭自动发现。

  • 然后必须对数据库做表分区,如果Innodb有压力,可以换成TokuDB;
  • 最后可以考虑部署Proxy,参考嘉宾bluetom520的回答,每个Porxy管理400-1000台被监控主机。
  • 当然,硬件带来的提升可能会更简单的解决问题,例如普通SATA盘换成SSD等。

Zabbix二次开发
  • 关于Zabbix二次开发的课题,提问者甚少,Zabbix官方文档中,关于Zabbix API方面的介绍还是很详尽的, > [  /documentation/3.0/manual/api]documentation/3.0/manual/api[/url]
  • 熟练使用Zabbix的API,不仅对开发者,甚至对管理员而言,带来的提升都是巨大的,例如我们可以通过Zabbix API编写脚本,进行批量查询、批量修改、批量导出等,推荐Zabbix使用者参考Github一位作者的管理工具: > [  /BillWang139967/zabbix_manager]BillWang139967/zabbix_manager[/url]



原创:everychengxuan




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x




上一篇:云运维自动化实践--国美
下一篇:拥有这7种习惯,你才能实践DevOps
monicazhang

写了 2297 篇文章,拥有财富 12859,被 21 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部