引言: zabbix是目前系统监控领域的佼佼者,其开源且提供了强大完善的Web界面,并且兼容各种不同的设备和系统,支持多种平台,其背后的公司为Zabbix持续演进提供了技术支持,总之,zabbix是目前流行的一线监控解决方案。本文将详细描述一下整个搭建Zabbix服务的过程以及其中出现的若干问题。

1. 环境准备

Zabbix版本: 2.4.4        系统: Centos 7          Agent:  Linux/Window 2008

官方网站:  www.zabbix.com

2. Zabbix服务端的安装

2.1  检查Apache是否安装

如需安装apache, 则执行: yum install httpd -y

参考资料: http://www.server-world.info/en/note?os=CentOS_7&p=httpd

2.2 安装zabbix

>>    rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

>>    yum install zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent

2.3 安装mysql数据库, 并初始化zabbixdb

关于mysql的安装,可以参考其他相关资料,这里不再赘述。关于zabbix初始化中所需的sql脚本,请从zabbix官方网站上下载源代码,其中包含所需SQL.

以下是mysql命令行下执行的脚本:

 > mysql -u root -p password> use zabbixdb;> source /root/path/schema.sql> source /root/path/images.sql> source /root/path/data.sql> show tables;

这里我设置db的信息: db: zabbixdb, user: zabbixuser password: password

2.4 配置zabbix_server.conf文件

将其中关于数据库方面的信息替换为在2.3中设置的信息:

   [...]DBName=zabbixdb[...]DBUser=zabbixuser[...]DBPassword=password[...]

2.5 启动zabbix-server服务

 > service zabbix-server start> service httpd start> service enable httpd

可选将服务添加进入自动执行:

 chkconfig zabbix-server onchkconfig httpd on 

2.6 修改IPTable策略,开放所需的服务端口

由于Centos 6 和Centos 7两个系统之间,针对iptables的指令发生了较大变化,故针对两者的指令是不同的,需要注意。

在CentOS 6之下,指令如下:

  vi /etc/sysconfig/iptable-configure     #在其中新增下列信息-A INPUT -m state --state NEW -m tcp -p --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p --dport 10051 -j ACCEPT-A OUTPUT -m state --state NEW -m tcp -p --dport 10050 -j ACCEPT

在CentOS 7之下,指令如下:

  firewall-cmd --permanent --add-port=10050/tcpfirewall-cmd --permanent --add-port=10051/tcpfirewall-cmd --permanent --add-port=80/tcpfirewall-cmd --permanent --add-port=3306/tcp

10050 是Agent的端口,Agent采用被动式。 10051是Server的端口,Agent采用主动或者tapper的方式连接server的端口。

关于selinux的安全控制系统,需要自行检查是否已经关闭

检查getenforce, 获取selinux的状态。 编辑config命令,停用selinux

vi /etc/selinux/config
    SELINUX=disabled

关于firewalld服务的状态:

serivce firewalld start/stop
    firewall-cmd --reload  ### reload the configuration info

systemctl restart firewalld

2.6  修改php.ini的设置

vi /etc/php.ini
  => date.timezone =Asia/Shanghai

vi /etc/httpd/conf.d/zabbix.conf
  + Allow from All
 
  Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

2.7 启动服务

   systemctl restart zabbix-serversystemctl start zabbix-agentsystemctl restart httpdsystemctl restart mariadb/mysqlsystemctl enable zabbix-serversystemctl enable zabbix-agent

check=> systemctl status xxx

2.8 设置Zabbix Agent客户端

============================================
  sudo vi /etc/zabbix/zabbix_agentd.conf   #设置正确的ip地址和主机名称
   server
   serverActive
   serverName
 
 ===============================================
 systemctl start zabbix-agent
 systemctl enable zabbix-agent

设置主机名称 in centos7:
 hostnamectl set-hostname xxx --pretty/static

2.7 停用zabbix服务

   systemctl stop zabbix-agent
systemctl stop zabbix-server
systemctl stop httpd
chkconfig zabbix-server off
<pre name="code" class="html">   chkconfig httpd off
systemctl disable zabbix-agent

systemctl disable zabbix-server

