参考:https://www.zabbix.org/wiki/InstallOnCentOS_RHEL
http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/
软件下载:
http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/
http://sourceforge.net/projects/zabbix/files/latest/download?source=pdlp
http://www.mirrorservice.org/sites/downloads.sourceforge.net/z/za/zabbix/ZABBIX%20Latest%20Stable/
环境
Centos6.x
Zabbix2.2.4
zabbix-server:192.168.2.164
zabbix-agent:192.168.2.216
服务器客户端均安装存储库:
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
yum -y install http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
yum -y install http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-get-2.2.10-1.el6.x86_64.rpm
服务器安装:
[root@master ~]#yum -y install mysql-server zabbix-server-mysql zabbix-web-mysql zabbix-agent
若无法下载依赖包,搜索依赖包依次安装
如:
[root@master ~]# yum -y install ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.3/x86_64/updates/security/php-bcmath-5.3.3-26.el6.x86_64.rpm
[root@master ~]# yum -y install ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.3/x86_64/updates/security/php-mbstring-5.3.3-26.el6.x86_64.rp
客户端安装:
[root@node ~]# yum -y install zabbix-agent
首先防火墙配置,关闭selinux
服务端开启端口web80、mysql3306、zabbix-server10051
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
客户端开启端口10050
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
服务端配置:
修改时区
[root@master ~]# vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
[root@master ~]# service httpd start
初始化数据库:
[root@master ~]# service mysqld start
[root@master ~]# mysql_secure_installation
为zabbix创建数据并赋予权限
[root@master ~]# mysql -u root -p
Mysql> create database zabbix character set utf8;
Mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
Mysql> flush privileges;
将zabbix数据库导入到创建的数据库
[root@master ~]# mysql -u zabbix -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-2.2.4/create/schema.sql
[root@master ~]# mysql -u zabbix -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-2.2.4/create/images.sql
[root@master ~]# mysql -u zabbix -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-2.2.4/create/data.sql
修改zabbix-server配置文件
[root@master ~]# vim /etc/zabbix/zabbix_server.conf
[root@master ~]# grep -v '^$' /etc/zabbix/zabbix_server.conf | grep -v '^#'
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
………
启动zabbix-server
[root@master ~]# chkconfig zabbix-server on
[root@master ~]# /etc/init.d/zabbix-server start
Starting Zabbix server: [确定]
确定mysqld和httpd已正常运行
访问web配置zabbix监控,连接后台数据库,完成监控设置
http://192.168.2.164/zabbix
确认所有的选项都是ok的
填写连接数据库的信息,并测试连接,成功则继续下一步
Zabbix服务及服务器,并确认
输入用户名和密码登陆(默认用户Admin,密码zabbix)
若出现以下提示,关掉selinux或setsebool httpd_can_network_connect on
为自己创建用户,切换到Adminisstation面板下的Users,点击右上角的创建用户
在user栏面填写好用户信息,添加到那个组
切换到Media添加邮箱地址,确认后保存
创建完成后,可查看用户信息和所属组
客户端配置:
修改配置文件,指定zabbix-server服务器,并启动agent服务
[root@node ~]# sed -i 's/127.0.0.1/192.168.2.164/' /etc/zabbix/zabbix_agentd.conf
[root@node ~]# chkconfig zabbix-agent on
[root@node ~]# /etc/init.d/zabbix-agent start
配置监控:
添加监控主机
切换到configration面板的hosts,添加监控主机
填写ip地址和所属组
切换到Template,搜索模板并添加
带有Z标志的变为绿色,则已监控
创建项目(监控ntp端口为例udp123)
[root@node ~]# netstat -anltup | grep ntpd
udp 0 0 192.168.2.216:123 0.0.0.0:* 2973/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 2973/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2973/ntpd
udp 0 0 fe80::20c:29ff:fec7:882a:123 :::* 2973/ntpd
udp 0 0 ::1:123 :::* 2973/ntpd
udp 0 0 :::123 :::* 2973/ntpd
选择要要创建项目的主机→点击Items
点击右上角的创建项目
点击select查找相应的key
修改相应的信息配置
为这个项目创建触发器
添加表达式
添加对应的item
完成这个函数
指定这个告警的级别
触发告警:
在linux系统中关掉ntp服务
回到web的monitoring面板,查看最新的告警和状态
再启动ntp服务,查看这个trigger的状态
邮件设置:
创建一个触发邮件动作,也可修改默认的动作
可自己定制邮件的形式,标题包含什么内容等
切换到操作
设置邮件接收地址
切换到管理,修改告警通知类型,这里为邮件方式
填写邮件服务器
触发告警,查看这个告警的Action,已执行
登陆收信邮箱,查看邮件内容
查看这个tirrger的状态
监控pgsql:
下载pgsql监控模板与配置文件userparameter_pgsql.conf及脚本
文件下载地址:http://pg-monz.github.io/pg_monz/index-en.html
解压该文件
将userparameter_pgsql.conf配置文件放在/etc/zabbix/zabbix_agentd.d/目录下
[root@node pg_monz]# cp userparameter_pgsql.conf /etc/zabbix/zabbix_agentd.d/
将脚本文件放在指定的目录下(可自定义目录)给予可执行权限
导入模板
回到web,导入pgsql的模板
选择该模板,并修改模板的Macro的value
{$PGDATABASE} postgres 要监测的数据库
{$PGLOGDIR} /var/lib/pgsql/9.3/data/pg_log pgsql的log的目录
{$PGHOST} 127.0.0.1 pgsql服务器的地址
{$PGPORT} 5432 pgsql的端口
{$PGROLE} zabbix 监控的用户
{$PGSCRIPTDIR} /etc/zabbix/bin 脚本存放的目录
修改此模板的Number of postgres process这个item的key:
为proc.num[postmaster,,,]
选择PostgreSQL服务器,添加PostgreSQL模板
可查看最新数据或graphs数据流量图
监控mysql:
创建一个监控服务器用于收集数据的数据库用户
mysql> GRANT USAGE ON *.* TO 'zabbix'@'%' IDENTIFIED BY '12345678';
mysql> GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '12345678';
mysql> flush privileges;
创建.my.cnf文件,填写监控用户的用户名和密码
[root@node ~]# cat /etc/zabbix/.my.cnf
# Zabbix Agent
[mysql]
host = localhost
user = zabbix
password = 12345678
socket = /var/run/mysqld/mysqld.sock
[mysqladmin]
host = localhost
user = zabbix
password = 12345678
socket = /var/run/mysqld/mysqld.sock
查找userparameter_mysql.conf文件,并放zabbix_agentd.d的目录下
ll /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
重新启动zabbix_agentd服务,测试get
zabbix_get -s 10.254.3.72 -k mysql.status[Uptime]
如果提示参数已经存在,将参数重命名或者删掉,继续用get测试,
如果get测试通过,页面依然提示错误,多刷新画面等一段时间就好了。
给mysql数据库添加数据库模板
查看是否正确添加收集到数据
监控web:
查看一个url的状态
选择作为访问web的客户端
创建 web scenario
自定义这个screnaio的名字
切换到steps填写完整的url,及web页面正常状态下的返回值
查看这个web的的状态
创建trigger,添加web screnario后会自动创建相应的item,但是我们看不到
查找添加相应的item
创建这个trigger的触发条件函数、及级别
以同样的步骤创建其他相应的trigger,触发条件函数是不一致的
触发一个告警,查看邮件