zabbix的原理详解及其搭建

来源:互联网 发布:JavaScript post 编辑:程序博客网 时间:2024/06/07 13:26

Zabbix

 

Zabbix

Zabbix 是一款功能强大的分布式开源监控系统,线上用的也比较多,个人感觉是 cactinagios的整合,又天生自带分布式监控,大批量主机运维监控优势明显.

 

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

       zabbixzabbix server与可选组件zabbix agent两部门组成。

       zabbix server可以通过SNMPzabbix agentping,端口监视等方法提供对远程服务器/网络状态的监视。

       zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

 

Zabbix 通过 C/S模式采集数据,通过B/S模式在web端展示和配置。

被监控端:主机通过安装 agent 方式采集数据,网络设备通过SNMP方式采集数据

Server :通过收集SNMPagent发送的数据,写入数据库(MySQL,Oracle),

再通过 PHP+apache 在 web 前端展示

 

zabbix的主要特点:

          - 安装与配置简单,学习成本低

          - 支持多语言(包括中文)

          - 免费开源

          - 自动发现服务器与网络设备

          - 分布式监视以及WEB集中管理功能

          - 可以无agent监视

          - 用户安全认证和柔软的授权方式

          - 通过WEB界面设置或查看监视结果

          - email等通知功能

           等等

Zabbix主要功能:

         - CPU负荷

         - 内存使用

         - 磁盘使用

         - 网络状况

         - 端口监视

         - 日志监视

 

主机环境: rhel6.5 selinux and iptables disabled

监控主机:server1-172.25.4.1

被监控主机:server4-172.25.4.4

参考文档:www.zabbix.com

 

Zabbix 需要 lamp 环境:

# yum install -y httpd php php-mysql mysql-server

 

1. 安装 zabbix 所需软件包

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-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

 

yum install *

 

2. 配置 mysql 数据库

 

/etc/init.d/mysqld start

(失败时:rm -f  /var/lib/mysql/Mysql.Sock )

 

 mysql

 

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/

#里面存在了三个文件data.sql  images.sql  schema.sql

 

mysql -uzabbix -pwestos zabbix < schema.sql  ##该过程较慢,请耐心等待  

mysql -uzabbix -pwestos zabbix < images.sql

mysql -uzabbix -pwestos zabbix < data.sql

 

3.配置 zabbix server

 vim /etc/zabbix/zabbix_server.conf

 72 DBHost=localhost     #指定数据库主机

 82 DBName=zabbix      #指定数据库名

 98 DBUser=zabbix       #指定数据库用户

106 DBPassword=westos  #指定数据库密码

 

 

4.配置 php

vim /etc/httpd/conf.d/zabbix.conf

 

 13   php_value max_execution_time 300

 14   php_value memory_limit 128M

 15   php_value post_max_size 16M

 16   php_value upload_max_filesize 2M

 17   php_value max_input_time 300

 18   php_value date.timezone Asia/Shanghai  ##修改时区

 

5.启动 zabbix serverzabbix agenthttpd

 

/etc/init.d/httpd start

/etc/init.d/zabbix-server start

/etc/init.d/zabbix-agent start

 

6.登陆 zabbix web

http://172.25.4.1/zabbix按照提示完成安装并登陆:

 

 

 

 

数据库 ip 为 localhost

端口为 3306

数据库名 zabbix

用户为 zabbix

密码为 zabbix

点击 test connection,如果没有问题,则会提示 OK,否则,需要检查数据库授权是否正确


 

 

如果此处提示文件zabbix.conf.php无法创建,则是apache目录无法写入 ,/var/www/html/zabbix 的文件权限不为apche.apache输入以下命令解决

chown -R apache.apache /var/www/html/zabbix

 

Username:Admin

Password:zabbix

 

7.server4上添加agent主机

在被监控端安装软件包:

 

zabbix-2.4.5-1.el6.x86_64.rpm

zabbix-agent-2.4.5-1.el6.x86_64.rpm

 

配置 zabbix agent

vim /etc/zabbix/zabbix_agentd.conf

 

 85 Server=172.25.4.1

126 ServerActive=172.25.4.1

137 Hostname=server4       #主机名需要有解析

 

启动 zabbix agent

/etc/init.d/zabbix-agent start

 

 

8.在 zabbix server 上激活 zabbix agent 自动注册功能,Action 是告警动作,当触发器条件被满足时,就会执行指定的 action

点击 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 自带的监控模版,以 http 服务为例:

1. 点击 Configuration -> Templates 选择需要链接的模版

 

2. 选择需要链接的主机server4

 

也可以在Configuration -> Hosts -> server4 -> Templates 选择需要的模版

 

这样主机 server4 的监控项中就出现了 HTTP 服务

 

2. 监控 zabbix server 上的 mysql 服务

/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 文件中指定了 zabbix agent 如何获取 mysql

服务的各种信息,并在/var/lib/zabbix 目录中新建“.my.cnf”文件,用以指定 zabbix agent 如何登陆

数据库,默认使用的是 zabbix 用户,可以在 zabbix_server.conf 文件中找到密码。

# mkdir /var/lib/zabbix

# vim /var/lib/zabbix/.my.cnf

[mysql]

host = localhost

user = zabbix

password = westos

socket = /var/lib/mysql/mysql.sock

[mysqladmin]

host = localhost

user = zabbix

password = westos

socket = /var/lib/mysql/mysql.sock

 

# /etc/init.d/ zabbix-agent restart

 

如果是监控远程主机的 mysql 服务需要创建 zabbix 用户并授权

yum install -y mysql-server

/etc/init.d/mysqld start

Mysql

Mysql > GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'westos';

Mysql > FLUSH PRIVILEGES;

链接 mysql 监控模版

 

点击 Configuration -> Hosts -> zabbix server Graphs 可以看到两个新的监控图形

I


 

原创粉丝点击