iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
分布式系统监视系统
我们为什么需要监控? 严格来说,线上的服务器如果没有监控,是不允许上线的,在真实的生产环境中,我们运维工作,需要时时刻刻了解我们线上平台的运行状态,服务器出现故障的时候方便我们直观的去依靠监控平台去排除问题。
常用的开源监控系统有哪些? 运维工作就是大部分时候都是通过各种工具来让我们完成特定的任务,监控也是如此,目前也有很多开源的监控软件可提供我们使用。
常见的开源监控介绍:
• Cacti:通过snmpget来获取数据,使用RRDTool来绘制图形,使用php语言编写,提供强大的数据展示功能,但是在故障报警方面不是很擅长。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
• Nagios:异常强大的报警功能,多节点监控,但是数据图形展示的功能薄弱,因此经常整合Cacti来进行监控。
• Zabbix:融合Cacti和Nagios的大部分功能,通过Web界面提供分布式的网络监控。
• NetXMS:丰富的工具集,多平台遵循GPL许可机制,并在不借助外部插件的前提下以原生方式支持大量平台的网络监控。
• Zenoss:开源网络管理工具,运行在红帽企业Linux和社区企业操作系统,另还可利用VMware Plyer运行在最小配置的centos中。
• OpenNMS:多平台,大规模数据管理,定制仪表盘,超一万大多款插件的网络监控平台。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
ZABBIX分布式监控系统
I.简介• zabbix (音同 zæbix)是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
• zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/
• 解决存在的各种问题。
• zabbix Server由 2 部分构成,zabbix server 与可选组件 zabbix agent。
• zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据
• 收集等功能,它可以运行在 Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X 等平台上。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
II.功能特点
- 安装与配置简单,学习成本低
•- 支持多语言(包括中文)
•- 免费开源
•- 自动发现服务器与网络设备
•- 分布式监视以及 WEB 集中管理功能
•- 可以无 agent 监视
•- 用户安全认证和柔软的授权方式
•- 通过 WEB 界面设置或查看监视结果
•- email 等通知功能 Zabbix
• 主要功能:
• - CPU 负荷
• - 内存使用
• -磁盘使用
• - 网络状况
• - 端口监视
• - 日志监视。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
• zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
• database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
• web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
• proxy(代理服务器):可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
• agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;
• b) 工作流程
• agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将 数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式。
• 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy;
• 被动:server向agent请求获取监控项的数据,agent返回数据。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
zabbix进程
默认情况下zabbix包含以下5个程序:
(1)zabbix_agentd
客户端守护进程,此进程收集客户端数据,如CPU负载、内存、硬盘使用情况。
(2)zabbix_get
zabbix工具,单独使用命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用于用户排错,例如在Server端获取不到客户端的内存数据时,我们可以使用zabbix_get获取客户端的内容来做故障排除。
(3)zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(4)zabbix_server
服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都将提交到server。
(5)zabbix_proxy
代理守护进程,功能类似server,唯一不同的是一个中转站,需要把收集到的数据提交到server.
(6)zabbix_java_gateway
java网关,类似agentd,用于java方面主动去获取数据。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
zabbix相关术语
• 主机(host)
要监控的网络设备,可由IP或DNS名称指定。
• 主机组(host group)
主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用。
• 监控项(item)
一个特定监控指标的相关数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由“key"标识
• 触发器(trigger)
一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阀值;接收的数据量大于阀值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理时又转变为"OK"。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
• 事件(event)
触发一个值得关注的事情,比如触发器状态的转变,新的agent或重新上线的agent的自动注册等。
• 动作(action)
指对与特定事件先定义的处理方法,如发送通知,何时执行操作。
• 报警升级(escalation)
发送警报或执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等
• 媒介(media)
发送通知的手段或者通道,如Email,Jabber或者SMS等。
• 通知(notification)
通过选定的媒介向用户发送的有关某事件的信息。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
• 远程命令(remote command)
预定义的命令,可在被监控主机处于某特定条件下时自动执行。
• 模板(template)
用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可直接链接某个主机。
• 应用(application)
一组item的集合
• Web场景(web scennario)
用于检测web站点可用性的一个或多个HTTP请求。
• 前端(frontend)
zabbix的web接口。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
zabbix监控模式
• Server-agentd模式
这个是最简单的架构,常用于监控主机比较少的情况下。
• Server-proxy-agentd模式
常用于比较多的机器,使用proxy进行分布式监控,有效的减轻Server端的压力。
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
龙芯3A300部署Zabbix3.2一.源码编译安装
一).服务器端mysql数据库和依赖安装
(1)安装mysql数据库:
命令:yum install mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm mysql-server -y;
(2)数据库安装完成后启动数据库服务
命令:systemctl enable mysqld; systemct start mysqld;
(3)登录数据库:mysql -u root -p
(4)创建zabbix数据库,设置数据库编码格式utf8;
命令:create database zabbix default charset utf8;
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(5)新建用户zabbix_user,并设置密码:123456;
命令:use mysql;
insert into user(Host,User,Password) values('127.0.0.1','zabbix_user',password('123456'));
刷新:flush privileges;
(6)允许账户zabbix_user能从本机链接数据库zabbix;
grant all on zabbix.* to 'zabbix_user'@'127.0.0.1' identified by '123456' with grant option;
(7)导入数据表,下载zabbix-3.2.6.tar.gz版本并解压
tar -zxvf zabbix-3.2.6.tar.gz -C/home
cd /home/zabbix-3.2.6/database/mysql 查看文件如下所示:
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(8)进入zabbix数据库:
use zabbix;
按顺序导入数据库,否着导入会提示错误;
source /home/zabbix-3.2.6/database/mysql/schema.sql;
source /home/zabbix-3.2.6/database/mysql/images.sql;
source /home/zabbix-3.2.6/database/mysql/data.sql;
在没登录数据库时可用如下方式进行数据库导入:
mysql -u zabbix_user -p 123456 -h 127.0.0.1 zabbix < /home/zabbix-3.2.6/database/mysql/schema.sql
mysql -u zabbix_user -p 123456 -h 127.0.0.1 zabbix < /home/zabbix-3.2.6/database/mysql/images.sql
mysql -u zabbix_user -p 123456 -h 127.0.0.1 zabbix < /home/zabbix-3.2.6/database/mysql/data.sql
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(9)添加软链接:
cd /usr/lib64/mysql #32位系统为/usr/lib/mysql,注意系统版本同,文件版本可能不一样,这里是18.0.0
ln -s libmysqlclient.so.18.0.0 libmysqlclient.so
#添加软连接
ln -s libmysqlclient_r.so.18.0.0 libmysqlclient_r.so
#添加软连接
二).安装zabbix Sevre 和Agent
(1)添加用户
#创建用户组zabbix
groupadd zabbix
#创建用户zabbix,并且把用户zabbix加入到用户组zabbix中
useradd zabbix -g zabbix -s /bin/false
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(2) 添加链接并编译源码进行安装:
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2 #添加软连接
./configure –build=mipsel-linux –host=mipsel-linux --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql =/usr/bin/mysql_config
make #编译
make install #安装
(3) 添加系统软链接
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/ #添加系统软连接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/ #添加系统软连接
说明:find / -name mysql_config 查找位置,如果没有mysql_config,需要安装yum install mysql-devel
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(4) 添加zabbix服务对应的端口
vim /etc/services #编辑,在最后添加以下代码
查看是否已添加如下代码,若未添加则在文件尾添加:
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(5)修改zabbix下zabbix_server.conf配置文件
vi /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=123456 #数据库密码
ListenIP=127.0.0.1 #数据库ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
#zabbix运行脚本存放目录
(6)修改zabbix下zabbix_agentd.conf配置文件
vi /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1 #启用自定义key
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(7)添加开机启动脚本
cp /home/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/ #服务器端
cp /home/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/ #客户端
chmod +x /etc/rc.d/init.d/zabbix_server #添加执行权限
chmod +x /etc/rc.d/init.d/zabbix_agentd #添加执行权限
chkconfig zabbix_server on #添加开机启动
chkconfig zabbix_agentd on #添加开机启动
(8)修改zabbix开机启动脚本中的安装目录
vim /etc/rc.d/init.d/zabbix_server #编辑服务器端配置文件
BASEDIR=/usr/local/zabbix#zabb
ix安装目录
vim /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
BASEDIR=/usr/local/zabbix/#zabb
ix安装目录
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(9)修改php设置(也可默认)
vi /etc/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
(10)修改防火墙设置和SELINUX设置
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
systemctl restart firewalld
setsebool -P httpd_can_connect_zabbix=1
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
三).配置WEB站点
(1)配置web站点
cp /home/zabbix-3.2.6/frontends/php /usr/share/zabbix/
chown –R 777 /usr/share/zabbix/
(2)启动zabbix服务
systemctl daemon-reload
service zabbix_server start #启动zabbix服务端
service zabbix_agentd start #启动zabbix客户端
(3)编辑文件 /etc/httpd/conf.d/zabbix.conf
vi /etc/httpd/conf.d/zabbix.conf
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
将以下内容之粘贴到zabbix.conf中
<Directory "/usr/share/zabbix/conf"> Require all denied
</Directory>
<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
(4)修改httpd.conf并重启服务
修改etc/httpd/conf/httpd.conf中153行
打开IncludeOptional conf.d/*.conf 使其配置文件生效
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl restart httpd
systemctl restart mariadb
(5)控制他配置web服务
http://127.0.0.1:8080/zabbix/
如后图配置:数据zabbix数据库名、数据库用户和密码,并测试
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
安装完成,生成配置文件位置
:/usr/share/zabbix/conf/zabbix.conf.php
iSOFT INFRASTRUCTURE SOFTWARE CO., LTD
普华基础软件股份有限公司
设置语言,选择中文安装完成.
详情见官网:https://www.zabbix.com/documentation/3.2/start