首页 > 代码库 > zabbix介绍 安装 运用 配置 代理 告警 的使用
zabbix介绍 安装 运用 配置 代理 告警 的使用
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,避免安装过程中报错。
[root@zabbix ~]# service iptables stop
[root@zabbix ~]# chkconfig iptables off
[root@zabbix ~]# getenforce
Disabled
[root@zabbix ~]#setenforce 0
2.安装LAMP环境
[root@zabbix ~]# yum install -y httpd mysql mysql-server mysql-devel php php-mysql php-common php-mbstring php-gd php-odbc php-xml php-pear
[root@zabbix ~]# service httpd start
[root@zabbix ~]# service mysqld start
3.下载zabbix-2.2.6.tar.gz 直接上官网 或者找我要都行
4.安装zabbix所需的组件(server,agent)
[root@zabbix ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI
5.创建用户账号(server,agent)
[root@zabbix ~]# useradd zabbix
[root@zabbix ~]# usermod -s /sbin/nologin zabbix
6.创建zabbix数据库并导入zabbix数据库(server)
[root@zabbix ~]#tar zxf zabbix-2.2.6.tar.gz
[root@zabbix ~]# mysqladmin -u root password 123456
[root@zabbix ~]# mysql -u root -p 123456
mysql> create database zabbix character set utf8; #创建数据库zabbix,并且数据库编码使用utf8
mysql> grant all on zabbix.* to zabbix@localhost 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就行了。
[root@zabbix ~]#cd /root/zabbix-2.0.6
[root@zabbix 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
解决:[root@zabbix 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.编辑配置文件
[root@zabbix zabbix-2.2.6]# cd /usr/local/etc/
[root@zabbix etc]# more zabbix_server.conf #服务端的配置修改如下几个参数 记得先备份
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
[root@zabbix 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
[root@zabbix etc]# touch /var/log/zabbix_server.log
[root@zabbix etc]# touch /var/log/zabbix_agentd.log
[root@zabbix etc]# chmod 777 /var/log/zabbix_*
9.启动服务(server,agent)
[root@zabbix zabbix-2.0.6]# cp misc/init.d/tru64/zabbix_server /etc/init.d/
[root@zabbix zabbix-2.0.6]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
[root@zabbix zabbix-2.0.6]# chmod +x /etc/init.d/zabbix_*
在文件头部#!/bin/bash下面分别添加两行
#!/bin/sh
#chkconfig: 35 95 95
#description:zabbix Agent server
添加服务
[root@zabbix zabbix-2.0.6]# chkconfig --add zabbix_server
[root@zabbix zabbix-2.0.6]# chkconfig --add zabbix_agentd
设置服务器开机自动启动
[root@zabbix ~]# chkconfig zabbix_server on
[root@zabbix ~]# chkconfig zabbix_agentd on
[root@zabbix ~]# /etc/init.d/zabbix_server start
Zabbix server started.
[root@zabbix ~]# /etc/init.d/zabbix_agentd start
Zabbix agent started.
[root@zabbix ~]# 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
[root@zabbix ~]# netstat -lantp |grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1803/zabbix_agentd
[root@zabbix ~]# 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文件目录下面。
[root@zabbix zabbix-2.0.6]# cp -r frontends/php /var/www/html/zabbix
[root@zabbix html]#service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
11.安装图示
直接http://IP/zabbix
报错:根据提示修改/etc/php.ini文件里的参数
[root@zabbix zabbix]# yum install -y php-bcmath
[root@zabbix zabbix]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
修改后的图
这个是zabbix的数据库 连接的用户名和密码
这个默认就行
这一个zabbix server端就搞定了O(∩_∩)O~ 简单吧!!!
下面登陆进去
用户名是默认admin 密码 默认zabbix
接下来我们安装 agent
创建用户账号(server,agent)
[root@zabbix ~]# useradd zabbix
[root@zabbix ~]# usermod -s /sbin/nologin zabbix
[root@zabbix ~]#cd /root/zabbix-2.2.6
[root@zabbix zabbix-2.2.6]# ./configure --enable-agent (也可以用--prefix=/usr/local/ 指定安装目录)
[root@zabbix zabbix-2.2.6]# cd /usr/local/etc/
修改 zabbix_agentd.conf #客户端配置
Server=监控端的ip
ServerActive=监控端的ip
Hostname=自己的主机名
UnsafeUserParameters=1
[root@localhost etc]# touch /var/log/zabbix_agentd.log
[root@localhost etc]# chmod 777 /var/log/zabbix_*
[root@localhost etc]# cd /root/zabbix-2.2.6
[root@localhost zabbix-2.2.6]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
[root@localhost zabbix-2.2.6]# chmod +x /etc/init.d/zabbix_*
[root@localhost 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,避免安装过程中报错。
[root@zabbix ~]# service iptables stop
[root@zabbix ~]# chkconfig iptables off
[root@zabbix ~]# getenforce
Disabled
[root@zabbix ~]#setenforce 0
yum install -y mysql-* 安装mysqld
yum -y install lrzsz
yum install gcc libgcc安装编译插件
创建用户账号
[root@zabbix ~]# useradd zabbix
[root@zabbix ~]# usermod -s /sbin/nologin zabbix
[root@proxy ~]# service mysqld start
2.上传zabbix
[root@proxy ~]# tar zxvf zabbix-2.2.6.tar.gz 解压
mysqladmin -u root password 123456
[root@proxy~]# mysql -u root -p 123456
mysql> create database zabbix character set utf8; #创建数据库zabbix,并且数据库编码使用utf8
mysql> grant all on zabbix.* to zabbix@localhost 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所需的组件
[root@proxy mysql]# cd /root/zabbix-2.2.6/
[root@proxy zabbix-2.2.6]# ./configure --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl
[root@localhost zabbix-2.2.6]# cp /usr/local/etc/zabbix_proxy.conf /usr/local/etc/zabbix_proxy.conf.bak 备份
[root@localhost 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
=========================================================================================
[root@localhost 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
[root@localhost etc]# /usr/local/sbin/zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
[root@localhost etc]# /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
这是我的配置信息 大家可以参照
[root@localhost ~]# 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
[root@localhost ~]# 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" xxx@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:xxx@163.com
三、配置Zabbix服务端邮件报警
1、打开Zabbix
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链
管理-示警媒介类型-Email
名称:Email
类型:电子邮件
SMTP伺服器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP电邮:zabbix@zabbix.sa.huanqiu.com
已经用:勾选
存档
备注:zabbix.sa.huanqiu.com为Zabbix监控端主机名称,建议修改,否则使用默认的localhost.localdomain发送邮件会被当做垃圾邮件拦截。
2、设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介
添加
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链
类型:Email
收件人:xxx@163.com
其他默认即可,也可以根据需要设置
状态:已启用
存档
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
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件
使用Zabbix服务端本地邮箱账号发送邮件设置完成。
好了 今天就说到这里 下次给大家讲讲用户自定义key值
本文出自 “屌丝人生” 博客,谢绝转载!
zabbix介绍 安装 运用 配置 代理 告警 的使用