</pre></p><p>  实际执行中,会发现zabbix-server经常无法正常的关闭,需要杀死进程方可。</p><p>3. Zabbix在window下的安装</p><p>  3.1 下载安装文件</p><p>      http://www.zabbix.com/downloads/2.4.4/zabbix_agents_2.4.4.win.zip</p><p>  3.2 解压缩至某个目录</p><p>  3.3 修改zabbix_agentd.win.conf</p><p>    Server/ServerActive:  设置为目标的服务器</p><p>  3.4 安装Zabbix服务</p><p>     zabbix_agentd.exe --config "C:\zabbix-agents\conf\zabbix_agentd.win.conf"  --install</p><p>     --uninstall  卸载服务</p><p>  3.5 启停zabbix服务</p><p>     zabbix_agentd.exe --config "C:\zabbix-agents\conf\zabbix_agentd.win.conf"  --start/--stop</p><p>  3.6 参考资料</p><p>     http://www.tecmint.com/install-zabbix-agent-and-add-windows-host-to-zabbix-monioring/</p><p>4. 常见问题的解决</p><p>   4.1 访问页面403错误</p><p>      错误信息:</p><pre code_snippet_id="1571404" snippet_file_name="blog_20160131_8_9280193" name="code" class="html">[root@AY131203102210033c39Z ~]# wget http://127.0.0.1:80
--2016-01-02 21:39:57--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2016-01-02 21:39:57 ERROR 403: Forbidden.

如何解决:

a.  telnet ip port   # 验证端口是否可以访问

b.  卸载apache, 重新安装即可解决。

c.   原因是 apache未能正确启动和设置

4.2  无法正确安装服务

zabbix_agentd.exe --config "D:\Program Files\zabbix-agent-2.4.4\conf\zabbix_agentd.win.conf"  --install
       错误信息:
           zabbix_agentd.exe [33256]: ERROR: cannot connect to Service Manager: [0x00000005] 鎷掔粷璁块棶銆

如何解决:

在启动cmd之时,基于右键的run as administrator(以管理员来运行)

4.3 如何从zabbix db获取单个监控项的数值

基于主机ip,获取主机信息:   select * from zabbixdb.hosts where hostid = 10081    # windows.agent 10106, 获取主机信息

基于主机ip或者itemid, 获取监控项信息: select * from zabbixdb.items where itemid = 23292(hostid=10081)

基于监控项,获取具体的监控值信息: select * from zabbixdb.history_uint hu where hu.itemid = 23292; (23292为具体的item id)

4.4 在执行第三方自定义的script之时,报出如下错误信息, windows2008

错误信息:

[t|无法加载文件 C:\zabbix-agents\scripts\listallprocesses.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。
                + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
                + FullyQualifiedErrorId : RuntimeException]

解决办法:

>>get-ExecutionPolicy

    >> set-ExecutionPolicy RemoteSigned

参考文档: http://www.cnblogs.com/shanyou/archive/2011/09/03/2165371.html

4.5 在设置ExecutionPolicy为RemoteSigned之后,仍然报出ParentContainsErrorRecordException,FullyQualifiedErrorId : RuntimeException之类的错误信息。

错误信息:

[t|无法加载文件 C:\zabbix-agents\scripts\listallprocesses.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。
                + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
                + FullyQualifiedErrorId : RuntimeException]

分析路径: get-ExecutionPolicy已经设置为了RemoteSigned,但是仍然报出这类的错误;操作系统为:windows 2008 R2. 最后确认问题仍然是ps1脚本本身在操作系统范围上的执行控制。

选中ps1文件,解除Block文件的阻止,然后就可以在powershell的执行。

5.   访问监控web工具

基于http://ip/zabbix   即可访问Web控制台。这里不再详述如何基于控制台配置zabbix agent和监控项,我们将另起一篇blog来介绍。

6.  总结

利用周末2天时间,搭建起来了zabbix的监控环境,其中碰到最多的问题是centos6 和centos7之间的变更引发的诸多问题,在搭建起来之后,也加深了对centos 7的理解。

