lrx182125 发表于 2019-1-20 11:52:47

zabbix介绍和安装

引子:文章分为3段
  1.zabbix介绍,包括架构,组件工作流程等。

  2.zabbix安装,yum安装和编译安装
  3.zabbix-web登录界面和中文修改
  
  

zabbix介绍
Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
官方网站:http://www.zabbix.com


zabbix的架构:


Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。
Zabbix运行条件:
Server:
Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低
Agent:
目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows
SNMP:
支持各类常见的网络设备。



http://s3.运维网.com/wyfs02/M00/70/06/wKioL1WwJmDT3a5zAAKDe_f4sH8302.jpg
  

  

zabbix架构中所用到的组件:
   



Zabbix sever:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行;


Database storage:专用于存储所有配置信息,以及由zabbix收集的数据


Web interface:zabbix的GUI接口,通常与server运行在同一台主机上;


Proxy:可选组件,常用于分布监控环境中,代理server收集部分被监控端的监控数据并统一发往server端;


Agent:部署在被监控主机上,负责手机本地数据并发往server端或porxy端;


    zabbixweb、zabbix-server、zabbix-database可以部署在同一台机器上,也可以分开布置。
  

http://s3.运维网.com/wyfs02/M02/70/09/wKiom1WwJHzSXM35AAFddu-CfO8193.jpg
Zabbix常用的术语




  主机(host):要监控的网络设备,可由IP或DNS名称指定。
  主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一组内的主机和模板不能互相连接;主机组通常在给用户或用户组指派监控权限时使用;
  监控项(item):一个特定监控指标的相关的数据,这些来自于被监控对象;item是zabbix进行收据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都由“key”进行标识;
  触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阀值;接收到的数据量大于阀值时,触发器状态将从“OK”转变为“problem”,当数据量再次回归到合理范围时,其状态将从“problem”转换回“OK”;
  事件(event):即发生的一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;
  动作(action):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);
  



  报警升级(escalation):发送警报或执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
  媒介(media):发送通知的手段或通道,如Email,Jabber或SMS等;
  通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
  远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
  模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至单个主机
  应用(application):一组item的集合;
  Web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求;
  前端(frontend):zabbix的web接口
  

zabbix的工作流程


    结合下图和上面的术语解释会更直观:
    步骤不是固定只是这样解释更好理解。
1、定义一个item.
2、获取此item的数据,图中是zabbix的polle进程去获取数据(后续有解释zabbix进程).
3、获取的item的数据数值超出了Trigger中对此item定义的阀值,Trigger由OK转换为problem状态.
      同时会触发Events,如果有设置Action的话会触发.

4、Actions会执行动作.
5、新获取的item数据重新低于阀值,Trgger回到OK状态.报警停止.事件会保存.


    在host中定义item,针对各item设置Trigger.因为需要定义的item和Trigger太多,可以直接在host中套用
Template(模板),模板中定义了好了item和Trigger以及需要展示的Graphs.
    也可以设置一个host group,对一组机器进行操作,如设置模板,定义某item等等.

    不想某host或host group报警的话,可以设置为Maintenance(维护),这样即使触发了triggers也

不会触发actions和events.
  

http://s3.运维网.com/wyfs02/M01/70/09/wKiom1WwJHyBaLFGAAGnK_marlQ896.jpg
  

zabbix服务端运行的进程
    zabbix-server运行后一般可能会出现以下进程,有的不会出现。





watchdog:监控以下进程,发现进程不在就重新启动。
housekeep:items过期数据清理。
alerter:执行报警
poller:拉取数据的,会出现过个poller并行去拉取数据。
httppoller:web页面数据拉取的专用poller。
discoverer:agent发现机制
Pinger:基于ping探测节点存活。
db_config_syscer:数据库配置同步器(多个数据库场景时,多用于集群)
db_data_syscer:数据库数据同步器(多个数据库场景时,多用于集群)
node watcher:监控节点。
timer:计时器
escalator:报警升级
  

  

