CentOS 6.6x64部署zabbix

一.部署环境
系统:CentOS 6.6x64 最小化安装Server:192.168.8.201 Client:192.168.3.202

二.基础软件包安装
在 server 安装基础软件包,这里的环境使用 yum 安装,如果使用源码安装也是可以的。

启动 httpd、mysql 并设置成开机自动启动

在 iptables 中放行 80,10050,10051 端口。

[root@zabbix ~]# yum -y install wget vim tree gcc gcc-c++ autoconf httpd php mysql mysql-

server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-

mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel

libdbi-dbd-mysql net-snmp net-snmp-devel curl-devel

[root@zabbix-server ~]# service httpd start

[root@zabbix-server ~]# service mysqld start

[root@zabbix-server ~]# chkconfig httpd on

[root@zabbix-server ~]# chkconfig mysqld on

[root@zabbix-server ~]# iptables -I INPUT -p tcp -m multiport --destination-port

80,10050:10051 -j ACCEPT

#查看防火墙结果

[root@zabbix-server ~]# iptables -L -n

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,10050:10051

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)

target prot opt source destination

REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

#保存 iptables 规则

[root@zabbix-server ~]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

三.配置 PHP 参数
zabbix 的运行需要特定的 php 参数支持,修改如下

[root@zabbix-server ~]# sed -i "s@;date.timezone =@date.timezone = Asia/Shanghai@g"

/etc/php.ini

[root@zabbix-server ~]# sed -i "s@max_execution_time = 30@max_execution_time = 300@g"

/etc/php.ini

[root@zabbix-server ~]# sed -i "s@post_max_size = 8M@post_max_size = 32M@g" /etc/php.ini

[root@zabbix-server ~]# sed -i "s@max_input_time = 60@max_input_time = 300@g"

/etc/php.ini

[root@zabbix-server ~]# sed -i "s@memory_limit = 128M@memory_limit = 128M@g"

/etc/php.ini

[root@zabbix-server ~]# sed -i "s@;mbstring.func_overload = 0@ambstring.func_overload =

2@g" /etc/php.ini

修改 httpd 的 FQDN 错误,重启 httpd 服务

四.下载 zabbix-2.4.5.tar.gz

五.添加 zabbix 用户和组

六.安装 zabbix-server 端

[root@zabbix-server ~]# echo "ServerName localhost:80" >>/etc/httpd/conf/httpd.conf

[root@zabbix-server ~]# /etc/init.d/httpd restart

Stopping httpd: [ OK ]

Starting httpd: [ OK ]

[root@zabbix-server ~]# wget –x

http://sourceforge.net/projects/zabbix/files/latest/download/zabbix-2.4.5.tar.gz

[root@zabbix-server ~]# groupadd -g 201 zabbix

[root@zabbix-server ~]# useradd -g zabbix -u 201 -s /sbin/nologin zabbix

[root@zabbix-server ~]# tar xf zabbix-2.4.5.tar.gz

[root@zabbix-server ~]# cd zabbix-2.4.5

[root@zabbix-server zabbix-2.4.5]# ./configure --prefix=/usr/local/zabbix --enable-server --

enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-

libcurl

[root@zabbix-server zabbix-2.4.5]# make && make install

#创建 zabbix 数据库以及相关表

[root@zabbix-server zabbix-2.4.5]# mysql -e "create database zabbix default charset utf8;"

[root@zabbix-server zabbix-2.4.5]# mysql -e "grant all on zabbix.* to zabbix@localhost

identified by 'zabbix';"

[root@zabbix-server zabbix-2.4.5]# mysql -uzabbix -pzabbix

zabbix<./database/mysql/schema.sql

[root@zabbix-server zabbix-2.4.5]# mysql -uzabbix -pzabbix

zabbix<./database/mysql/images.sql

[root@zabbix-server zabbix-2.4.5]# mysql -uzabbix -pzabbix zabbix<./database/mysql/data.sql

#配置软连接和启动文件信息

[root@zabbix-server zabbix-2.4.5]# mkdir /var/log/zabbix

[root@zabbix-server zabbix-2.4.5]# chown zabbix.zabbix /var/log/zabbix

[root@zabbix-server zabbix-2.4.5]# ln -s /usr/local/zabbix/etc/ /etc/zabbix

[root@zabbix-server zabbix-2.4.5]# ln -s /usr/local/zabbix/bin/* /usr/bin/

[root@zabbix-server zabbix-2.4.5]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/

[root@zabbix-server zabbix-2.4.5]# cp /root/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_*

/etc/init.d