Zabbix监控系统的搭建相关推荐

  1. Zabbix监控系统搭建飞书机器人告警

    Zabbix监控系统搭建&飞书机器人告警 操作系统:CentOS7x64 Zabbix版本:5.0LTS 参考官网链接:下载Zabbix 5.0 LTS for CentOS 7, MySQL ...

  2. 搭建zabbix监控系统

    要想实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的选择,而zabbix监控系统则在众多监控软件中脱颖而出. zabbix是一个基于web界面的企业级开源监控软件,Zab ...

  3. 运维必备——Zabbix监控系统

    目录 一.关于Zabbix (1)什么是Zabbix (2)Zabbix具备的功能 (3)Zabbix的官方网站 (4)Zabbix的一些重要组件 (5)Zabbix的进程 (6)Zabbix的工作原 ...

  4. 部署Zabbix监控平台,配置及使用Zabbix监控系统,自定义Zabbix监控项目

    案例1:常用系统监控命令 案例2:部署Zabbix监控平台 案例3:配置及使用Zabbix监控系统 案例4:自定义Zabbix监控项目 1 案例1:常用系统监控命令 1.1 问题 本案例要求熟悉查看L ...

  5. 运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机

    前言 API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.提供API所定义的功能的软件称作此API的实现.API是一种接口,故而是一种抽象. 应用 ...

  6. zabbix监控系统时间的问题

    分类: 监控 2013-03-19 21:40:11 发现zabbix监控系统时间的一个问题! zabbix监控系统时间用的key是system.localtime,返回当前的系统时间,而配置tigg ...

  7. linux服务器系统_利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现...

    服务器时间校准是非常重要的,因为很多应用服务都是需要基于时间的,服务器系统时间如果不准确的话就会产生很多问题.虽然我们可以通过部署NTP时间服务器来进行校准,但是有时候感觉还不够保险,而这往往也是很多 ...

  8. srs流媒体服务器windows_基于SRS构建的直播平台的监控系统的搭建思路与实现方法...

    市面直播平台百家争鸣,直播监控系统是判断一个直播平台是否完善的必要条件.文章简要介绍了笔者搭建的一套基于SRS的直播平台,并从设计思路.实现方法与实现过程等方面重点介绍了针对此直播平台建设的监控系统, ...

  9. Zabbix监控系统系列之五:SNMP监控Windows客户端

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

最新文章

  1. 密恐警告:超2000万张,全球最大的人眼图像数据集开源了
  2. boost::python::detail::copy_ctor_mutates_rhs相关的测试程序
  3. Lie to me不错
  4. 冠榕智能灯光控制协议分析(controller-node) 2
  5. TensorFlow 2.0 - tf.saved_model.save 模型导出
  6. 米莱迪机器人加物理攻击_王者荣耀:“不死流”白起崛起,秒回8500血完克米莱迪...
  7. 数据库创建时间,更新时间设计
  8. 白班夜班不是你想做就做,一切都得听安排
  9. Qt4_写FTP客户端
  10. 架构如何为业务和技术“服务”(2)
  11. python 文件转base64
  12. 巧用金山网盾对付游戏插件强行锁定主页
  13. 图的表示(无权图和有权图)
  14. 【精】JAVA各大厂问题汇总-HELLO XF
  15. 多人协作共享画板——多人画板的bug及分析
  16. 案例复盘:从上海首例遗弃犬只案看 如何精准研判舆情争议点
  17. 记一次拯救NAS硬盘
  18. 每周一计-自己动手做的电源
  19. 【正点原子FPGA连载】 第十七章 RS485串口通信实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  20. C#使用mouse_event函数模拟鼠标事件

热门文章

  1. Android自定义Lint检查-CustomLint
  2. matlab中removeback的意思,remove是什么意思
  3. 如何解决数据库高并发?
  4. 解决edge浏览器无法打开pdf文件问题
  5. 沿着“云云协同”的桥梁,奔赴全面云化的产业之海
  6. 国外著名大学(计算机,通信及电子方面学院)
  7. android studio记账,Android Studio——记账本以及图表可视化实现
  8. 区块链需要c语言和linux嘛,区块链技术如何运作?使用什么开发语言?
  9. 微信小程序 购物车简单实例
  10. 路由器重温——ISIS路由-2