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

[经验分享] 监控之Zabbix

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2019-1-24 13:56:13 | 显示全部楼层 |阅读模式
  what is Zabbix?
          zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。支持多种采集方式和采集客户端,有专门的Agent(代理)(zabbix-agent支持linux、Unix、windows、Aix、Bsd和Solaris的监控),也可以支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统不可相比的。
  监控系统的基本原理

          一个监控系统往往需要对物理硬件和应用软件的性能、参数进行数据汇集,实现集中管理和统一分析。一个监控系统构成分为监控服务器端程序、数据存储、被采集节点等模块,需要对采集的数据进行分析和处理,判断是否有异常情况,是否满足报警条件。这里涉及到告警条件设置问题?通常是根据实际的经验值、业务需求来设置告警阈值。达到告警条件时,则发送告警信息给管理人员,然而,有些故障是我们希望通过自动处理的,等到程序无法判断的时候,在去通知管理人员。

          监控系统的采集可以分为两种:主动监控和被动监控。一个理想的监控系统,其采集端支持的采集方式应该越多,其扩展能力越强,从而适应不同的场景需求。
          两种数据采集模式介绍
  在大多数监控系统中都支持这两种模式。被动模式对服务器的开销比较大,适合小规模的监控环境;主动模式对服务器的开销较小,适合大规模的监控环境。采集数据得协议方式可以分为两种:专用客户端采集和共用协议采集(其中协议包括snmp、ssh、telnet等)
  常见的监控系统性能采集指标
监控项目详细内容
主机监控
cpu、内存、磁盘剩余空间/利用率 I/O、SWAP使用率、系统UP时间、进程数、负载
网卡监控ping的往返时间及包成功率、网卡流量,包括流入/流出量和错误的数据包数
文件监控监控文件大小,Hash值,匹配查询、字符串存在与否
URL监控检测指定URL访问过程中返回码、下载时间及文件大小,支持内容匹配
应用程序端口和内存使用率、CPU使用率、服务状态、请求数、并发连接数、消息队列的字节数据、Client事物处理数、service状态等
数据库检测数据库中指定表空间、数据库的游标数、Session数、事务数、死锁数、缓冲池命中率、库Cache命中率、当前连接数、进程的内存利用率等
日志错误日志匹配、特定字符串匹配
硬件温度、风扇转速、电压等
  Zabbix安装
    zabbix运行环境为LNMP环境或LAMP环境,其中数据库可以是mysql,可以是oracle、postgresql等。zabbix大体依赖两个条件:1)硬件条件  2)软件条件。其中硬件条件包括1.硬件配置;官网有推荐最低硬件配置要求,如有需要可以自行查找资料了解。2.磁盘容量大小;zabbix-server的数据库大小取决于NVPS(Number of processed values persecond),NVPS从总体上反映了处理速度,与监控项的数目、监控类型、取值间隔、History的保留时间和Trends的保留时间有直接关系。这里可以自行参照《zabbix企业级分布式监控系统》p22有详细介绍。其中软件条件包括:1.zabbix支持的操作系统平台如Linux、Unix、windows等,2.数据库和web环境等相关版本要求。3.zabbix监控中涉及的协议所用到的软件,如通过IPMI协议可以对硬件进行监控,这就需要安装OpenIPMI工具。4.时间同步。不管是监控还是做集群对时间精准度要求都很高。在监控中时间对数据的计算是有影响等。因此需要最好时间同步,如搭建时间服务器,或同步外网的时间服务器,做好时间同步。
  一、yum安装LAMP

  1.1安装主程序

# yum -y install httpd php mysql mysql-server php-mysql  注:目前mysql高版本已经更名为mariadb,所以安装命令变为yum install mariadb
  
  1.2 安装apache扩展
# yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql  1.3 安装php扩展

# yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath  1.4 安装mysql扩展
# yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql  1.5 apache设置首页

# vim httpd.conf
增加DirectoryIndex index.php       #php目录索引  1.6 开机启动

# service httpd start
# chkconfig httpd on
# service mysqld start
# chkconfig mysqld on  1.7 设置mysql数据库root帐号密码。

# mysqladmin -u root password 'fanshine'   二、Zabbix 安装
  (1)zabbix-server服务器端安装
  2.1 yum安装zabbix需要的其他组件

# yum -y install net-snmp-devel curl-devel  2.2 添加zabbix用户

# groupadd zabbix           添加zabbix组            
# useradd zabbix -g zabbix   新建zabbix用户并将其加入到zabbix组  2.3 下载并解压软件

#wget http://prdownloads.sourceforge.net/zabbix/zabbix-2.0.21.tar.gz
# tar zxvf zabbix-2.0.21.tar.gz -C /usr/src
# cd /usr/src/zabbix-2.0.21  2.4 为zabbix创建数据库并添加用户

# mysql -u root -p fanshine
# mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;  #新建一个数据库叫zabbix
# mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123';
#给zabbix这个数据库授权,只允许zabbix这个用户通过本地登录,zabbix用户的密码为zabbix123mysql> flush privileges;  2.5 将zabbix源码包中的数据导入到新建的zabbix数据库
注:导入也要严格按照顺序来。

# shell>mysql -u zabbix -p 'zabbix123' zabbix < /usr/src/zabbix-2.0.3/database/mysql/schema.sql   #这个是zabbix的数据库表结构,要先导入。