[root@zabbix-server zabbix-2.4.5]# chmod 755 /etc/init.d/zabbix_*

#修改/etc/init.d 目录下的 zabbix_server 和 zabbix_agentd 启动文件

[root@zabbix-server zabbix-2.4.5]# sed -i

"s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_server

[root@zabbix-server zabbix-2.4.5]# sed -i

"s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_agentd

#修改/etc/zabbix/zabbix_server.conf

[root@zabbix-server zabbix-2.4.5]# sed -i "s@DBUser=root@DBUser=zabbix@g"

/etc/zabbix/zabbix_server.conf

[root@zabbix-server zabbix-2.4.5]# sed -i "s@#DBPassword=@DBPassword=zabbix@g"

/etc/zabbix/zabbix_server.conf

[root@zabbix-server zabbix-2.4.5]# sed -i "s@# DBPassword=@DBPassword=zabbix@g"

/etc/zabbix/zabbix_server.conf

#修改/etc/zabbix/zabbix_agentd.conf,这里的 IP 地址写的是 zabbix_server 的 IP 地址,即

192.168.8.201

[root@zabbix-server zabbix-2.4.5]# sed -i

"s@Server=127.0.0.1@Server=127.0.0.1,192.168.8.201@g" /etc/zabbix/zabbix_agentd.conf

[root@zabbix-server zabbix-2.4.5]# sed -i

"s@ServerActive=127.0.0.1@ServerActive=$IP:10051@g" /etc/zabbix/zabbix_agentd.conf

[root@zabbix-server zabbix-2.4.5]# sed -i

"s@tmp/zabbix_agentd.log@var/log/zabbix/zabbix_agentd.log@g"

/etc/zabbix/zabbix_agentd.conf

[root@zabbix-server zabbix-2.4.5]# sed -i "s@^#

UnsafeUserParameters=0@UnsafeUserParameters=1\n@g" /etc/zabbix/zabbix_agentd.conf

#复制 zabbix 站点的文件到/var/www/html 目录下

[root@zabbix-server zabbix-2.4.5]# cp -r /root/zabbix-2.4.5/frontends/php/

/var/www/html/zabbix/

[root@zabbix-server zabbix-2.4.5]# chown -R apache.apache /var/www/html/zabbix/

[root@zabbix-server zabbix-2.4.5]# chkconfig zabbix_server on

[root@zabbix-server zabbix-2.4.5]# chkconfig zabbix_agentd on

[root@zabbix-server zabbix-2.4.5]# service zabbix_server start

Starting zabbix_server: [ OK ]

[root@zabbix-server zabbix-2.4.5]# service zabbix_agentd start

Starting zabbix_agentd: [ OK ]

七.通过 web 站点配置 zabbix

以上步骤配置完后通过 http://192.168.8.201/zabbix/setup.php 网页端进行后续配置

1.安装界面

2.PHP 配置检查界面,结果是 OK 表示正常,如果是 fail 状态,请修改相关的 php 配置参数,并重启

httpd 服务

3.这里的数据库相关信息,在上文中有配置,具体请查看上文

4.填写 zabbix 的 server 地址,我这里填写的是本机的 IP 地址 192.168.8.201

5.最后配置结果预览

6.安装完成

八.访问 zabbix 的 web 管理界面
安装完成后,通过 http://192.168.8.201/zabbix/index.php#就能直接访问 web 管理界面 默认用户名:admin,密码:zabbix

九.调整 zabbix 语言

十.zabbix 语言设置成中文后,有乱码解决如下
1.从 windows 下控制面板->字体->选择一种中文字库例如“楷体”2.将字体上传至/var/www/html/zabbix/fonts 目录下

3.修改 zabbix 页面管理的中文字体设置

[root@zabbix-server zabbix-2.4.5]# vim /var/www/html/zabbix/include/defines.inc.php

#修改如下 2 行

define('ZBX_FONT_NAME', 'simkai');

define('ZBX_GRAPH_FONT_NAME', 'simkai');

修改后的 zabbix 界面。

十一.修改完以上步骤后,zabbix 界面的历史记录还是乱码,这是由于 mysql 的数据库字符集导致的,解 决办法如下

1.备份 zabbix 数据库,并修改备份下来的数据文件

[root@zabbix-server ~]# mysqldump zabbix >zabbix.sql

[root@zabbix-server ~]# sed -i 's/latin1/utf8/g' zabbix.sql

2.删除 zabbix 数据库

mysql> drop database zabbix;

Query OK, 104 rows affected (0.42 sec)

3.关闭 mysql 数据库,设置默认字符集

