部署环境介绍
第一部分:在zabbix服务端的操作
1. 初始化
yum install gcc gcc-c++ vim-enhanced glibc make unzip openssl openssl-devel openssh-server openssh-clients wget -y
2. 配置时间同步
yum install ntp -y
/usr/sbin/ntpdate cn.pool.ntp.org
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org &> /dev/null
一:给Zabbix安装mysql数据库(yum装即可)
yum list installed | grep mysql
yum remove mysql* -y
yum install mysql-server -y
vim /etc/my.cnf
1. 在mysqld下添加如下配置:
[mysqld]
innodb_file_per_table
character-set-server = utf8
service mysqld start
初始化,设置密码:
mysql_secure_installation(一直回车即可,碰到输入密码时键入密码,继续回车)
2. 登录数据库
mysql -u root -p111111
3. 创建数据库
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'your_password';
show databases;
4. 显示如下,即可,说明zabbix数据库创建成功
二:准备zabbix的web环境
yum install httpd php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap
vim /etc/php.ini
把几个参数的修改成如下所示
post_max_size=16M
max_execution_time=300
max_input_time=300
date.timezone= Asia/Shanghai
always_populate_raw_post_data=-1
service httpd start
iptables -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables
三:下载及安装zabbix
groupadd zabbix
useradd -g zabbix zabbix
mkdir /home/zabbix/downloads
cd /home/zabbix/downloads
tar -zxvf zabbix-3.2.6.tar.gz(官网可下载)
cd /home/zabbix/downloads/zabbix-3.2.6/database/mysql
mysql -u zabbix -p zabbix < schema.sql(Enter password: your_password)
mysql -u zabbix -p zabbix < images.sql(Enter password: your_password)
mysql -u zabbix -p zabbix < data.sql(Enter password: your_password)
yum install gcc mysql-community-devel libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel -y
cd /home/zabbix/downloads/zabbix-3.2.6
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl
显示如下:
***********************************************************
* Now run 'make install' *
* Thank you for using Zabbix! *
* <[url]h > *
开始编译安装
make install
在启动Zabbix服务器之前,我们需要修改其配置文件才能连接到数据库。
vim /usr/local/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=your_password
mkdir /var/www/html/zabbix
移动到下载的Web界面源
cd /home/zabbix/downloads/zabbix-3.2.6/frontends/php/
将所有文件复制到服务器Web目录
cp -a . /var/www/html/zabbix/
chcon -Rv --type=httpd_sys_content_t /var/www/html
setsebool -P httpd_can_network_connect=1
setsebool -P zabbix_can_network=1
chown -R apache:apache /var/www/html/zabbix
chmod +x /var/www/html/zabbix/conf/
cp /home/zabbix/downloads/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
cp /home/zabbix/downloads/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
chkconfig --add /etc/init.d/zabbix_server
chkconfig --add /etc/init.d/zabbix_agentd
chkconfig httpd on
chkconfig mysqld on
chkconfig zabbix_server on
chkconfig zabbix_agentd on
service zabbix_server start
service zabbix_agentd start
四:在web界面操作zabbix
在浏览器输入:
192.169.199.173/zabbix
显示如下:
点击next step,显示如下
继续点击nextstep,显示如下
此处的密码输入我们之前在配置文件里的密码:your_password
继续点击next step,出现如下:
继续点击next step:
知道出现finish,点击finish出现如下:
用户名为Admin,密码为zabbix
点击Sign in则可以登录到zabbix的web界面了
第二部分:在zabbix客户端的操作
rpm -ivh zabbix-agent-3.2.6-1.el6.x86_64.rpm
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
mkdir /usr/local/zabbix
cd /usr/local/zabbix
vim service.sh
#!/bin/bash
DISKSIZE=`df -h|grep '9[0-9]%'`
DISKSIZE2=`df -h|grep '100%' | grep -v 'media'`
if [ ! -z "$DISKSIZE" ] || [ ! -z "$DISKSIZE2" ]
then
echo 1
else
echo 0
fi
chmod +x /usr/local/zabbix/service.sh
vim /etc/zabbix/zabbix_agentd.conf
修改如下值:
Server=192.168.199.173
ServerActive=192.168.199.173
UserParameter=service.disk,/usr/local/zabbix/service.sh
/etc/init.d/zabbix-agent start
第三部分:在zabbix的web界面添加监控的主机
通过本地浏览器访问http://ZabbixServerIP/zabbix来配置和使用zabbix,这里我输入的是192.168.199.173,一次完整的监控流程可以简单描述为:
Host Groups(设备组)->Host(设备)->Applications(监控项组)->Items(监控项)->Tiggers(触发器)->
Actions(告警动作)->Medias(告警方式)->User Groups(用户组) ->User(用户)
1. 添加Host groep
2添加 Host
Host是Zabbix监控的基本载体,所有的监控项都是基于host的。通过Configuration->Host-s>Create Host来创建监控设备
点击create host之后显示如下:
点击最下面的添加即可
3. 创建一个自己的template
(1)创建template
(2)创建application
(3)创建itens(key值时要跟被监控端的service.sh里面的一致,下面会说到)
(4)创建triggers
在zabbix被监控端(192.168.199.176)
vim /usr/localzabbix/service.sh
修改为入下所示:
#!/bin/bash
DISKSIZE=`df -h|grep '9[0-9]%'`
DISKSIZE2=`df -h|grep '100%' | grep -v 'media'`
if [ ! -z "$DISKSIZE" ] || [ ! -z "$DISKSIZE2" ]
then
echo 0
else
echo 1
Fi
在zabbix的web端看到如下说明成功了:
4.测试
第三部分 实现邮件报警
yum install sendmail -y
service sendmail start
chkconfig sendmail on
yum install -y postfix
service postfix start
chkconfig postfix on
移除旧的组件
yum remove mailx -y
源码安装新版组件
tar -xvf mailx-12.4.tar.bz2
mv mailx-12.4-openssl_1.0.0_build_fix-1.patch mailx-12.4
cd mailx-12.4
yum install patch -y
需要打补丁
patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patch
make
make install UCBINSTALL=/usr/bin/install
需要做软连接
ln -s /usr/local/bin/mailx /bin/mail
ln -s /etc/nail.rc /etc/mail.rc
查看安装路径
whereis mailx
查看版本信息
mailx -V
配置外部邮箱地址
vim /etc/mail.rc
# Only include selected header fields when forwarding messages.
fwdretain subject date from to
set from=15011572657@163.com
set smtp=smtp.163.com
set smtp-auth-user=xxxxxx
set smtp-auth-password=xxxxxx
set smtp-auth=login
测试email发送
在zabbix控制端
(1)设置告警方式
Admininistrator-Mediatypes-Email(设置smtp,username:xxxxxxxx,password:xxxxxxxx)-update
(2)添加action
Configuration-Actions-create action
Action部分:
Name:Action-Email
New condition:Host group=测试
Operations部分:
Configuration-Actions-Operations
Default operation step duration:60
Default subject:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
Default messages:
告警主机:{HOSTNAME1}
主机IP:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
Recovery operations:
Default subject:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
Default messages:
告警主机:{HOSTNAME1}
主机IP:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
(3)添加报警用户:
Configuration-users-media
至此,zabbix的部署及报警就可以实现了,还有自定义的一些监控项并未提及,后续还有更新!!
原创:韩先超