Zabbix 功能
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库
性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)
支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
支持分布式,能集中展示、管理分布式的监控点
扩展性强,server 提供通用接口(api 功能) ,可以自己开发完善各类监控(根据相关接
口编写程序实现)
编写插件容易,可以自定义监控项,报警级别的设置。
数据收集等
可以监控多达10万个设备
优点:
开源,无软件成本投入
Server 对设备性能要求低
支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
开放式接口,扩展性强,插件编写容易
当监控的 item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从
server 端去下载需要监控的 item 然后取数据上传到 server 端。 这种方式对服务器的负载比较
小。
Api 的支持,方便与其他系统结合
缺点:
需在被监控主机上安装 agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要
在数据库。
具体的说明 我这里不多介绍 大家百度一下就出来了 我们直接安装吧
准备篇:一、Web环境:Nginx+MySQL+PHP或者Apache+mysql+php
二、zabbix软件包下载 我这能采用集成的 版本是zabbix-2.2.6.tar.gz 这个汉化过来没乱码 用着挺好
安装篇
一 服务端配置
1.配置前先关闭iptables和SELINUX,避免安装过程中报错。
[[email protected] ~]# service iptables stop
[[email protected] ~]# chkconfig iptables off
[[email protected] ~]# getenforce
Disabled
[[email protected] ~]#setenforce 0
2.安装LAMP环境
[[email protected] ~]# yum install -y httpd mysql mysql-server mysql-devel php php-mysql php-common php-mbstring php-gd php-odbc php-xml php-pear
[[email protected] ~]# service httpd start
[[email protected] ~]# service mysqld start
3.下载zabbix-2.2.6.tar.gz 直接上官网 或者找我要都行
4.安装zabbix所需的组件(server,agent)
[[email protected] ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI
5.创建用户账号(server,agent)
[[email protected] ~]# useradd zabbix
[[email protected] ~]# usermod -s /sbin/nologin zabbix
6.创建zabbix数据库并导入zabbix数据库(server)
[[email protected] ~]#tar zxf zabbix-2.2.6.tar.gz
[[email protected] ~]# mysqladmin -u root password 123456
[[email protected] ~]# mysql -u root -p 123456
mysql> create database zabbix character set utf8; #创建数据库zabbix,并且数据库编码使用utf8
mysql> grant all on zabbix.* to [email protected] identified by ‘123456‘;
mysql> use zabbix;
mysql> source /root/zabbix-2.2.6/database/mysql/schema.sql
mysql> source /root/zabbix-2.2.6/database/mysql/images.sql
mysql> source /root/zabbix-2.2.6/database/mysql/data.sql
mysql> exit
yum install gcc libgcc
7.编译安装,如果是客户端安装选择--enable-agent就行了。
[[email protected] ~]#cd /root/zabbix-2.0.6
[[email protected] zabbix-2.0.6]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl (可以用--prefix=/usr/local/ 指定安装目录)
报错: checking for main in -lmysqlclient... no
configure: error: Not found mysqlclient library
解决:[[email protected] zabbix-2.0.6]# ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib64/mysql/libmysqlclient.so
***********************************************************
* Now run ‘make install‘ *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
make install
8.编辑配置文件
[[email protected] zabbix-2.2.6]# cd /usr/local/etc/
[[email protected] etc]# more zabbix_server.conf #服务端的配置修改如下几个参数 记得先备份
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
[[email protected] etc]# more zabbix_agentd.conf #客户端配置 修改如下参数
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1 #启用自定义key
[[email protected] etc]# touch /var/log/zabbix_server.log
[[email protected] etc]# touch /var/log/zabbix_agentd.log
[[email protected] etc]# chmod 777 /var/log/zabbix_*
9.启动服务(server,agent)
[[email protected] zabbix-2.0.6]# cp misc/init.d/tru64/zabbix_server /etc/init.d/
[[email protected] zabbix-2.0.6]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
[[email protected] zabbix-2.0.6]# chmod +x /etc/init.d/zabbix_*
在文件头部#!/bin/bash下面分别添加两行
#!/bin/sh
#chkconfig: 35 95 95
#description:zabbix Agent server
添加服务
[[email protected] zabbix-2.0.6]# chkconfig --add zabbix_server
[[email protected] zabbix-2.0.6]# chkconfig --add zabbix_agentd
设置服务器开机自动启动
[[email protected] ~]# chkconfig zabbix_server on
[[email protected] ~]# chkconfig zabbix_agentd on
[[email protected] ~]# /etc/init.d/zabbix_server start
Zabbix server started.
[[email protected] ~]# /etc/init.d/zabbix_agentd start
Zabbix agent started.
[[email protected] ~]# ps -ef |grep zabbix
zabbix 1803 1 0 08:21 ? 00:00:00 /usr/local/sbin/zabbix_agentd
zabbix 1805 1803 0 08:21 ? 00:00:00 /usr/local/sbin/zabbix_agentd
zabbix 1806 1803 0 08:21 ? 00:00:00 /usr/local/sbin/zabbix_agentd
zabbix 1807 1803 0 08:21 ? 00:00:00 /usr/local/sbin/zabbix_agentd
zabbix 1808 1803 0 08:21 ? 00:00:00 /usr/local/sbin/zabbix_agentd
zabbix 1814 1 0 08:21 ? 00:00:00 /usr/local/sbin/zabbix_server
root 2043 2006 0 08:23 pts/0 00:00:00 grep zabbix
[[email protected] ~]# netstat -lantp |grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1803/zabbix_agentd
[[email protected] ~]# netstat -lantp |grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 2308/zabbix_server
10.安装zabbix web界面(server)
复制php文件,zabbix的终端程序是用php写的,因此需要一个支持php脚本解析的web服务器。然后将frontends/php下面的php文件拷贝到web服务器html文件目录下面。
[[email protected] zabbix-2.0.6]# cp -r frontends/php /var/www/html/zabbix
[[email protected] html]#service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
11.安装图示
报错:根据提示修改/etc/php.ini文件里的参数
[[email protected] zabbix]# yum install -y php-bcmath
[[email protected] zabbix]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
修改后的图
这个是zabbix的数据库 连接的用户名和密码
这个默认就行
这一个zabbix server端就搞定了O(∩_∩)O~ 简单吧!!!
下面登陆进去
用户名是默认admin 密码 默认zabbix
接下来我们安装 agent
创建用户账号(server,agent)
[[email protected] ~]# useradd zabbix
[[email protected] ~]# usermod -s /sbin/nologin zabbix
[[email protected] ~]#cd /root/zabbix-2.2.6
[[email protected] zabbix-2.2.6]# ./configure --enable-agent (也可以用--prefix=/usr/local/ 指定安装目录)
[[email protected] zabbix-2.2.6]# cd /usr/local/etc/
修改 zabbix_agentd.conf #客户端配置
Server=监控端的ip
ServerActive=监控端的ip
Hostname=自己的主机名
UnsafeUserParameters=1
[[email protected] etc]# touch /var/log/zabbix_agentd.log
[[email protected] etc]# chmod 777 /var/log/zabbix_*
[[email protected] etc]# cd /root/zabbix-2.2.6
[[email protected] zabbix-2.2.6]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
[[email protected] zabbix-2.2.6]# chmod +x /etc/init.d/zabbix_*
[[email protected] zabbix-2.2.6]# vi /etc/init.d/zabbix_agentd
接下来 在浏览器上添加主机就可以了
这是添加后的效果
表示监控成功了 大家可以点击图形 在里面看相关内容 这里的详细信息大家点点就会了 我这里就不详细介绍了
下面我们看看代理 大家知道 这监控端用的是server 但是serve端就一台服务器 如何客户端多了怎么办?如果备监控端在上海有几百台 在北京有几百台 又怎么办?如果这种情况下 在用一个serve端 就会瘫痪 所以我们需要代理 具体效果如图
这样可以大大的提高了服务器的性能 对于分布式的环境来
Zabbix Proxy 用于接收Agent的监控数据,暂时保存然后转发给Server;Zabbix Server 会把配置同步给Zabbix Proxy Zabbix Proxy面向Agent 是作为一个Server。
下面介绍具体安装步骤
1.配置前先关闭iptables和SELINUX,避免安装过程中报错。
[[email protected] ~]# service iptables stop
[[email protected] ~]# chkconfig iptables off
[[email protected] ~]# getenforce
Disabled
[[email protected] ~]#setenforce 0
yum install -y mysql-* 安装mysqld
yum -y install lrzsz
yum install gcc libgcc安装编译插件
创建用户账号
[[email protected] ~]# useradd zabbix
[[email protected] ~]# usermod -s /sbin/nologin zabbix
[[email protected] ~]# service mysqld start
2.上传zabbix
[[email protected] ~]# tar zxvf zabbix-2.2.6.tar.gz 解压
mysqladmin -u root password 123456
[[email protected]~]# mysql -u root -p 123456
mysql> create database zabbix character set utf8; #创建数据库zabbix,并且数据库编码使用utf8
mysql> grant all on zabbix.* to [email protected] identified by ‘123456‘;
mysql> use zabbix;
mysql> source /root/zabbix-2.2.6/database/mysql/schema.sql
安装zabbix proxy 代理时仅仅需要导入schema.sql即可 注意
yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI 安装zabbix所需的组件
[[email protected] mysql]# cd /root/zabbix-2.2.6/
[[email protected] zabbix-2.2.6]# ./configure --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl
[[email protected] zabbix-2.2.6]# cp /usr/local/etc/zabbix_proxy.conf /usr/local/etc/zabbix_proxy.conf.bak 备份
[[email protected] zabbix-2.2.6]# vi /usr/local/etc/zabbix_proxy.conf 修改如下
# 服务器地址
Server=192.168.0.1
# 主机名
Hostname=82-proxy
# 数据库名
DBName=zabbix
# 数据库用户名
DBUser=zabbix
# 数据库密码
DBPassword=zabbixpass
# MYSQL的Socket位置
DBSocket=/opt/lampp/var/mysql/mysql.sock
# 多长时间同步一次。
ConfigFrequency=60
# 添加Fping
FpingLocation=/usr/local/sbin/fping
======================================================================================================
# 修改agentd.conf
vi /usr/local/zabbix/etc/zabbix_agentd.conf
# 本机IP地址,不是SRVER的。
Server=192.168.0.2
# 本机IP地址
ServerActive=192.168.0.2
# 与之前的proxy的配置文件里面的主机名保持一致
Hostname=82-proxy
=========================================================================================
[[email protected] etc]# vi /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
[[email protected] etc]# /usr/local/sbin/zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
[[email protected] etc]# /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
这是我的配置信息 大家可以参照
[[email protected] ~]# grep -Ev ‘^#|^$‘ /usr/local/etc/zabbix_proxy.conf
Server=192.168.0.105
Hostname=proxy.benet.com
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock
ConfigFrequency=60
[[email protected] ~]# grep -Ev ‘^#|^$‘ /usr/local/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1,192.168.0.105
ServerActive=127.0.0.1
Hostname=proxy.benet.com
这里 我说一下 常碰到问题
这个是在图 你添加 的时候的名字 要与配置文件的名字相同
这个错误 请检查 你的机器的主机名
图像添加分布式
这样就成功了
===========================================================================================
接下来 我们讲告警
第一种:使用Zabbix服务端本地邮箱账号发送邮件
一、安装sendmail或者postfix
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
yum install postfix
service postfix start
chkconfig postfix on
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
sendmail和postfix只需要安装一个即可并开启服务即可。
二、安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
echo "zabbix test mail" |mail -s "zabbix" [email protected]
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:[email protected]
三、配置Zabbix服务端邮件报警
1、打开Zabbix
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链
管理-示警媒介类型-Email
名称:Email
类型:电子邮件
SMTP伺服器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP电邮:[email protected]
已经用:勾选
存档
备注:zabbix.sa.huanqiu.com为Zabbix监控端主机名称,建议修改,否则使用默认的localhost.localdomain发送邮件会被当做垃圾邮件拦截。
2、设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介
添加
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链
类型:Email
收件人:[email protected]
其他默认即可,也可以根据需要设置
状态:已启用
存档
3、设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
用户:勾选Admin
选择
仅送到:Email
存档
四、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看[email protected]邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
使用Zabbix服务端本地邮箱账号发送邮件设置完成。
好了 今天就说到这里 下次给大家讲讲用户自定义key值