zabbix安装
  

  

  
yum安装zabbix






    1.建立LAMP环境
                安装mysql,httpd,php
       #yum -yinstall   mysql-server httpd php
            service httpd start
             service mysqld start




    2. 新建zabbix组和用户(系统用户、系统组)


         #/usr/sbin/groupadd-r zabbix
         #/usr/sbin/useradd -g zabbix-r zabbix
  





    3.安装zabbix的repo源
            rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
   
                可以登录此url: http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/,找到如下图的rpm包.按实际下载.
  

  http://s3.运维网.com/wyfs02/M01/70/06/wKioL1WwJmCy5-raAABYIozcwUw948.jpg

  



   4.zabbix包安装


                使用yum安装非常简单,不需要去处理包之间的关系。不过此处需要注意的是
      在安装zabbix-server包的时候,在yum解决包依赖关系的时候有时会下载pgsql,
      而不是想要的mysql,需要注意一下.




      Servier端
      Yum –y install zabbix            \\zabbix公共组件
      Yum –y install zabbix-server          \\zabbix-server端专用包
      Yum –y insatll zabbix-server-mysql      \\zabbix-server端mysql
      Yum –y install zabbix-get   \\服务器端组件,用于get获取数据
      Yum –y install zabbix-java         \\   监控java程序组件
      Proxy端
      Yum –y install zabbix            \\zabbix公共组件
      Yum –y install zabbix-proxy\\proxy端专用包
      Yum –y install zabbix-proxy-mysql\\proxy端mysql
      Agent端
      Yum –y install zabbix            \\zabbix公共组件
      yum –y install zabbix-agent\\agent专用包
      Yum –y install zabbix-sender\\用户agent 主动发送数据
      Web
      Yum –y insatll zabbix-web
      Yum –y insatll zabbix-web-mysql
      因为我们实验机:zabbix-server,zabbix-agent,zabbix-web 是在一台机器上的,proxy不在这次实验
            Yum install zabbix zabbix-server zabbix-server-mysql zabbix -getzabbix-web zabbix-web-mysql zabbix-agent zabbix-sender


  

    5.mysql设置:




    创建一张表取名zabbix,设置utf8字符集
    CREATE DATABASE zabbix CHARACTER SET utf8
  





    为zabbix表,创建一个用户:zabbix密码:zabbix访问条件:localhost权限:ALL
      GRANT ALL on zabbix.* TO'zabbix'@‘localhost' IDENTIFIED BY 'zaxpass';
  



  



            Zabbix_sql脚本导入mysql
            cd/usr/share/doc/zabbix-server-mysql-2.4.*/create/
            这里可以看到3个sql脚本,将他们导入到之前建立的mysql,zabbix表中
                data.sql   images.sql   schema.sql
                按以下顺序导入
                #mysql zabbix < schema.sql
             #mysql zabbix < images.sql
             #mysql zabbix < data.sql


    6.修改相关配置文件




配置修改ZabbixService 配置文件
vim /etc/zabbix/zabbix_server.conf




DBUser=zbxuser
DBPassword=zabbix




修改php时区
/etc/php.ini            在;date.timezone=
增加一行,别忘了删除掉;,;是注释
timezone = Asia/Shanghai.




关闭防火墙:
Service iptable stop
或者vi /etc/sysconfig/iptables,增加以下内容:添加80端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


            至此yum安装zabbix完毕,下一步使用web登录zabbix,配置zabbix。






编译安装zabbix
  
    创建zabbix组和以zabbix为组的zabbix用户
      #groupadd zabbix
      #useradd –g zabbix zabbix
      1.准备好安装包,上官网下载合适的安装包,这里使用的是zabbix-2.4.1.tar.gz
      2.为方便安装包的统一管理都安装在/opt下
      #tar zxvf zabbix-2.4.1.tar.gz
      #cd /opt/zabbix-2.4.1.tar.gz
      开始编译
      #./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --enable-ipv6 --with-libcurl
      #make && make install


      先开启mysql(之前的chkconfig只是设置开机启动并没有将服务启动。)设置mysqlroot密码为123456
      #service mysql start
      #mysqladmin-u root password 123456
      在mysql内创建zabbix库,设置字符为UTF8
      #mysql –uroot –p123456
      #create datebase zabbix character setutf8;
      # grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
      #quit
      (注意mysql命令后面必须带上‘;’否则命令会失败)
    将zabbix表导入数据库
      #cd /root/zabbix-2.0.4/database/mysql/
      #mysql -uzabbix -p123456 zabbix < schema.sql
      #mysql -uzabbix -p123456 zabbix < images.sql
       #mysql -uzabbix -p123456 zabbix < data.sql


      复制程序和修改配置文件
      复制配置文件到zabbix安装目录


      #cp -R /opt/zabbix-2.4.1/conf/zabbix_agentd/usr/local/zabbix/etc/
      #cp /opt/zabbix-2.4.1/conf/zabbix_agentd.win.conf/usr/local/zabbix/etc/
      #cp /opt/zabbix-2.4.1/conf/zabbix_proxy.conf/usr/local/zabbix/etc/
      然后修改zabbix_server.conf配置文件数据库(mysql)相关部分:
      #vim /usr/local/zabbix/etc/zabbix_server.conf
      修改以下内容:
      DBUser=zabbix
      DBPassword=123456


      先看下服务端口是否添加若没有则添加
      grep zabbix /etc/services
      http://s3.运维网.com/wyfs02/M00/70/09/wKiom1WwJH-zDXx5AACkpSz4C7o072.jpg
  

  

  

      若有以上内容则不需要其他操作,若没有。
      则修改/etc/services文件,在文件末尾追加以上内容


      修改zabbix目录属性
            #chown –R zabbix.zabbix /user/local/zabbix
      配置软连接
      启动zabbix前,做相关软连接,不然会报错:找不到库文件。
      这里安装的是64位系统:
      #ln -s /usr/local/iksemel/lib/libiksemel.so.3 /usr/lib64/libiksemel.so.3
    假如是32位系统:
      #ln -s /usr/local/iksemel/lib/libiksemel.so.3 /usr/lib/libiksemel.so.3
    接着为 zabbix 命令行操作文件做链接,方便系统可以找得到。
      #ln -s /usr/local/zabbix/bin/* /usr/bin/
      #ln -s /usr/local/zabbix/sbin/* /usr/sbin/




      设置用service命令 启动脚本
          拷贝zabbix启动脚本到/etc/init.d/下。
          #cp /opt/zabbix-2.4.1/misc/init.d/fedora/core/zabbix_* /etc/init.d/
     
          修改zabbix启动脚本中程序目录的位置。
          vim /etc/init.d/zabbix_server
          需要修改内容如下:
            BASEDIR=/usr/local/zabbix
      vim /etc/init.d/zabbix_agentd
         需要修改内容如下:
      BASEDIR=/usr/local/zabbix
      并添加可执行权限:
      #chmod +x /etc/init.d/zabbix_server
         #chmod +x /etc/init.d/zabbix_agentd
  

