您的位置:首页 > 运维架构

服务器篇07-搭建zabbix监控

2017-04-27 00:00 701 查看
基础环境:LNMP或LAMP(此文档以LNMP为例)

**********************************************************************

百度网盘文件下载

链接:http://pan.baidu.com/s/1cMVF5c 密码:kl2f

**********************************************************************

:先要关闭防火墙和selinux,客户端也需要关闭,避免出现 Connection refused 错误

安装前准备

创建zabbix数据库和授权用户

[root@localhost ~]# mysql -u root -p

Enter password:

mysql> create database zabbix default charset utf8;
新建数据库zabbix使用UTF-8编码

mysql>CREATE USER 'zabbix'@'host' IDENTIFIED BY '123456';

新建账户zabbix,密码123456

mysql> grant all on zabbix.* to 'zabbix'@'%' identified by '123456' with grant option;

允许账户zabbix从任何主机连接到数据库zabbix

mysql> FLUSH PRIVILEGES;

刷新系统授权表

mysql> exit


导入数据库文件写入顺序不能错

找到下载的zabbix服务端

tar -zxvf zabbix-3.0.3.tar.gz

cd zabbix-3.0.3/database/mysql/

/usr/bin/mysql -uzabbix -p123456 zabbix < schema.sql

/usr/bin/mysql -uzabbix -p123456 zabbix < images.sql

/usr/bin/mysql -uzabbix -p123456 zabbix < data.sql


yum -y install gcc gcc-c++ glibc automake autoconf libtool make

安装相应的编译组件

安装Zabbix

yum -y install mysql-devel libxml2-devel net-snmp-devel libcurl-devel

编译安装zabbix

cd zabbix-3.0.3

./configure --prefix=/usr/local/zabbix-server --enable-server --with-mysql --with-net-snmp  --with-libxml2

make && make install

创建zabbix管理用户

useradd zabbix

编辑配置文件并启动

vim /usr/local/zabbix-server/etc/zabbix_server.conf


DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=123456

ListenIP=127.0.0.1

DBSocket=/tmp/mysql.sock

启用服务并加入到开启自启行列

/usr/local/zabbix-server/sbin/zabbix_server -c /usr/local/zabbix-server/etc/zabbix_server.conf

vim /etc/rc.local添加命令

修改PHP.ini配置文件

date.timezone = Asia/Shanghai

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

extension=bcmath.so

