一.Zabbix简介
Zabbix 是一款功能强大的分布式开源监控系统,线上用的也比较多,个人感觉是cacti和nagios的整合,又天生自带分布式监控,大批量主机运维监控优势明显
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
Zabbix 通过 C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装 agent 方式采集数据,网络设备通过SNMP方式采集数据
Server 端:通过收集SNMP和agent发送的数据,写入数据库(MySQL,ORACLE等),
再通过 php+apache 在 web 前端展示
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
Zabbix运行条件:
Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低。
Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows。
SNMP:支持各类常见的网络设备
1.2 Zabbix功能
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制) 支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。
1.3 优劣势
优点:开源,无软件成本投入;Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。
缺点:中文资料较少。
官方也提供了安装资料:http:///wiki/howto/monitor
默认的用户名为 admin,密码是zabbix
使用 zabbix 进行监控之前,要理解zabbix监控的流程。
一次完整的监控流程可以简单描述为:
Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers
(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users
(用户)
1.Server
zabbix系统核心进程,轮询并捕获数据、发送通知等。是zabbix agent和zabbix proxy汇报数据的对象。server自身可远程检测网络服务。所有的前后端配置、统计信息、可操作数据存储于此。包含server、前段界面和后端DB几部分。
2.Agent
部署在被监控主机上用于监控本地资源和应用并向zabbix server汇报结果。使用本地系统调用故非常高效。
2. 有主动和被动两种检测模式。被动模式下agent根据server或proxy的具体请求来返回数 据。主动模式下先主动由server获取监控项列表在检测并返回新的数据。采用主动或被动检测取决于相应监控项的配置。angentd 的作用就是获取 host 数据,然后将收集到的数据发送给 server(主动模式)。或者是server 主动来拿取数据(被动模式)。
3.Proxy
可以自由选择部署或者不部署,主要用于分担server的负载。在集中化监控远程位置、分支、网络的场景中是很好的解决方案。可从被监控设备收集数据缓存在proxy本地后传递给其所属的zabbix server。proxy需要单独的数据库。
host
需要被监控的设备,如交换机、路由器、WEB服务器、DB服务器等
host group
被监控设备的逻辑分组,如DB服务器一组、WEB服务器一组等。可包含主机和模板。用于权限控制
item
需要被监控的项,如CPU空闲率、某一块磁盘的使用率等
trigger
用于评估收到的监控值是否超出设定的阈值的逻辑表达式
event
如trigger状态改变等值得注意的事件
action
预先定义的响应event的一系列operations
escalation
执行action中的operations的定制场景;一连串的发送通知、执行远程命令
media
传递notification的方式
notification
通过media发送给用户的关于某个event的消息
remote command
在被监控机器上触发并自动执行的预定义命令
template
用于简化和加速主机上大规模监控任务的部署。包含一系列项目,如items, triggers, graphs, screens, applications, low-level discovery rules
application
逻辑组中的一组items
web scenario
一个或多个HTTP request用以检查web站点可用性
frontend
zabbix的web界面
zabbix api
允许通过JSON RPC 协议创建、更新和获取zabbix对象如,hosts, items, graphs and others。或者执行其他任务
zabbix server
zabbix核心,履行监控,与zabbix proxies、zabbix client交互、计算trigger、发送notification、存储数据等任务
zabbix agent
部署在被监控主机上用于监控本地资源和应用
zabbix proxy
可代zabbix server收集数据分担处理负载
zabbix的配置文件一般有三种:
zabbixserver的配置文件zabbix_server.conf
zabbixproxy的配置文件zabbix_proxy.conf
zabbix_agentd的配置文件zabbix_agentd.conf
1. zabbix server的配置文件:
Zabbix agentd的配置文件
Zabbix proxy的配置文件
默认开启 ,现在关闭 server5/6
/etc/init.d/gmetad stop
chkconfig gmetad off
/etc/init.d/gmond stop
chkconfig gmond off
netstat -antlp
Zabbix 需要 lamp环境
zabbix
server5 zabbix-server
安装套件 yum install -y fping-2.4b2-16.el6.x86_64.rpm
iksemel-1.4-2.el6.x86_64.rpm
iksemel-utils-1.4-2.el6.x86_64.rpm
php-bcmath-5.3.3-26.el6.x86_64.rpm
php-mbstring-5.3.3-26.el6.x86_64.rpm
zabbix-2.4.5-1.el6.x86_64.rpm
zabbix-agent-2.4.5-1.el6.x86_64.rpm
zabbix-get-2.4.5-1.el6.x86_64.rpm
zabbix-server-2.4.5-1.el6.x86_64.rpm
zabbix-server-mysql-2.4.5-1.el6.x86_64.rpm
zabbix-web-2.4.5-1.el6.noarch.rpm
zabbix-web-mysql-2.4.5-1.el6.noarch.rpm
server6 zabbix-agent
scp zabbix-2.4.5-1.el6.x86_64.rpm zabbix-agent-2.4.5-1.el6.x86_64.rpm root@172.25.19.6:/root
yum install zabbix-2.4.5-1.el6.x86_64.rpm zabbix-agent-2.4.5-1.el6.x86_64.rpm -y
server5
/etc/init.d/mysqld start (失败时: rm -f /var/lib/mysql/mysql.sock )
cd /var/lib/mysql/
mysql -uroot -pwestos
create database zabbix character set utf8 collate utf8_bin; 创建数据表
grant all privileges on zabbix.* to zabbix@localhost identified by 'westos'; 给zabbix权限 并建立用户
quit;
cd /usr/share/doc/zabbix-server-mysql-2.4.5/create/
mysql -uzabbix -pwestos zabbix < schema.sql 请耐心等待
mysql -uzabbix -pwestos zabbix < images.sql
mysql -uzabbix -pwestos zabbix < data.sql
cd /etc/zabbix/
vim zabbix_server.conf
【
DBPassword=westos 107行 #指定zabbix数据库密码
】
cd /etc/httpd/conf.d/
vim zabbix.conf
【
# php_value date.timezone Europe/Riga 28行 如果/etc/php.ini 改过了就不要动 。 应该Aisa/Shanghai
】
cd /etc/zabbix/
vim zabbix_agentd.conf
【
Hostname=server5.example.com 137 行
】
/etc/init.d/zabbix-server start
/etc/init.d/httpd start
/etc/init.d/zabbix-agent start
server6
cd /etc/zabbix/
vim zabbix_agentd.conf
【
Server=172.25.19.5 78行
ServerActive=172.25.19.5 129 行
Hostname=server6.example.com 144行
】
/etc/init.d/zabbix-agent start
server 5
cd /etc/zabbix/
vim zabbix_server.conf
【
#ServerActive=127.0.0.1 注释掉就不用自己向主机发送,hosts没有server5.example.com
StartDiscoverers=5 178行
】
/etc/init.d/zabbix-server restart
浏览 172.25.19.5/zabbix
usrname: Admin
password: zabbix
zabbix server 上激活 zabbix agent自动注册功能
点击 Configuration -> Actions -> Create action按下图所示设置
自定义 Action 的名字。
Conditions 选项卡保持默认即可。
Operations 选项卡添加如下:
Add host:自动注册主机添加到 hosts列表
Add to host groups:自动注册主机加入 linux servers组(组名可以自定义)
Link to templates:自动注册主机应用模板 Template OS linux
点击 Configuration -> Hosts 可以看到新加的主机:
Zabbix 的更多功能值得大家一起研究和分享。
来看看 zabbix 是怎样添加服务监控项的,利用zabbix自带的监控模版,以http服务为例:
添加httpd
1. 点击 Configuration -> Templates 选择需要链接的模版
2.
3. 选择需要链接的主机 server6example.com
4. 也可以在 Configuration -> Hosts -> server2.example.com -> Templates选择需要的模版
5.
yum install httpd -y
cd /var/www/html/
vim index.html
【
server6
】
/etc/init.d/httpd start
去图形界面添加该模块
添加 mysql
yum install -y mysql-server
/etc/init.d/mysqld start
mysql -uroot -pwestos
grant select on nagbd.* to fanan@localhost identified by 'westos';
flush privileges;
在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf文件中指定了zabbix agent如何获取mysql
mkdir /var/lib/zabbix
cd /var/lib/zabbix/
vim .my.cnf
【
[mysql]
host = localhost
user = fanan
password = westos
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = fanan
password = westos
socket = /var/lib/mysql/mysql.sock
】
/etc/init.d/zabbix-agent restart
去图形界面添加该模块
链接 mysql 监控模版
点击 Configuration -> Hosts -> zabbix server Graphs可以看到两个新的监控图形
Email 报警
图形界面
点击 administration -> Media types -> Email
点击 Administration -> Users 进入 Admin 管理员Media选项卡
点击configuration -> Actions 点击Triggers Enabled
QQ 邮箱做的实验,由于server5.example.com是没有域名解析的,会被QQ
入白名单。
关掉 httpd mysql ,看是否发短信
110monitor
tar zxf alert-agent-4.1.3.1-linux-x64.tar.gz -C /usr/lib/zabbix/alertscripts/
cd /usr/lib/zabbix/alertscripts/
cp alert-agent/plugin/zabbix-plugin/110monitor .
chown -R zabbix.zabbix *
图形界面
点击 administration -> Media types ->create media types
点击 Administration -> Users 进入 Admin 管理员Media选项卡
点击configuration -> Actions 点击Triggers create
关掉 httpd mysql ,看是否发短信
打开网页:110monitor.com
登陆 XXXXXX@qq.com
redhat007
OneAlert 文档 ->集成方法-> zabbix ->通用性安装
Server 7 zabbix-proxy
zabbix proxy
Yum install -y zabbix-2.4.5-1.el6.x86_64
zabbix-proxy-2.4.5-1.el6.x86_64
zabbix-proxy-mysql-2.4.5-1.el6.x86_64
fping-2.4b2-16.el6.x86_64.rpm
yum install -y mysql-server
cd /etc/zabbix/
vim zabbix_proxy.conf
[ server = 172.25.9.5
Hostname = server7.example.com
DBPassword=westos
Configfrequency=600
]
Mysql
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';
mysql -uzabbix -pwestos zabbix_proxy < schema.sql
/etc/init.d/zabbix-proxy start
Server6
Vim /etc/zabbix/zabbix_agentd.conf
#severactive=172.25.9.5
Server=172.25.9.7
/etc/init.d/zabbix_agent restart
因篇幅问题不能全部显示,请点此查看更多更全内容