[root@zabbix-server ~]# service mysqld stop

Stopping mysqld: [ OK ]

#在 mysql 配置文件中添加字符集参数

[root@zabbix-server ~]# vim /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

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

default-character-set = utf8

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

4.启动 mysql 并恢复 zabbix 数据库

[root@zabbix-server ~]# service mysqld start

Starting mysqld: [ OK ]

[root@zabbix-server ~]# mysql

mysql> create database zabbix;

Query OK, 1 row affected (0.00 sec)

mysql> show create database zabbix;

+----------+-----------------------------------------------------------------+

| Database | Create Database |

+----------+-----------------------------------------------------------------+

| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+-----------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| test |

| zabbix |

+--------------------+

4 rows in set (0.00 sec)

mysql> use zabbix;

Database changed

mysql> source zabbix.sql;

5.查看修改后的结果

十二.在 client 端 192.168.8.202 安装 zabbix

[root@zabbix-c1 ~]# yum install wget vim tree gcc gcc-c++ -y

安装 zabbix_agentd

[root@zabbix-c1 ~]# wget –x http://sourceforge.net/projects/zabbix/files/latest/download/zabbix-2.4.5.tar.gz

[root@zabbix-c1 ~]# groupadd -g 201 zabbix

[root@zabbix-c1 ~]# useradd -g zabbix -u 201 -s /sbin/nologin zabbix

[root@zabbix-c1 ~]# tar xf zabbix-2.4.5.tar.gz

[root@zabbix-c1 ~]# cd zabbix-2.4.5

#开始编译安装 zabbix 客户端

[root@zabbix-c1 zabbix-2.4.5]# ./configure --prefix=/usr/local/zabbix --enable-agent

[root@zabbix-c1 zabbix-2.4.5]# make && make install

#创建 zabbix 的日志目录

[root@zabbix-c1 zabbix-2.4.5]# mkdir /var/log/zabbix

[root@zabbix-c1 zabbix-2.4.5]# chown zabbix.zabbix /var/log/zabbix

#复制 zabbix_agentd 启动文件到/etc/init.d 目录下

[root@zabbix-c1 zabbix-2.4.5]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

[root@zabbix-c1 zabbix-2.4.5]# chmod 755 /etc/init.d/zabbix_agentd

#在 iptables 中放行 10050 和 10051 端口

[root@zabbix-c1 zabbix-2.4.5]# iptables -I INPUT -p tcp -m multiport --dports 10050:10051 -j

ACCEPT

[root@zabbix-c1 zabbix-2.4.5]# service iptables save #保存 iptables 规则

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

#查看 iptables 结果

[root@zabbix-c1 zabbix-2.4.5]# iptables -L -n

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 10050:10051

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)

target prot opt source destination

REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

#修改启动文件和配置软连接

[root@zabbix-c1 zabbix-2.4.5]# sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g"

/etc/init.d/zabbix_agentd

[root@zabbix-c1 zabbix-2.4.5]# ln -s /usr/local/zabbix/etc/ /etc/zabbix

[root@zabbix-c1 zabbix-2.4.5]# ln -s /usr/local/zabbix/bin/* /usr/bin

[root@zabbix-c1 zabbix-2.4.5]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/

#/etc/zabbix/zabbix_agentd.conf,这里的 IP 地址写的是 zabbix_server 端的 IP 地址

[root@zabbix-c1 zabbix-2.4.5]# sed -i "s@Server=127.0.0.1@Server=192.168.8.201@g"

/etc/zabbix/zabbix_agentd.conf

[root@zabbix-c1 zabbix-2.4.5]# sed -i

"s@ServerActive=127.0.0.1@ServerActive=192.168.8.201:10051@g"

/etc/zabbix/zabbix_agentd.conf

[root@zabbix-c1 zabbix-2.4.5]# sed -i

"s@tmp/zabbix_agentd.log@var/log/zabbix/zabbix_agentd.log@g" /etc/zabbix/zabbix_agentd.

conf

[root@zabbix-c1 zabbix-2.4.5]# sed -i "s@^#

UnsafeUserParameters=0@UnsafeUserParameters=1\n@g" /etc/zabbix/zabbix_agentd.conf

#设置 zabbix_agentd 开机自动启动,并启动 zabbix_agentd 服务

[root@zabbix-c1 zabbix-2.4.5]# chkconfig zabbix_agentd on

[root@zabbix-c1 zabbix-2.4.5]# service zabbix_agentd start

Starting zabbix_agentd: [ OK ]

#Web 配置客户端