添加开启启动
#chkconfig --add zabbix_server
#chkconfig --add zabbix_agentd
#chkconfig --level 345 zabbix_server on
#chkconfig --level 345 zabbix_agentd on
添加完,则使用命令chkconfig –list|grep zabbix查看下是否成功
   修改web相关配置
#mkdir /var/www/html/zabbix
#cp -a /opt/zabbix-2.4.1/frontends/php/* /var/www/html/zabbix/
#chown -R zabbix.zabbix /var/www/html/zabbix/
然后对php配置文件做相应的调整
vim /etc/php.ini
修改以下内容(具体工作环境配置内容需要改变):
max_execution_time = 600
max_input_time = 600
memory_linit = 256M
post_max_size=32M
upload_max_filesize =16M’
date.timezone =PRC(或者就Asia/Shanghai)
修改完直接重启apache服务
#service httpd restart
#service zabbix_server restart
#service zabbix_agentd restart


编译安装完毕!!下一步使用web登录zabbix,配置zabbix。
  

配置zabbix
  http://192.168.1.108/zabbix/
  

  

http://s3.运维网.com/wyfs02/M02/70/09/wKiom1WwJHzS_PewAAEPuBkodmI094.jpg
  

  

http://s3.运维网.com/wyfs02/M00/70/09/wKiom1WwJHvRJPaWAAFxvZv2N-s932.jpg
  此处有报错的话就检查报错。
http://s3.运维网.com/wyfs02/M02/70/06/wKioL1WwJmGjajBIAAEIoOe_B6c772.jpg
  host:填写zabbix-server的ip地址或主机名。
http://s3.运维网.com/wyfs02/M01/70/09/wKiom1WwJHzzHHqNAAExXo25nSM822.jpg
  

  

http://s3.运维网.com/wyfs02/M00/70/06/wKioL1WwJmSBMlCYAADsJQe0oU4312.jpg
http://s3.运维网.com/wyfs02/M02/70/06/wKioL1WwJmHglL4sAAEpFC-BwtM109.jpg
  

  到了此处说明zabbix服务端的安装已经完成.下面讲解zabbix的使用。
  

  

  

  修改成中文:
          若不习惯英文可以调节成中文(右上角)
http://s3.运维网.com/wyfs02/M02/70/06/wKioL1WwKJyQUDfPAABSREQjBBs206.jpg
      

http://s3.运维网.com/wyfs02/M00/70/09/wKiom1WwJH_zGupjAAFho9DyV6E190.jpg保存后,最终如下图


http://s3.运维网.com/wyfs02/M00/70/06/wKioL1WwJmHB2JOEAACp1FPLpcc178.jpg
  

  

  

  解决zabbix图中出现中文乱码情况
  设置zabbix的语言为中文时,图中的中文会变成方块。如下图:
  

  

http://s3.运维网.com/wyfs02/M01/70/06/wKioL1WwJmSyS7e7AAKp5r8s_dw040.jpg
  

     这个问题是由于zabbix的web端没有中文字库导致的,需要把中文字库加上即可。

         具体操作如下:
                  a在windows系统中的c:\windows\fonts目录中拷贝一个自己喜欢的字体文件出来,
                         例如:simkai.ttf (楷体 常规 )。
                  b把拷贝出来的字体上传到zabbix server 上 /var/www/html/zabbix/fonts目录下。
                  c将zabbix server 上fonts目录下原来的“DejaVuSans.ttf”改名。例如为“DejaVuSans.ttf.bak”
                            cd /var/www/html/zabbix/fonts
                            mv DejaVuSans.ttf/var/www/html/zabbix/fonts/DejaVuSans.ttf.bak。
                  d将上传上去的文件改成“DejaVuSans.ttf”
                              mvsimkai.ttf/var/www/html/zabbix/fonts/DejaVuSans.ttf
                  e刷新下web页面会发现原来中文乱码的地方都正常的
  

  

http://s3.运维网.com/wyfs02/M01/70/06/wKioL1WwJmDyq7heAALmdfggzbU085.jpg
  

  

  

  后续还会修改,有错误请各位不吝指出,谢谢。
  

  

  




  




页: [1]
查看完整版本: zabbix介绍和安装