1.1.1.1. zabbix 概况
1.1.1.1.1. zabbix 简介
Zabbix是一个高度集成的网络监控解决方案,可以提供企业级的分布监控解决方案。
Zabbix通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置。
被监控端:主机通过安装 agent方式采集数据,网络设备通过 SNMP 方式采集数据
Server端:通过收集 SNMP 和 agent 发送的数据,写入数据库( mysql,oracle 等),再通过 php-nginx 或者 php-apache 在 web 前端展示。
1.1.1.1.2. zabbix运行条件
Server :zabbix server 对硬件的要求低,但需要运行在
LNMP(linux+nginx+mysql+php) 或者 LAMP(linux+apache+mysql+php) 环境下
Agent: 目前已有的 agent 基本支持常见的 OS ,包含 Linux, Solaris,SUN, Windows, 等
SNMP: 支持各类常见的网络设备
1.1.1.1.3. 监控过程逻辑图
监控的 zabbix server端进程如下:
1.1.1.1.4. zabbix功能
1 具备常见的商业监控软件所具备的功能(主机的性能监控,网络设备性能监控,数据库性能监控, FTP 等通用协议监控,多种告警方式,详细的报表图表绘制),自带监控模板。
2 支持自动发现网络设备和服务器(可以通过配置自动发现规则来实现)。
3 支持自动发现( low discover ) key 实现动态监控项的批量监控(需要写脚本)。
4 支持分布式,能集中展示,管理分布式的监控点。
5 扩展性强, server 提供通用借口( API 功能),可以自己开发完善各类监控。
6 编写插件容易,可以自定义监控项,报警级别的设置。
7 数据收集可用和性能检测 , 自定义收集数据频率,自定义检测。
8 支持 snmp( 包括 trapping and polling ) ,IPMI, JMX, SSH ,TLENET 。
9 有灵活的触发器,可以定制非常灵活的问题阀值。
10 发送通知,可定制的告警升级,收件人,媒体类型。
11 通知可以使用宏变量有用的变量。
12 自动操作包括远程命令。
13 实时的绘图功能,监控项实时的数据绘制在图形上面。
14 WEB监控能力,可以模拟鼠标点击一个网站,并检测返回值和响应时间。
15 API功能,可以方便的和其他系统结合,包括手机客户端的使用。
优点: server端对设备的性能要求低。
不足:所有的数据都存在数据库里,产生的数据量大,瓶颈主要在数据库。
我们使用 compute中的其中一台服务器作为 zabbix-server ,占用的资源控制在比较小的范围,安装 zabbix 的 server 端以及 zabbix-mysql 数据库,同时,安装完成后,我们将对 zabbix 进行优化,定期删除历史数据,确保监控系统数据库可以永续使用,详细方法内容后续将详细描述。
zabbix现在的版本是 3.4 ,为了稳定,我们使用 3.0 版本。操作系统我们使用 centos7.3 。下面介绍安装方法。
1.1.1.2. 安装 zabbix-server
有四种方法获得 Zabbix:
² 从分发包安装
² 下载最新的源代码档案并自行编译
² 从容器中安装
² 下载虚拟设备
我们这里使用从分发包安装。
1.1.1.2.1. 安装存储库配置包
安装 repository配置包。该软件包包含 yum (软件包管理器)配置文件。
# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
1.1.1.2.2. 安装软件包及 mysql 数据库( mairadb )
以下是 Zabbix服务器和带有 MySQL 数据库的 Web 前端安装示例:
# yum install zabbix-server-mysql zabbix-web-mysql
安装 mariadb数据库:
#yum install mariadb-server -y
在 centos7软件源上现在默认的 mariadb-server 的版本是: 5.5.56
启动 mariadb数据库:
#systemctl start mariadb
设置开机启动:
#systemctl enable mariadb
1.1.1.2.3. 创建初始数据库
通过以下命令在 MySQL上创建 Zabbix 数据库和用户,其中 请用实际的 root 密码(例如 shell> mysql -uroot -p12345 )和 替换为 zabbix 用户在数据库上的新密码(包括撇号:)… identified by '67890'; :
shell> mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '';
mysql> quit;
然后导入初始模式和数据。确保插入正确的版本 3.0.*。系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql-3.0.*/create.sql.gz | mysql -uzabbix -p zabbix
检查您的软件包中的版本,请使用以下命令:
# rpm -q zabbix-server-mysql
1.1.1.2.4. Zabbix服务器的数据库配置
在 zabbix_server.conf中编辑服务器主机,名称,用户和密码,如下所示,其中 DBPassword 是您设置的创建初始数据库的密码:
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=
1.1.1.2.5. 启动 Zabbix服务器进程
启动 Zabbix服务器进程,并启动系统启动:
# systemctl start zabbix-server
# systemctl enable zabbix-server
1.1.1.2.6. PHP配置 Zabbix 前端
Zabbix前端的 Apache 配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些 PHP 设置已经配置好了。但有必要取消注释“ date.timezone ”设置,并为您设置正确的时区。
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 always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
1.1.1.2.7. SELinux配置及防火墙设置
在强制模式下启用 SELinux状态后,您需要执行以下命令以启用 Zabbix 前端到服务器的成功连接:
# setsebool -P httpd_can_connect_zabbix on
由于前端和 SELinux配置完成,您需要重新启动 Apache Web 服务器:
# systemctl start httpd
注:一般情况下会关闭 SELinux 。
如果开启了 firewall,在 iptables 规则中开启 80 端口允许访问:
iptables -I INPUT -p tcp -m tcp --dport 80 -m comment --comment "httpd listen " -j ACCEPT
1.1.1.2.8. Zabbix web初始化
登录 web界面,在浏览器中输入:
http://serverIP/zabbix
其中 serverIP是 zabbix-server 所在的 IP 地址。
1.1.1.2.9. 修改配置文件
生产系统,根据实际情况调整相关参数,修改配置文件 /etc/zabbix/zabbix_server.conf
# cat zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix #数据库密码,根据实际情况修改
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
StartPollers=160
StartTrappers=20
StartPingers=100
StartDiscoverers=20
MaxHousekeeperDelete=5000
CacheSize=1024M
StartDBSyncers=16
HistoryCacheSize=1024M
TrendCacheSize=1024M
HistoryTextCacheSize=512M
AlertScriptsPath=/etc/zabbix/alertscripts
LogSlowQueries=1000
FpingLocation=/usr/sbin/fping
ValueCacheSize=512M
Timeout=30
修改完成后重启服务:
#systemctl restart zabbix-server
1.1.1.3. 安装代理 zabbix-agent
根据不同的操作系统有不同的 Agent。
1.1.1.3.1. Linux Agent安装配置
1.1.1.3.1.1. 安装 zabbix_agentd软件
要在安装正确的存储库 repository配置包后安装,请运行以下命令:
# yum install zabbix-agent
启动代理服务:
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
1.1.1.3.1.2. 修改 zabbix_agentd配置文件:
cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
EnableRemoteCommands=1
LogRemoteCommands=1
Server=127.0.0.1,10.192.1.21 #服务器 IP ,根据实际修改
StartAgents=5
ServerActive=10.192.1.21:10051 #服务器 IP 和端口,根据实际修改
Hostname=DTS-2 #服务器名称,需要与 web 界面配置的 host 名称对应
Include=/etc/zabbix/zabbix_agentd.conf.d/
Timeout=30
在 zabbix管理界面配置 host
1.1.1.3.1.3. 配置 iptables允许 10050 端口
如果 zabbix-agent所在的 linux 主机启用了 iptables 防火墙,则需要在 iptables 中添加一条规则,允许 10050 端口访问,下面是配置方法:
首先运行 service iptables status查看在 filter 的什么位置插入,将下面的 35 替换为实际的位置编号
iptables -I INPUT 35 -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_agentd listen " -j ACCEPT
1.1.1.3.2. Windows Agent安装配置
从下载 Zabbix Agent后,压缩包里面有 2 个目录,一个为 win32 ,另一个是 win64 ,每个目录下应该有 3 个文件,分别为:
zabbix_agentd.exe
zabbix_get.exe
zabbix_sender.exe
根据操作系统不同,将文件放在 c:\zabbix目录下
在 c:\zabbix文件夹中 zabbix_agentd.conf 文件,写入如下内容:
LogFile=d:\zabbix_agentd.log
LogFileSize=10
EnableRemoteCommands=1
LogRemoteCommands=1
Server=192.168.8.31 #服务器 IP ,根据实际修改
StartAgents=5
ServerActive=192.168.8.31:10051 #服务器 IP 和端口,根据实际修改
Hostname=ws2 #服务器名称,需要与 web 界面配置的 host 名称对应
UnsafeUserParameters=1
进入到目标主机的 c:\zabbix目录下,执行如下命令完成客户端的安装:
zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -i
执行如下命令,启动客户端:
zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -s
在服务中启动 zabbix_agentd服务。
在 windows防火墙入站规则开放 10050 端口
如果是云计算虚拟机,在云计算的安全策略中增加入站规则开放 10050端口
在 zabbix管理界面配置 host
1.1.1.4. zabbix的配置使用
1.1.1.4.1. 登录 zabbix
通过本地浏览器访问 : http://serverIP/php 来开始配置和使用 zabbix
默认用户名为 Admin ,密码是 zabbix
1.1.1.4.2. 监控流程
Host Group (设备组 )----->Host (设备) ------->Application( 监控项组 )------->Items( 监控项 )------->Trigger( 触发器 )------>Action( 告警动作 )-------->( 告警方式 )------>User Group( 用户组 )----->User( 用户 )
对于实际使用的时候,一般采用模板进行监控配置。可以先添加主机,然后选择对应模板。
zabbix支持 4 种监控类型:
Agent SNMP JMX IPMI
1.1.1.4.3. 添加主机
1.1.1.4.3.1. 修改为中文界面
点击用户
在【 User】 -----> 【 Language 】 一栏中选择 Chinese(zh_CN) , 点击下方的 【 Update 】 ( 更新 )
中文界面出现:
1.1.1.4.3.2. 添加主机监控
点击【配置】 -----【主机】 ----- 【创建主机】
出现如图界面,填写相应主机的相关信息,注意:群组可以新建,主机采用 agent代理程序接口。
如果是通过 SNMP监控的网络设备,需要将 agent 代理程序接口关闭,填写 SNMP 接口
勾选【已启用】,点击【更新】
1.1.1.4.3.3. 添加主机模板
点击 【模板】 ----【选择】
在 【选择】这个界面中,勾选对应的监控模板,点击下方的选择按钮
这时候看到选择的模板在链接指示器中了,然后点击【添加】
在链接的模板一栏中出现了,可以选择【取消链接】取消这个模板。点击【更新】即可
1.1.1.4.3.4. 监控展示
在【主机】的主界面,看到了刚才添加的主机,
点击【已启用】开启或关闭此项监控
当【 ZBX】 这一项变绿色,表示已经监控上了
如果是网络设备的监控,需要在【宏】中填写相应的团体名
相应的,如果 SNMP这个变绿色了,表示该网络设备已经监控上了
1.1.1.4.3.5. 添加拓扑图
在【监测中】 ----【拓扑图】 ---- 【创建拓扑图】
可以编辑 【所有者】,【名称】,【宽】【高】等相应的设置,点击下方的【更新】
如下出现了该拓扑图,点击【属性】,可以再次修改属性
点击该拓扑图的名称【 XXXX】,进入界面后,点击【编辑拓扑图】
选择【添加】后,出现了一个图标
选中该图标,出现了【地图元素】,可以编辑该图标的属性
【类型】选择 主机;【标签】可以填写 {HOST.NAME} 变量;
【主机】,点击【选择】,可以选取相应的主机
【图标】有一个下拉框,可以选择不同类型,不同大小的图标
【应用】是确认的意思,【移除】可以删除该图标,【关闭】是关闭该地图元素
如果要添加连线,绘制各个设备之间的逻辑关系,选择链接中【添加】,进行相应操作
拓扑图编辑完成后,点击【更新】,起保存的作用
1.1.1.4.3.6. 聚合图形
点击【监控中】 ----【聚合图形】 ----- 【创建聚合图形】
如下图,进行相应的属性设置,然后点击【添加】
点击刚才创建的【农信贷】,进行聚合图的编辑
点击【更改】,进行聚合图属性的编辑,然后点击【更新】,可以看到刚才编辑的拓扑图出现。
先返回,再重新进入聚合图形,点击【 XXX】,进入聚合图,选中任意一个设备,
会出现该主机 快捷的操作列表 ,可以进行相应的快速查询。
1.1.1.4.4. 查看数据和告警
1.1.1.4.4.1. 监控信息概览
在 【监控中】 ----【仪表板】中查看告警信息的概览表,也可以直接点击进入聚合图形
1.1.1.4.4.2. 查看监控数据
在【监测中】 -----【最新数据】里,选择查询条件,点击【应用】,即可看到具体监控指标的数据以及数据的图形展示。
1.1.1.4.4.3. 查看告警信息
在【监测中】 ----【问题】,选择相应的查询条件,点击【应用】可以看到具体的告警信息
1.1.1.4.5. 监控项
除了 zabbix自带的一些模板自动有相应的监控指标,有时候还需要手动创建一些监控项
以交换机的 CPU监控为例,创建监控项
在【配置】 ----【主机】中选择一台交换机所对应的【监控项】
点击【创建监控项】
填写相应的信息:注意选择 snmp开启的版本,和需要提前找到的 OID 号,
完成后,点击【更新】
可以查看刚才已经创建的监控项。点击过滤器中的应用集【 CPU】,下方就出现了。
同样点击【已起用】可以开启及关闭该监控项。
1.1.1.4.6. 触发器
通过触发器可以将监测到的数据按照设定的条件进行告警。
以一台交换机的内存为例,进行触发器告警
在【配置】 ---【主机】选取相应的路由器设备,点击【触发器】
点击【创建触发器】
填写触发器的相关条件,名称,告警等级,特别的在表达式这一项中,选择【添加】
如下图:触发告警条件的设置,完成后选择【插入】,然后回到上个界面,选择更新。
可以看到,刚才的触发器已经添加成功了
同样在【已启动】中可以选择停止或开启此触发器。
在【监测中】 ---【问题】 中可以看到路由器内存这一项已经出现告警
1.1.1.4.7. 邮件告警设置
1.1.1.4.7.1. 开启邮箱
以下在 zabbix server端进行
1. 安装 sendmial
安装 yum install sendmail
启动 service sendmail start
开机自启: chkconfig sendmail on
2. 安装邮件发送工具 mailx
yum install mailx
3. 设置发送邮件的 中继邮箱
打开配置文件: vi /etc/mail.rc
添加内容:
set from=xxx@163.cn
set smtp=smtp.163.com
set smtp-auth-user=xxx@163.com
set smtp-auth-password=xxxxxxx #注意此项是邮箱的客户端授权码,不是密码
set smtp-auth=login
4. 发送测试邮件
echo “ zabbix ” | mail -s “ zabbix ” xxx@qq.com
1.1.1.4.7.2. 编写脚本
1. 脚本路径设置
mkdir -p /etc/zabbix/alertscripts/
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts
2. 重启 zabbix 服务
systemctl restart zabbix-server
3. 编写脚本:
vim /etc/zabbix/alertscripts/sendmail.sh
写入内容如下:
#!/bin/sh
#export.UTF-8
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
/bin/mail -s "$2" $1 < $FILE
touch /tmp/mailtmp.txt
chown zabbix.zabbix /tmp/mailtmp.tx
执行 :wq 保存退出
4. 增加可执行权限
chown zabbix.zabbix /etc/zabbix/alertscripts/sendmail.sh
chmod +x /etc/zabbix/alertscripts/sendmail.sh
5. 给日志授权:
chown zabbix.zabbix /tmp/sendmail.log
6. 测试:
su - zabbix
/etc/zabbix/alertscripts/sendmail.sh xxxx@qq.com “ 邮件标题 ” “ 邮件内容 ”
1.1.1.4.7.3. 登录 zabbix 的 web 界面进行相应的配置
1. 进入告警方式配置界面,创建 sendmail.sh告警方式
在【管理】 ----【用户】中,点击已有的用户 Admin
出现如下界面,选择【报警媒介】 ---【添加】 ---- 【编辑】
编辑的内容如下:
2. 编写报警媒介类型
在【管理】 ---【报警媒介类型中选择 【创建媒介类型】
内容如下:类型选择为脚本,以及三个参数的设置。
3. 设置 zabbix 触发告警的动作
在 【配置】 ----【动作】中点击【创建动作】
编辑的内容如下:这里面可以设置邮件发送的条件,告警的标题,告警的内容
设置触发器,制造一个有告警等级为严重的事件(已设置)
然后查看动作日志
4. 邮件已送到
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com