Linux监控平台(主被动模式,添加监控主机,添加图形,处理图形乱码,远程执行命令)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Linux监控平台(主被动模式,添加监控主机,添加图形,处理图形乱码,远程执行命令)

简介:

一、主动模式和被动模式(针对客户端)

主动模式:客户端使用完数据后,每隔自定义事件主动上报给服务端

应用环境:当客户端数量非常多,建议使用主动模式,这样可以降低服务端的压力。


被动模式;服务端会主动连接客户端,客户端被动连接,把监控信息传递给服务端

应用环境:服务端有公网ip,客户端只有内网ip,但是能连接外网,可以主动上报。 这种场景适合主动模式。



二、添加监控主机

添加主机:

再添加主机之前,我们要先添加一个主机群组,在配置中

主机群组的右上角有一个创建主机

1.png

然后点主机,右上角有一个创建主机

3.png


2.png

应用集;应用集就是监控项的集合,更加方便的管理监控项

监控项:每一项都是监控的数据

触发器:针对某一个监控项设置一个告警规则

图形:每一个数据zabbix都有记录,会形成一个图表

自动发现规则:自动发现的项目

web场景:监控一个网站或者一个网址。


三、添加图形

添加模板:

可以自定义一个常用模板,方便给新增主机添加监控项目

自定义litongyao模板

把其他自带模板里面的某些监控项目(比如cpu,内存等)复制到aming模板里

定义触发器

添加图形

自动发现,发到Template OS Linux,点击右侧的自动发现,参考Mounted filesystem discovery和Network interface discovery定义规则

可以直接导出,倒入模板,然后删除不需要的对象


删除的话要先取消连接,更新后先删监控项,再删应用集。


四、处理图形乱码

处理图形中的乱码

设置为中文后,zabbix图形的中文文字会显示小方框

这是因为在zabbix字体库中没有中文字体。需要从windows上借用一个过来。

1515229142.png

[root@zhuji ~]# vim /usr/share/zabbix/include/defines.inc.php

它定义的路径是“fonts”,它是一个相对路径,绝对路径为/usr/share/zabbix/fonts/


[root@zhuji fonts]# ll

lrwxrwxrwx 1 root root 33 1月   5 17:04 graphfont.ttf -> /etc/alternatives/zabbix-web-font

[root@zhuji fonts]# ll /etc/alternatives/zabbix-web-font

lrwxrwxrwx 1 root root 38 1月   5 17:04 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf

我们发现他是软连接,再看配置文件。“ZBX_GRAPH_FONT_NAME”所定义的“graphfont”,它是一个文件,绝对路径为/usr/share/zabbix/fonts/graphfont 我们需要做的就是找到一个支持中文的字体,复制到该路径下。


window中,存放字体的地址是C:\Windows\Fonts\,找到一个中文字体,把它复制到桌面上,然后上传的linux的/usr/share/zabbix/fonts/中,并改名为graphfont.ttf

之前的文件改名不要让它生效。我们发现刷新页面乱码消失

[root@zhuji fonts]# mv graphfont.ttf graphfont.ttf.bak

[root@zhuji fonts]# mv STFANGSO.TTF graphfont.ttf


1515230441(1).png


五、zabbix远程执行命令


概述

监控,有的人只把他当做报警使用,出现问题之后打开跑回家打开电脑处理掉,大多数时候都是一些已知问题,为何不让zabbix帮你把这些事情处理掉呢?

Zabbix远程执行命令可以做些什么:

1)重启应用(apache/nginx/mysql)。

2)自定义执行脚本。

3)使用IPMI接口重启服务器。

4)自动释放磁盘空间(删除老文件,清除/tmp目录等等)。

5)CPU过载时将一个虚拟机迁移到另外一个物理服务器。

6)云环境下,一台服务器CPU\硬盘\内存\其他硬件资源不足的情况下,可以自动添加过去。

Zabbix远程执行命令注意事项:

1)远程执行命令是server端向agent端执行,不支持主动模式的agent;

2)不支持代理模式;

3)zabbix用户必须对命令具有执行权限,可以使用sudo赋予root权限(配置sudo无密码方式);

4)远程命令只是执行,执行成功与否并不检测并确认,可在” Monitoring–>Events”中查看action执行时,或在”Reports–>Action log”中查看远程命令是否执行成功(成功为” Executed”)。

配置zabbix远程执行命令

创建一个报警,记得使用邮件报警吗?实际上,我们把发送邮件的操作改成执行远程命令就行了。

Zabbix agent不支持远程命令,远程命令最大长度为255字符,同时支持多个远程命令,如需要执行多条命令,只需要另起一行写命令即可,但最好自定在agent端定义一个脚本,直接让zabbix执行脚本即可。还有,远程命令可以使用宏变量。

1)配置zabbix-agent端

首先我们需要在zabbix agent端开启对远程命令的支持,修改配置文件zabbix_agentd.conf中的参数,然后重启客户端:

1

EnableRemoteCommands = 1

另外,在执行命令时确保你的zabbix用户有执行权限,如果某些命令需要root权限,那么请使用sudo。编辑sudoer文件,zabbix用户便可以执行nginx -s reload命令了。

1

2

zabbix ALL=NOPASSWD: ALL

zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start

2)配置zabbix-server端

ConfigurationàActionsà Operation,其中operation type改成Remote Command,然后写上要在zabbix-agent执行的命令即可。如下图:

Zabbix远程执行命令

 

Type:IPMI、custom script、ssh、telnet、global script。

如果你要执行自定义的脚本,如下操作:

Zabbix远程执行命令

直接执行脚本即可。











本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2068451,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: