设为首页 收藏本站
查看: 1046|回复: 0

[经验分享] Linux监控软件之 Zabbix

[复制链接]
发表于 2019-1-25 11:59:58 | 显示全部楼层 |阅读模式
  
  一、简介
    Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
  官方网站:http://www.zabbix.com
  官方文档:http://www.zabbix.com/documentation/2.0/manual/quickstart
  

  1、功能

    具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。
  

  2、说明

    Server:指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监控数据并使用apache+php的方式呈现。即Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下。
    Agent:指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。目前已有的agent基本支持市面常见的OS,包含Linux、Solaris、Sun、windows等。
    SNMP:也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。
    IPMI:Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。
  

  3、Zabbix架构
    Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下图所示。

  

  

  二、环境说明
  
  

Hostname
IPSoftware
server192.168.0.115apache、mysql、mhp、zabbix20、zabbix20-agent、zabbix20-server、zabbix20-server-mysql、zabbix20-web、zabbix20-web-mysql、net-snmp-devel
client192.168.0.114zabbix20-agent
  关闭防火墙:iptables -F,SELINUX=disabled

  

  

  三、安装配置
  1、服务端安装zabbix

  1)安装epel的扩展源
  [root@server ~]# yum install -y epel-release
  

  2)安装lamp环境
  [root@server ~]# yum install -y  httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring
  

  3)安装zabbix服务
  [root@server ~]# yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel
  

  2、服务端配置数据库
  1)修改mysql配置文件
  [root@server ~]# vim /etc/my.cnf        //修改或增加如下内容

[mysql]
default-character-set = utf8

[mysqld]
character_set_server = utf8
  

  2)启动httpd和mysqld服务

  [root@server ~]# /etc/init.d/httpd start
  [root@server ~]# /etc/init.d/mysqld start
  

  3)建数据库以及导入数据

  [root@server ~]# mysql -uroot  -e  "create database zabbix"        //创建库名为:zabbix
  [root@server ~]# mysql -uroot -e "grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix';"
                                                                             //新建一个用户为:zabbix,密码为:zabbix
  [root@server ~]# mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql
  [root@server ~]# mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/images.sql
  [root@server ~]# mysql -uroot -p --default-character-set=utf8  zabbix < /usr/share/zabbix-mysql/data.sql
  

  3、服务端配置zabbix
  1)编辑zabbix服务配置文件
  [root@server ~]# vim /etc/zabbix/zabbix_server.conf            //找到这三项
  
  DBName=zabbix                           //数据库名
  DBUser=zabbix                              //用户名
  DBPassword=zabbix                      //用户密码
  

  2)启动zabbix服务

  [root@server ~]# /etc/init.d/zabbix-server start
  [root@server ~]# /etc/init.d/zabbix-agent start
  

  我们可以查看下zabbix-server和zabbix-agent是否启动起来:
  [root@server ~]# ps aux | grep zabbix
  也可以查看下zabbix-server和zabbix-agent监听的端口:

  [root@server ~]# netstat -lnp | grep zabbix
  

  4、网页上安装zabbix
  1)浏览器输入: http://192.168.0.115/zabbix

  

  说明:
  
  这里最上面提示waring,说未设置timezone,下面我们设置timezone

  [root@server ~]# vim /etc/php.ini           //找到添加一行  
  date.timezone='Asia/Chongqing'
  
  重启httpd服务
  [root@server ~]# /etc/init.d/httpd restart      
  刷新页面后,waring提示消失。
  

  2)接着点击next,会出现如下参数Fail。

  
  

  我们编辑配置php.ini文件
  [root@server ~]# vim /etc/php.ini                  //修改以下参数
  
  post_max_size = 16M
  max_execution_time = 300
  max_input_time = 300
  
  重启httpd服务
  [root@server ~]# /etc/init.d/httpd restart
  点击Retry,全部显示OK;
  接着点击Next,输入账号密码后点击Test connection,显示OK;
  

  
  

  3)点击Next,其他默认,只输入Name 为0.115(可以自定义);点next,再点next,最后点finish。
默认管理员账号为:admin,密码为:zabbix 。最后进入到网页服务端。
  

  
  

  注意

  这时可能会遇到“zabbix server is not running the information displayed may not be current”这样的错误:
  
  解决思路:
  1)需要编辑一下 /etc/zabbix/zabbix_server.conf ,配置DBUser, DBPassword

  2)一定要关闭selinux
      临时关闭:setenforce 0,立即生效
      永久关闭:vim /etc/selinux/config,修改SELINUX=disabled,重启Linux才可生效
  

  

  5、接入要监控的客户端主机
  1)客户端安装zabbix20-agent
  [root@client ~]# yum install zabbix20-agent
  

  2)编辑配置文件
  [root@client ~]# vim /etc/zabbix_agentd.conf
  
  Server=192.168.0.115                                         //服务端IP
  ServerActive=0.0.0.0:10050                                 //监听的端口
  Hostname=tpp                                                    //自定义,但是要唯一
  启动客户端
  [root@client ~]# /etc/init.d/zabbix-agent start
  

  3)在服务端执行命令
  
  [root@server ~]# zabbix_get -s 192.168.0.114 -p10050 -k "system.hostname"
  client                               //显示出了客户端的hostname,说明可以正常通信
  

  4)在web界面下,点”configuration” --> “hosts” --> 右上角点”Create Host”  
  host name为:tpp  (自定义)
  visible name为:tpp   (自定义)
  groups:Linux servers
  ip address 写入客户端ip:192.168.0.114
  其他的默认即可。
  配置监控项目模板:点“Templates”, 点 "add", 在弹出的小窗口中选择Template OS Linux, 然后点select, 最后点save
  然后我们可以在 "Monitoring" --> "Latest data" 下查看到刚添加的Host "tpp",也可以查看各状态

  注意:

  若报错:Received empty response from Zabbix Agent at [192.168.0.115]. Assuming that agent dropped connection
  
  可以查看客户端的/etc/zabbix_agentd.conf配置文件是否正确。
  

  5)自定义templates