# shell>mysql -u zabbix -p 'zabbix123' zabbix < /usr/src/zabbix-2.0.3/database/mysql/images.sql# shell>mysql -u zabbix -p'zabbix123' zabbix < /usr/src/zabbix-2.0.3/database/mysql/data.sql  2.6 编译安装
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2  同时安装server和agent,并支持将数据放入mysql数据中,可使用类似如下配置命令:
  ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2
  如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:
  ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl
  如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:
  ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2
  如果仅安装agent,可使用类似如下配置命令:
  ./configure --enable-agent
  注意:在编译时报错信息及解决如下:
  checking for SSH2 support... no
configure: error: SSH2 library not found
  解决办法:

yum -y install libssh2-devel  上面一个报错解决了,继续./configure,又出现如下错误:
checking for LDAP support... no
configure: error: Invalid LDAP directory - unable to find ldap.h
  解决办法:

yum -y install openldap openldap-devel  而后编译安装zabbix即可:
  # make && make install
  2.7  为zabbix server添加端口

[root@Centos ~] vim /etc/services   [zabbix默认已设置好]
添加如下信息
zabbix-agent    10050/tcp                       # Zabbix Agent
zabbix-agent    10050/udp                       # Zabbix Agent
zabbix-trapper  10051/tcp                       # Zabbix Trapper
zabbix-trapper  10051/udp                       # Zabbix Trapper  2.8  配置文件目录软连接

# ls /usr/local/zabbix/etc
zabbix_agent.conf    zabbix_agentd.conf    zabbix_proxy.conf    zabbix_server.conf
zabbix_agent.conf.d  zabbix_agentd.conf.d  zabbix_proxy.conf.d  zabbix_server.conf.d
# ln -s /usr/local/zabbix/etc /etc/zabbix  2.9 更改配置文件中数据库相关的用户名密码

# vim /etc/zabbix/zabbix_server.conf  修改以下三项:
  DBName=zabbix
  DBUser=zabbix
  DBPassword=zabbix123
注:DBPassword 默认是被注释掉的

# vim /etc/zabbix/zabbix_agentd.conf    Hostname=zabbix server
  ServerActive=192.168.6.242:10051

  2.10 拷贝相应的web程序到相关WEB服务目录下

# cp -r /usr/src/zabbix-2.0.21/frontends/php/ /var/www/html/zabbix/
# chown -R zabbix.zabbix /var/www/html/zabbix  
  2.11拷贝zabbix服务端和客户端启动脚本到/etc/init.d目录下.

# cp /usr/src/zabbix-2.0.21/misc/init.d/fedora/core5/zabbix_server /etc/init.d
# cp /usr/src/zabbix-2.0.21/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d  2.11 修改启动脚本

# vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix/  修改zabbix_server实际位置# service zabbix_server start
Starting Zabbix Server:              [  OK  ]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix/# service zabbix_agentd start
Starting Zabbix Agent:               [  OK  ][root@Centos zabbix-2.0.21]#chkconfig zabbix_server on
[root@Centos zabbix-2.0.21]#chkconfig zabbix_agentd on  注:也可以直接启动
/usr/local/zabbix/sbin/zabbix_server   #启动server服务
/usr/local/zabbix/sbin/zabbix_agentd   #启动agent服务查看zabbix服务是否启动
[root@Centos zabbix-2.0.21]# netstat -tnlp | grep zabbix
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      2120/zabbix_agentd  
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      2044/zabbix_server  
tcp        0      0 :::10050                    :::*                        LISTEN      2120/zabbix_agentd  
tcp        0      0 :::10051                    :::*                        LISTEN      2044/zabbix_server  
  2.12 修改PHP配置文件php.ini内容

# vim /etc/php.ini
date.timezone = Asia/Shanghai
post_max_size = 32M
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
mbstring.func_overload = 2# service httpd restart
Stopping httpd:       [  OK  ]
Starting httpd:       [  OK  ]  
  三、浏览器安装
  
  (1)浏览器打开刚安装的zabbix  http://192.168.137.100/zabbix/php

  点击next,进入下一步:
  
  点击next,进入下一步:
  
  点击next,进入下一步:
  
  点击next,进入下一步:
  
  注:如果出现fail提示,下载zabbix.conf.php配置文件并copy到/var/www/html/zabbix/php/conf下.
  点击Finish,进入登录:默认账号和密码为:Admin   zabbix
  
  之后登录到zabbix首页:
  
  注意:登录后发现一个报错:zabbbix server is not  running:the information displayed may not be current

  解决办法:
  关闭selinux,编辑selinux文件设置:

  SELINUX=disabled
  或临时通过命令关闭
  setenforce 0
  (2)zabbix-agent客户端安装
  2.11 下载并解压软件
  
# wget http://prdownloads.sourceforge.net/zabbix/zabbix-2.0.21.tar.gz
# tar zxvf zabbix-2.0.21.tar.gz -C /usr/src
# cd /usr/src/zabbix-2.0.21  2.12 编译安装
  编译安装只需要指定agent就可以:
  
# cd zabbix-2.0.21
# ./configure --enable-agent
# make && make install  2.13 复制agent启动脚本
# cp /usr/src/zabbix-2.0.21/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/  2.14 编辑配置文件
  # vi /usr/local/etc/zabbix_agentd.conf
  修改:
  Server=127.0.0.1,172.17.0.2
  Hostname=zabbix-server
  ServerActive=172.17.0.2:10051  参数说明:
  Server:被动模式,允许哪台服务器连接agent。
  ServerActive:主动模式,向哪台服务器传送数据。
  一个agent可以同时向多个服务器发送数据,多个ip用逗号分隔。Server=127.0.0.1,172.17.0.2,表示server的Ip为127.0.0.1和172.17.0.2,这两台zabbix-server服务器可获取agent端监控数据。
  

  




运维网声明 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-667086-1-1.html 上篇帖子: zabbix 自动注册 下篇帖子: zabbix3.0.4 邮件告警详细配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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