拷贝/zabbix-3.0.3/frontends/php/*下所有zabbix页面文件到需要用的站点目录并给予读取权限和配置



---------------------------------------------------------------------------------------

若提示缺少bcmath模块

进入模块目录cd /php-7.0.7/ext/bcmath 执行/usr/local/php/bin/phpize 生成扩展安装文件

指定安装路径执行编译

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

再重启php服务即可

---------------------------------------------------------------------------------------



填写数据库配置信息登录,如果用localhost的话不能连接到数据库,要改下配置文件



填写服务器细节摘要



信息摘要汇总



提示无法创建zabbix配置文件,说明PHP目录没有写入权限,也可分配权限,也可手动下载更改文件所属和执行权限



至此Zabbix已经顺利安装完成



默认登录用户名admin密码zabbix



-------------------------------------------------------------------------------------------------

中文乱码解决方法

1.从windows下控制面板->时钟、语言和区域->语言->字体->选择一种中文字库例如“楷体”

2.把它拷贝到zabbix的web端的fonts目录下例如:/var/www/html/zabbix/fonts,并且把TTF后缀改为ttf

方法一:

直接把你的文件命名成DejaVuSans.ttf替换成原来的文件

方法二:

修改zabbix的web端/include/defines.inc.php

//define('ZBX_FONT_NAME', 'DejaVuSans');

define('ZBX_FONT_NAME', 'SIMKAI');

//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name

define('ZBX_GRAPH_FONT_NAME', 'SIMKAI'); // font file name

其中SIMKAI为字库名字,不包含ttf后缀,替换为你下载的楷体文件名即可

-------------------------------------------------------------------------------------------------#################################################################

监控项添加方法

监控服务器:

Windows安装

1. 新建目录文件夹,如:在D盘中建立zabbix3.0文件夹 把zabbix_agents_3.0.0.win.zip文件解压至此

2. 在这个目录下建立一个txt改名zabbix_agentd.log

3. 编辑conf 目录下zabbix_agentd.win.conf 则这个文件内容修改以下项

LogFile=D:\zabbix3.0\zabbix_agentd.log

Server=『ServerIP』

Hostname=『Hostname』

4. CMD命令进入目录 zabbix3.0\Agent\bin #根据系统位数进入相应目录(win32或win64;可在“控制面板\所有控制面板项\系统”中查看“系统类型”)

执行:

zabbix_agentd.exe –c D:\zabbix3.0\conf\zabbix_agentd.win.conf –i


-c :指定配置文件所有位置

-i :安装客户端

-s :启动客户端

-x :停止客户端

-d :卸载客户端

Linux安装

rpm -ivh zabbix-agent-3.0.3-1.el6.x86_64.rpm

如遇到一下依赖错误:

yum -y install unixODBC

安装依赖服务即可

vi /etc/zabbix/zabbix_agentd.conf

修改客户端配置文件设置客户端

Server=对应的zabbix服务器IP

ServerActive=对应的zabbix服务器IP

Hostname=对应的zabbix服务器名称

service zabbix-agent start

chkconfig zabbix-agent on

启用服务并加入开机自启

service zabbix-agent status

确认服务已经正常运行,若没有,关闭selinux和防火墙

#################################################################

Zabbix添加监控项:

1.新增自定义名称mytest主机,agent代理程序的接口写入客户端IP地址,并加入 Linux servers群组

2.选择默认模版Template OS Linux打开,加入mytest主机和 Linux servers群组保存

3.选择模版中的图形创建图形,选择群组主机,添加监控项确定

注:本次使用Template OS Linux模版是示例测试使用,可根据自身需求选择模版或者自建模版

监控交换机等SNMP设备:

1.新建群组-新建主机群组,便于分类和添加主机、模版加入群组。

2.新建主机,SNMP接口输入IP地址和访问用户,这里使用public

3.使用系统自带Template SNMP Device名称的模版,把需要监控的群组、主机加入模版

4.点击模版创建图形,根据需求选择图形样式,添加Template SNMP Device: Number of network interfaces监控项点击更新

5.选择Number of network interfaces监控项修改端口为161,修改数据更新间隔时间,大概等待1到5分钟,即可扫描出主机

#################################################################

邮件设置报警

一.使用sendEmail报警发送外部警报邮箱{是sendEmail不是sendmail,sendmail很多时候会发不出去}

tar -zxvf sendEmail-v1.56.tar.gz

cp sendEmail-v1.56/sendEmail /usr/local/bin/

chmod -R 755 /usr/local/bin/sendEmail

chown -R zabbix.zabbix /usr/local/bin/sendEmail

解压拷贝服务文件并给予执行权限

二.zabbix服务器端发送邮件脚本

1.创建发送邮件脚本

vim /usr/local/zabbix-server/share/zabbix/alertscripts/SendEmail.sh

# Description: zabbix邮件告警脚本# Notes:       使用sendEmail# 脚本的日志文件
LOGFILE="/tmp/Email.log" > "$LOGFILE"exec1>"$LOGFILE"exec2>&1

SMTP_server='smtp.exmail.qq.com'
# SMTP服务器,变量值需要自行修改
username='123@test.com'
# 用户名,变量值需要自行修改
from_email_address='123@test.com'
# 发件人Email地址,变量值需要自行修改
password='123456'
# 密码,变量值需要自行修改
to_email_address="$1"
# 收件人Email地址,zabbix传入的第一个参数
message_subject_utf8="$2"
# 邮件标题,zabbix传入的第二个参数
message_body_utf8="$3"
# 邮件内容,zabbix传入的第三个参数# 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
# 转换邮件内容为GB2312,解决收到邮件内容乱码
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
# 发送邮件
sendEmail='/usr/local/sbin/sendEmail'
set -x
############   邮件参数使用说明   #######
#       -s      设置发件人邮箱SNTP服务器#
#       -xu     设置发件人邮箱用户名    #
#       -f      设置发件人邮箱地址      #
#       -xp     设置发件人邮箱密码      #
#       -t      设置接受人邮箱地址      #
#       -u      设置发送的邮件主题      #
#       -m      设置发送的邮件内容      #
#########################################
"$sendEmail" -s "$SMTP_server" -xu "$username" -f "$from_email_address" -xp "$password" -t "$1" -u "$2"  -m "$3" -o message-content-type=text -o message-charset=utf8
echo"$1$2$3" >>/tmp/sendemil.log-$(date +%F)


2.然后执行下面的命令,设置脚本和日志文件权限:

touch /tmp/Email.log
chown zabbix.zabbix /tmp/Email.log
chown zabbix.zabbix /usr/local/zabbix-server/share/zabbix/alertscripts/SendEmail.sh
chmod +x /usr/local/zabbix-server/share/zabbix/alertscripts/SendEmail.sh

3.测试发送邮件

/usr/local/zabbix-server/share/zabbix/alertscripts/SendEmail.sh xxxx@qq.com "test" "this is test"

设计报警媒介并添加以下3个参数

{ALERT.SENDTO}                          收件人地址
{ALERT.SUBJECT}                         邮件主题
{ALERT.MESSAGE}                         邮件内容




打开配置---动作--写入报警信息

名称:Report problems to Zabbix

收件人邮件主题:{TRIGGER.STATUS}: {TRIGGER.NAME}: {HOST.NAME}

默认信息:

告警主机:{HOST.NAME}

主机IP: {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

事件ID: {EVENT.ID}



打开 管理---用户---报警媒介---添加对应报警接收邮箱更新即可



~~~~~~~~~~~~~~~~~~~~~~~~~~END~~~~~~~~~~~~~~~~~~~~~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息