Zabbix自带了很多模板,模板中有很多监控项目,比如CPU、网卡、内存、进程等等。使用系统自带模板有点太多了,所以我们可以自定义模板。
  
点configuration 选择 templates,点右上角的create template --> Template name和Visible name  自定义,Groups 选择templates, 点save。
  然后我们去挑选一些项目拷贝到该模板下:比如我们找到Template OS Linux
  
点一下items,选择我们想要的项目,然后在下面选择copy selected to … 然后点go ,Group 选择templates, 找到刚才我们自定义的templates,点copy,点configuration 选择 templates可以看到新建的templates中已经有刚刚我们copy的items了。
  我们可以使用和上面相同的方法自定义拷贝Triggers(触发器 ),它用来设置告警的阀值,当然我们也可以自定义编辑它。



  监控客户端网卡流量     http://www.apelearn.com/bbs/thread-8091-1-1.html
  

  

  四、zabbix 配置邮件告警
  设置触发器的目的是为了让监控的服务实现告警, 那告警如何告呢, 下面我们来配置一下邮件告警。发邮件是服务器通过自己的 sendmail 服务发出的,有时候如果配置不合适或者服务没有启动,我们是发不出邮件的。
  1、测试邮件服务
  [root@server ~]# yum install -y sendmail
  [root@server ~]# /etc/init.d/sendmail start
  [root@server ~]# echo "test mail" |mail -s  "test" 1933306137@qq.com   
  [root@server ~]# mailq
  说明

  "test mail"为邮件内容

  "test"为主题
  "1933306137@qq.com"为收件人
  "mailq"是查看是否发送成功。
  如果是虚拟机,很有可能是收不到邮件的,但如果是真机还是可以收到的,只不过很有可能在垃圾邮件箱里。除了sendmail 服务外,我们还可以用 postfix 服务发邮件。
  

  2、配置邮件告警

  1) 配置报警脚本
  [root@server ~]# mkdir -p /home/zabbix/bin                         //邮件告警脚本存放目录
  [root@server ~]# vim /home/zabbix/bin/baojing.sh               //告警脚本,写入以下内容
  
  #! /bin/bash

  echo "$3" |/bin/mail -s "$2" $1                         //$3为邮件内容,$2为主题,$1为收件人
  保存后,修改文件的权限

  [root@server ~]# chmod +x /home/zabbix/bin/baojing.sh
  
  2)修改zabbix_server配置文件
  [root@server ~]# vim /etc/zabbix_server.conf             //修改如下内容

  
  AlertScriptsPath=/home/zabbix/bin/                         //用户自定义的 media types 脚本

  ExternalScripts=/home/zabbix/bin/                           //用户自定义的检查的脚本(item)
  

  3)在浏览器配置

  创建 mediea types:
  "Administration" -->"Media types",点击右上角"Create Media Type"其中 Description 填"baojing" 或其它自定义名称,Type 选择"Script",Script name填"baojing.sh"然后点"Save"。
  创建 user:
  "Administration"--> "Users" 在右上角,选择"Users",点击"Create User", alias: test1,自定义 name 和 lastname password:123456;groups 选择 guests, 回到上面点一下 media -->type 选择 baojing,send to 写要发送邮件的邮箱,点 add, 最后点 save。
  创建 action:
  "configuration" --> actions,右上角"Create Actions", Name 自定义,我这里写"baojing",其他默认,然后点右侧的"Operations"下的"New"按钮,"Operation Type"选择"Send message",“Send to User groups”选择一个或多个要发送消息的用户组, Send to Users 选择我们之前新增的 test1, “Send only to”选择 baojing , 点一下 add,最后点 save。
  到这里我们的告警服务就配置完成了。
  
  
  

  

  关于中文问题:
  
  1、更改为中文界面:
  最右上角 Print-->Language :Chinese(zh_CN)
  2、有乱码(方框):
  yum 安装的zabbix 字体位置可以通过查看配置文件:/usr/share/zabbix/include/defines.inc.php
  define('ZBX_FONTPATH', '/usr/share/fonts/dejavu');
  我们需要下载一个中文字体放到这里来,虽然这个目录下有个 DejaVuSans.ttf  但是不管用
  [root@server ~]# wget 'http://downloads.sourceforge.net/project/wqy/wqy-microhei/0.2.0-beta/wqy-microhei-0.2.0-beta.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwqy%2Ffiles%2Fwqy-microhei%2F0.2.0-beta%2F&ts=1365584502&use_mirror=jaist' -O wqy-microhei-0.2.0-beta.tar.gz
  [root@server ~]# tar -zxvf wqy-microhei-0.2.0-beta.tar.gz
  [root@server ~]# scp wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
  


  

  参考文章  
  自定义脚本:http://www.linuxidc.com/Linux/2013-11/92476.htm
  zabbix agent 类型所有key:http://www.iyunv.com/thread-22959-1-1.html
  zabbix中文配置指南:http://waringid.blog.运维网.com/65148/955939/
  


  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667433-1-1.html 上篇帖子: zabbix trigger 和actions配置 下篇帖子: centos的zabbix自定义脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表