zabbix安装过程

一、概述
Zabbix作为一个商业开源的监控软件,在易用性上相较纯粹的nagios来强的多,近期版本也更新到了3.0。与2.4版本相较,安装的过程多少有些差异,现记录此次安装全过程。同时记录下踩到坑,备忘!
zabbix的安装可分为下面表格中的四大块,
zabbix_server 监控主程序
front_end WEB管理界面
mysql 历史数据存储空间
nginx+php 为web界面提供http server
整个安装包括调试到Zabbix基本功能可用的程序,发现一个万能神器:官方文档+最高级别日志,90%的问题殾能解决。
二、安装全程
本此安装涉及到的软件版本:
CentOS6.X 64位
zabbix3.0
mysql5.1
php-5.5.37 (zabbix3.0要求5.4以上的php版本)
nginx-1.8.1
依赖软件库:(只标出有特别需求的)
curl >= 7.20 (这里是一个坑,不在意的话,后面会遇到一堆乱七八糟的问题)(#1)
1.前置依赖安装
1.1使用yum安装下列依赖软件
yum install -y gcc make zlib zlib-devel freetype freetype-devel gd-devel gd openssl openssl-devel gzip gzip-devel pcre pcre-devel libjpeg libpng libpng-devel libxml2 libxml2-devel
安装mysql
yum install mysql mysql-devel mysql-server
1.2 从源码编译curl,要求版本大于7.2(#1)
tar xzf curl-7.50.0.tar.gz
cd curl-7.50.0
./configure --prefix=/usr/local/curl
make && make install
1.3 mysql的初始化
启动mysql
/etc/init.d/mysqld start
mysqladmin -uroot password '*********' #设置mysql root初始密码
2.zabbix安装
2.1采用源码编译的方式
作为服务器角色存在的服务器,同时激活agent功能,server本身也需要被监控.(#1)
增加zabbix用户:
groupadd zabbix
useradd -M -s /sbin/nologin -g zabbix zabbix
编译zabbix,安装过程中提示缺少的库等依赖,使用yum安装即可!
tar xzf zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
./configure --enable-server --enable-agent --with-mysql \
--with-net-snmp --with-libcurl=/usr/local/curl/bin/curl-config \
--with-libxml2 --enable-agent --with-openssl \
--prefix=/opt/yingmoo/zabbix
make install
2.2配置zabbix_server
修改/opt/yingmoo/zabbix/etc/zabbix_server.conf文件,找到下面各项,去掉它们的注释,并改为下面的值。
ListenPort=10051
LogFile=/var/log/zabbix_server.log
DebugLevel=4
DBHost=192.168.1.198
DBName=zabbix
DBUser=zabbix
DBPassword=************(#2)
ListenIP=192.168.1.198
AlertScriptsPath=/opt/yingmoo/zabbix/share/zabbix/alertscripts
2.3编写一个简单的zabbix的启动脚本zabbix.sh
#!/bin/bash
daemon="/opt/yingmoo/zabbix/sbin/zabbix_server"
config="/opt/yingmoo/zabbix/etc/zabbix_server.conf"
pidfile="/tmp/zabbix_server.pid"
start() {
if [ -f $pidfile ];then
echo "zabbix is already running!"
exit 1
else
echo " Starting zabbix_server...."
sudo -u monitor $daemon -c $config
fi
}
stop() {
echo "stop zabbix_server"
PID=`cat $pidfile`
kill $PID
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
''
esac
2.4导入zabbix数据源文件
在数据库这块踩了个坑,使用了最新的mysql5.7,因为不熟悉所以导致后边zabbix的调试过程中出现不同的问题,都是因为max_allowed_packet = 128M 这个值配置不太合适导致,数据写不到库,报警数据读不到,延迟较大等问题。文档最后会把这部分mysql的日志贴出来。
数据库的操作这里直接引用官方文档的内容
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>'; (#2)
mysql> quit;
shell> cd zabbix-3.0.3/database/mysql #zabbix源码中的数据库文件
shell> mysql -uzabbix -p<password> zabbix < schema.sql #3个脚本导入的顺序不可乱
shell> mysql -uzabbix -p<password> zabbix < images.sql
shell> mysql -uzabbix -p<password> zabbix < data.sql
2.5 验证zabbix是否正常安装
sh zabbix.sh start
netstat -tlnp | grep 10051
10051端口存在,则zabbix服务端安装成功
注:至此zabbix的安装暂告一段落,在配置web服务后再继续zabbix的配置。
3.实现web环境
zabbix的WEB界面需要php的支持,zabbix的内容管理和配置都是通过WEB界面来进行的,下面配置nginx+php的WEB环境。官方文档中使用的是apache,此处更换为nginx。
3.1编译nginx
相对其他组件,整个系统对nginx没有特别的要求,为求快捷也可以考虑使用yum安装,对zabbix的安装不会有什么影响。
#yum install -y nginx
源码安装:
tar xzf nginx-1.8.1.tar.gz
./configure --prefix=/opt/yingmoo/nginx
make
make install
nginx的启动脚本这里就不再展示了,网上有很多,或者可以采用直接yum安装的脚本再根据自己的需要修改。
install完成后,启动nginx测试nginx功能是否正常:
/opt/yingmoo/nginx/sbin/nginx -t #检查配置文件是否可用
/opt/yingmoo/nginx/sbin/nginx #启动nginx进程
netstat -tlnp | grep 80 #验证80端口是否启动
出现80端口,证明nginx安装完成且功能正常。(相关配置放到后面跟php一起展示)
3.2编译 php
tar xjf php-5.5.37.tar.bz2
cd php-5.5.37
./configure --prefix=/opt/yingmoo/php --with-config-file-path=/opt/yingmoo/php/etc \
--with-mysql --with-mysqli --with-pdo-mysql \
--with-gd --enable-gd-native-ttf --with-iconv-dir=/opt/yingmoo/php/libs\
--with-freetype-dir=/opt/yingmoo/php/libs --with-jpeg-dir=/opt/yingmoo/php/libs \
--with-png-dir=/opt/yingmoo/php/libs --with-libxml-dir=/opt/yingmoo/php/libs --enable-xml \
--enable-bcmath --with-gettext --with-curl --enable-fpm --enable-mbstring \
--with-openssl --enable-sockets --with-xmlrpc --enable-zip --enable-opcache \
--with-zlib --enable-dom
make
make install
把php的可执行文件路径加入到系统变量中
#echo "export PATH=$PATH:/opt/yingmoo/php/bin" >> /etc/profile && source /etc/profile
执行php -v 显示php当前版本,则php正常。
3.3nginx+fastcgi+php的配置
nginx配置:
在nginx.conf中加入以下配置,其他nginx配置省略不显示
server {
listen 192.168.1.198:80;
server_name zabbix.yingmoo.net;
root /home/httpd/zabbix;
#charset koi8-r;
index index.php index.html;
#access_log logs/host.access.log main;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# include fastcgi_params;
include fastcgi.conf;
}
}
配置php/fpm
fpm使用默认的配置文件即可!但zabbix对php有一些特殊的需求,修改/opt/yingmoo/php/etc/php.ini文件,找到下面的项目并修改成下面的值:
max_execution_time= 300
memory_limit =128M
post_max_size =16M
upload_max_filesize =2M
max_input_time= 300
always_populate_raw_post_data =-1
date.timezone=Asia/ShangHai
3.4测试
启动nginx、php-fpm :
echo "<? phpinfo() ?>" > /home/httpd/zabbix/info.php
访问http://192.168.1.198/info.php,能正常显示php的信息则php环境成功!

4.配置zabbix-frontend
在zabbix的源码文件中找到frontend文件夹,将下面的php复制到设置好的web根目录下
cd zabbix-3.0.3
cp -a frontends/php/ /home/httpd/zabbix
重启nginx和fpm,在浏览器中访问http://192.168.1.198/
出现下面界面则以上所有安装成功,可根据提示直接进入zabbix配置过程。(文档是安装后写的,过程中没有截图,此处借用官方文档中的原图。
《《图片可参考官方文档》》

5.zabbix_agent的安装配置
5.1 使用yum安装
相对于源码编译来说,yum安装,更方便一些,特别是对来客户端来说,与源码安装并无太多区别。
但在centos官方的yum源中并没有zabbix的包,需要先安装zabbix官方的yum源。对于agent来说,推荐使用yum来安装,除非在特殊需求的情况下。
rpm -ivh zabbix-release-3.0-1.el6.noarch.rpm
yum install -y zabbix-agent
5.2 源码安装agent
对于单agent来说,编译参数要简单的多:其他的跟server端是一样的。此次安装客户端都采用是yum,这部分文档引用官方文档原文。
tar -zxvf zabbix-3.0.0.tar.gz
cd zabbix-3.0.3
./configure --enable-agent
make install
5.3 配置agent
找到/etc/zabbix/zabbix_agentd.conf文件,修改下面几项内容。
Server=192.168.1.198
Hostname=192.168.1.100 #在zabbix系统里添加主机时,主机名与这个值要求一致,否则日志中会报错
ServerActive=192.168.1.198
三、zabbix监控的使用
不使用zabbix的邮件报警,这里通过外部脚本发送邮件。同时通过外部脚本,可以实现短信、微信或者其他方式的报警媒介。
1.增加报警媒介
1.1进入zabbix管理界面,进入“管理“”报警媒介类型“,选择创建媒体类型:
wKioL1eaERmSnry3AAAh965It6o465.png-wh_50
脚本参数是自zabbix3.0起才支持的选项。
1.2 进入用户中心(用户基本资料)报警媒介,添加报警媒介
wKiom1eaESSw2p_2AAAY5ad6R8U749.png-wh_50
点击添加,通过脚本报警配置完成。
2.编写脚本
#!/usr/bin/python
#for zabbix
#-*- coding:utf-8 -*-
import time
import sys
import smtplib
from email.Header import Header
from email import encoders
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.utils import parseaddr, formataddr
#define mailbox used for send mails
mail_host="smtp.qiye.163.com"
mail_from=" "
mail_user=" "
mail_pass="*************"
#define function
def send_mail(mailto,subject,body):
msg=MIMEMultipart()
msg['subject']=subject
msg['from']=mail_from
msg['to']=mail_to
msg['date']=time.ctime()
txt=MIMEText(body,'plain','utf-8')
msg.attach(txt)
s=smtplib.SMTP(mail_host,25)
s.set_debuglevel(0)
s.ehlo()
s.starttls()
s.ehlo()
s.login(mail_user,mail_pass)
s.sendmail(mail_from,mail_to,msg.as_string())
s.close()
#main function
if __name__=='__main__':
#get three argv from scripts
mail_to=sys.argv[1]
subject=sys.argv[2]
body=sys.argv[3]
send_mail(mail_to,subject,body)
sys.exit()

四、安装过程中遇到的问题

Problem 1:
Mysql配置不合适导致的问题
现象:客户端可达,图形没有数据,不出图,mysql报以下错误:
Aborted connection 9 to db: 'zabbix' user: 'zabbix' host: 'nosql.yingmoo.com' (Got an error reading communication packets)
解决:修改max_allowed_packet = 128配置后解决
最开始使用了mysql5.7,因为配置的问题导致各种问题,包括在后面配置邮件报警的时候,邮件发送不及时,同时数据库的日志还一直在报错。最后干脆把mysql的版本换回了5.1,同时修改了上面的配置,然后一切正常。
Problem 2:

Php在安装时候编译参数不完全,特别是下面几个参数。
--with-iconv-dir=/opt/yingmoo/php/libs
--with-freetype-dir=/opt/yingmoo/php/libs
--with-jpeg-dir=/opt/yingmoo/php/libs
--with-png-dir=/opt/yingmoo/php/libs
如果在编译时缺少,即使增加了--with-gd依然会出现下图红圈中选项不支持的情况。
wKiom1eaEOmhbCKgAABPQbc3POg005.png-wh_50
另外如果,系统中不加入php的系统变量,则在修改3.3中php的参数时,是不会生效的!!!

Problem 3:
邮件报警,需要在zabbix编译的时候加入—with-openssl参数,否则会出现
13662:20160726:180213.098 Support for SMTP authentication was not compiled in ---这个问题。

Problem 4:
脚本路径的问题:
wKiom1eaENnh4KthAAAW3I8zn1M300.png-wh_50
这里只填脚本的名称,而不是绝对路径,在调用时zabbix会到{datadir}/zabbix/alertscripts这个路径下去查找,这部分由配置文件中的AlertScriptsPath 选项决定!这部分需要特别注意。在配置时在这踩了个坑,耽误了不短时间!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值