http://192.168.8.201/zabbix/dashboard.php

然后填写主机名称和 ip 地址(选择群组否则不能添加),点击确定。

组态---主机---创建主机

然后可以选择监控的模块。

选择,后添加最后更新。 监控中----图形

代表监控成功,流量图有了。
已经完成客户端监控。

十三.邮件报警(使用外部邮箱账号发送报警邮件设置)service postfix stop
chkconfig postfix off
yum install mailx –y

vim /etc/mail.rc #在最后增加
set from=xxxxxx@qq.com smtp=smtp.qq.com
set smtp-auth-user=xxxxxx smtp-auth-password=xxxxxx
set smtp-auth=login
echo "zabbix test mail" |mail -s "zabbix" 18358176531@126.com #测试发送邮件

测试成功。
1.打开 zabbix web 页面管理—示警介类型—创建媒体类型

名称:sendmail类型:脚本

脚本名称:sendmail.sh已启用:勾选

2.设置报警用户和邮箱地址 管理—用户

设置两个邮箱关联至 admin 用户。

最后一定要更新才会保存。

3.设置 zabbix 触发报警的动作 组态-动作-创建动作

从上往下一个一个选择。

最后添加即可。

4.添加 zabbix 服务端邮件发送脚本

cd /usr/local/zabbix/share/zabbix/alertscripts vi sedmail.sh #编辑,添加以下代码
#!/bin/sh
echo "$3" | mail -s "$2" $1

:wq! #保存退出

chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sedmail.sh

#设置脚本所有者为 zabbix 用户

chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sedmail.sh

#设置脚本执行权限

5.测试 zabbix 邮件报警
关闭 zabbix 客户端服务 service zabbix_agentd stop
然后查看邮件,会受到报警操作。
再开启 Zabbix 客户端服务 service zabbix_agentd start
查看邮箱,会收到恢复邮件
十四.zabbix 微信报警 首先需要申请一个企业号,其实公众号也可以,不过脚本不一样。而且公众号任何人都可以关注,有泄密 的风险。企业号只有指定的人可以关注,安全性较高。

申请企业号,需要一个绑定你本人开户银行卡的微信号。 申请网址 https://qy.weixin.qq.com/
点击“立即注册”。 根据提示注册企业号,到“选择类型”时,选择最右边的企业号。 注意:企业描述中:“报警”是敏感词不能使用。 登录之后,可以看到如下页面

按照下图依次点击。

这里只需要 填写正确的微信号, 账号需要记住,还有微信号,后面需要用到。 保存之后可以看到用户。

注:这里的账号相当于你的企业账号,与微信号无关。

必须先在此处创建用户,并且填写正确的微信号或者手机号,才可通过扫描二维码关注该企业号(知道为
何安全了吧)。

关注企业号的方法:

点击左侧的“设置”-二维码,使用微信扫一扫扫描二维码。

点击左侧列的“应用中心”,点击“我的应用”下面的加号。

填写应用名称,描述。
一切正常的话,点击进入刚才创建的应用。

这里的应用 id 号需要记住。后面需要填写 设置管理员:

设置-功能设置-权限管理-新建管理组

注意:这里要记录下来下面的 CorpID 和 Secret。

现在万事俱备,可以开始编写脚本了。

编写脚本

在/usr/local/zabbix/share/zabbix/alertscripts 目录下新建一个脚本 在目录下创建 wechat.sh 脚本文件。
脚本内容如下:

#!/bin/bash

CropID='wxe46cfc0c07e23' #这个是 CorpID Secret='0fYtetwOKhDOQIVff3QQjoYGUFTrBLlYlGVW_Ct8vShJisK41_GESW' #这个是 Secret GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}') PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {

local int AppID=1 ##这个是应用 id local UserID=$1
local PartyID=1
local Msg=$(echo "$@" | cut -d" " -f3-) printf '{\n'

printf '\t"touser": "'"$User"\"",\n" printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n" printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n" printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'

}

/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL以上黄色背景都需要输入,填错了就无效。

chown -R zabbix:zabbix /usr/local/zabbix/alertscripts chmod 750 /usr/local/zabbix/alertscripts/wechat.sh执行./wechat.sh 1 1 test 看自己微信是否能收到东西。 如果能的话,继续下一步。反之检查上面有什么问题。

添加触发器

点击管理---媒体类型---创建媒体类型

管理---用户---添加用户

组态---动作---添加动作名称:weixin_action

默认接收人:故障{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}

已启用:打钩

最后测试,是否会微信报警。 进去客户端,关闭 zabbix_agentd

告警已经成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值