本节内容:

  • 实验环境
  • 安装准备
  • 安装MySQL
  • 安装Zabbix3.0.1
  • 其他主机安装agent

一、实验环境

主机名 操作系统版本 IP地址 安装软件
console CentOS 7.0 114.55.29.246 Httpd、Nginx、MySQL、Zabbix
log1 CentOS 7.0 114.55.29.86 Zabbix agent
log2 CentOS 7.0 114.55.29.241 Zabbix agent

二、安装准备

为了安全考虑,zabbix只使用普通用户运行,如果你的系统没有名叫zabbix的用户,你需要创建一个用户,如下:

[root@console local]# groupadd zabbix
[root@console local]# useradd -g zabbix zabbix
[root@console local]# id zabbix
uid=(zabbix) gid=(zabbix) groups=(zabbix)  

三、安装MySQL

console主机安装mysql5.6。下载地址:http://mirrors.sohu.com/mysql

1.安装依赖包

[root@console local]# yum install libaio* -y

2.解压安装

[root@console local]# tar zxf mysql-5.6.-linux-glibc2.-x86_64.tar.gz
[root@console local]# ln -sv mysql-5.6.-linux-glibc2.-x86_64 mysql

3.新建用户

运行mysql最好不要用root去运行,而以普通用户身份。添加用户mysql。

[root@console local]# groupadd -r -g  mysql
[root@console local]# useradd -g mysql -r -s /sbin/nologin -u mysql
[root@console local]# id mysql
uid=(mysql) gid=(mysql) groups=(mysql)

4.修改mysql文件权限为mysql.mysql

[root@console local]# cd mysql
[root@console mysql]# chown -R mysql.mysql ./*

5.执行初始化操作,生成一个系统库叫mysql,它里面保存着有当前所有能够使用mysql服务器的用户帐号、所有数据库的名字、每个库中表的名字、表中字段的名字等等。

脚本路径:/usr/local/mysql/scripts

创建数据文件目录:

[root@console mysql]# mkdir -pv /data/{mydata,binlog}
[root@console mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mydata
[root@console mysql]# ls /data/mydata

6.修改mysql目录下的文件属主为root,属组为mysql

[root@console mysql]# chown -R root .

7.修改data目录属主、属组为mysql

[root@console mysql]# chown -R mysql.mysql /data

8.拷贝修改mysql的配置文件

copy写好的my.cnf到/etc/目录下。

9.拷贝mysql的启动脚本,并加入系统服务

[root@console mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@console mysql]# chkconfig --add mysqld

10.启动mysql

[root@console mysql]# service mysqld start

11.配置环境变量,配置完重新打开一个shell

[root@console mysql]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH

12.修改root密码,因为一装完root密码是空的

[root@console ~]# mysql -uroot mysql 

mysql> UPDATE user SET Password=PASSWORD('wisedu123') where USER='root';
mysql> FLUSH PRIVILEGES;

此时再以root登录就需要密码了。

13.删除两个匿名帐号

mysql> use mysql
mysql> SELECT host,user,password FROM user;

mysql> DROP USER ''@localhost;
mysql> DROP USER ''@console;

四、安装Zabbix3.0.1

官方说3.0以上版本是在redhat7以上运行的,我之前在redhat6.6尝试编译安装也是可以的。

1.安装依赖包

[root@console ~]# yum install net-snmp-devel libxml2-devel libcurl-devel  libssh2-devel unixODBC-devel -y

2.安装JDK

如果zabbix需要监控JMX应用的程序,在编译zabbix的时候就需要--enable-java,同时也需要安装配置好JDK。

# mkdir /usr/java
# tar zxf jdk-8u73-linux-x64.gz -C /usr/java/
# vim /etc/profile
# source /etc/profile

3.安装php环境

zabbix的服务端程序是用php写的,因此需要一个支持LAMP架构的服务器平台。

CentOS 6:

CenOS 6的yum源中自带的php解释器版本过低,是 5.3版本,需要>=5.4版本才可以。这里使用 Webtatic EL6的YUM源来安装php5.4,我们首先安装Webtatic EL6 YUM源:

# rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
# yum install php54w php54w-mysql php54w-mbstring php54w-bcmath php54w-gd php54w-xml -y

CentOS 7:

# yum install php php-fpm php-mysql php-mbstring php-bcmath php-gd php-xml -y

4.编译安装zabbix server

如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令: ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl 如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令: ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2 如果仅安装agent,可使用类似如下配置命令: ./configure --enable-agent

在console主机上同时安装server和agent,并支持将数据放入mysql数据中:

[root@console local]# cd /usr/local/
[root@console local]# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz
[root@console local]# tar zxf zabbix-3.0..tar.gz
[root@console local]# cd zabbix-3.0./
[root@console zabbix-3.0.]# ./configure --prefix=/usr/local/zabbix-3.0./ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-ipv6 --with-ssh2 --enable-java --with-unixodbc

[root@console zabbix-3.0.]# make && make install

5.初始化数据库

For Zabbix server and proxy daemons, as well as Zabbix frontend, a database is required. It is not needed to run Zabbix agent. 数据库初始化脚本在/usr/local/zabbix-3.0.1/database/mysql,分别是schema.sql、images.sql和data.sql。

【注意】:导入顺序不能变。

先在MySQL中创建zabbix数据库:

 [root@console ~]# mysql -uroot -p
mysql> create database zabbix default charset utf8;
mysql> grant all on zabbix.* to zabbix@localhost identified by 'wisedu';
mysql> grant all on zabbix.* to zabbix@'%.%.%.%' identified by 'wisedu';
mysql> flush privileges;

然后退出,使用zabbix用户登录mysql并导入数据:

[root@console ~]# mysql -uzabbix -p
mysql> use zabbix;
mysql> source /usr/local/zabbix-3.0./database/mysql/schema.sql

如果你仅仅是初始化proxy的数据库,那么schema.sql够了。如果初始化server,那么接着导入下面两个sql:

mysql> source /usr/local/zabbix-3.0./database/mysql/images.sql
mysql> source /usr/local/zabbix-3.0./database/mysql/data.sql

如果是初始化agent,就不需要导入任何脚本。

6.配置zabbix server

因为上面我在编译加了--prefix=/usr/local/zabbix-3.0.1/参数,所以配置文件路径在:/usr/local/zabbix-3.0.1/etc。如果在编译时没有加这个参数,默认配置文件在/usr/local/etc/。

[root@console mysql]# cd /usr/local/zabbix-3.0./etc/

修改server端配置文件:

备份原配置文件,然后去掉注释:

[root@console etc]# mv zabbix_server.conf zabbix_server.conf.bak
[root@console etc]# cat zabbix_server.conf.bak | grep -v "#" | grep -v "^$" > zabbix_server.conf

最终改后的配置文件内容如下:

[root@console etc]# cat zabbix_server.conf
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=wisedu
# 注意mysql服务器上的mysql.sock文件路径,一般zabbix server和mysql在同一台就改为/tmp/mysql.sock,否则不修改
DBSocket=/tmp/mysql.sock
Timeout=
LogSlowQueries=

修改agent配置文件:

[root@console etc]# mv zabbix_agentd.conf zabbix_agentd.conf.bak
[root@console etc]# cat zabbix_agentd.conf.bak | grep -v "#" | grep -v "^$" > zabbix_agentd.conf

agent配置文件内容如下:

[root@console etc]# cat zabbix_agentd.conf
LogFile=/var/log/zabbix_agentd.log
Server=114.55.29.246
# 主动向zabbix server发送监控内容
ServerActive=114.55.29.246
Hostname=console
Include=/usr/local/zabbix-3.0./etc/zabbix_agentd.conf.d/*.conf

创建日志文件:

[root@console etc]# touch /var/log/{zabbix_server.log,zabbix_agentd.log}
[root@console etc]# chmod /var/log/zabbix_*

7.启动zabbix server

[root@console ~]# cd /usr/local/zabbix-3.0./sbin/
[root@console sbin]# ./zabbix_server

查看10051端口,端口默认是10051。 一大堆进程。

可以查看启动日志:

[root@log sbin]# tail -100f /var/log/zabbix_server.log

常见启动错误:

./zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

解决:

# ln -s /usr/local/mysql/lib/libmysqlclient.so.  /usr/lib64/

8.停止zabbix server

# killall - zabbix_server

9.安装zabbix web界面(和server端装在一台机器)

zabbix的服务端程序是用php写的,因此需要一个支持LAMP架构的服务器平台。Web服务器可以使用Httpd或者Nginx。 鉴于zabbix最近爆出来的漏洞:zabbix的jsrpc的profileldx2参数存在insert方式的SQL注入漏洞,攻击者可以无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限。建议升级到最新的zabbix-3.0.4版本,或者使用nginx,这样可以在server段加入如下配置处理这个漏洞:

if ($request_uri ~ ^(.+\.php)(.*)$) {
set $req $;
}
if ($req ~* "union[+|(%20)]") {
return ;
}
if ($req ~* "and[+|(%20)]") {
return ;
}
if ($req ~* "select[+|(%20)]") {
return ;
}
if ($req ~* "or[+|(%20)]") {
return ;
}
if ($req ~* "concat[+|(%20)]") {
return ;
}
if ($req ~* "cost[+|(%20)]") {
return ;
}

9.1 使用httpd

9.1.1 安装httpd

我这里使用httpd2.4。

[root@console ~]# yum install -y httpd
9.1.2 部署zabbix web

将ZABBIX安装目录下 frontends/php 下面的php源代码文件拷贝到web服务器html文件目录下面。 先建立一个子目录,将zabbix终端php文件拷贝到该子目录里面,执行下面的命令:

[root@console ~]# cd /var/www/html/
[root@console html]# mkdir /var/www/html/zabbix
[root@console html]# cp -ar /usr/local/zabbix-3.0./frontends/php/* ./zabbix/

启动httpd:

[root@console html]# systemctl start httpd.service
[root@console ~]# systemctl enable httpd.service

访问:

http://114.55.29.246/zabbix/

(1) You should see the first screen of the frontend installation wizard.

(2) 检查环境

查看到几处不符合要求,需修改该PHP文件配置文件参数:

# vim /etc/php.ini
post_max_size = 16M
max_execution_time =
max_input_time =
date.timezone = Asia/Shanghai

然后重启httpd和mysql,不重启mysql下面sql连接时还是会报错。

[root@console ~]# systemctl restart httpd.service
[root@console ~]# service mysqld restart

重新访问,全部依赖都通过:

(3) 输入之前在MYSQL后台设置的zabbix数据库信息:

DBName=zabbix
DBUser=zabbix
DBPassword=wisedu

报错:

解决:

[root@console ~]# mkdir /var/lib/mysql
[root@console ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

点击下一步,还是报错:

解决:

mysql> grant all on zabbix.* to 'zabbix'@'console' identified by 'wisedu';
mysql> flush privileges;

如果以上方法试过后,还报下面的错误:

Error connecting to database: Can't connect to MySQL server on ''114.55.29.246''

请检查SELinux是否关闭。

[root@console ~]# /usr/sbin/sestatus -v

关闭SELinux:

[root@console ~]# setenforce
[root@console ~]# vim /etc/sysconfig/selinux

(4) 输入zabbix服务器端的详细信息

(5) 检查一下设置情况

(6) 下载配置文件,并把它放置在/var/www/html/zabbix/conf/ 目录下

Alternatively, you can install it manually:
Download the configuration file
Save it as "/var/www/html/zabbix/conf/zabbix.conf.php"

[root@console conf]# cd /var/www/html/zabbix/conf/
[root@console conf]# chown zabbix.zabbix zabbix.conf.php

(7) 点击Finish

(8) Zabbix frontend is ready! The default user name is Admin, password zabbix.

9.2 使用Nginx

9.2.1 安装openresty

log2主机上安装openresty

# yum install readline-devel pcre-devel openssl-devel gcc -y
# cd /usr/local
# tar zxf openresty-1.9.7.3.tar.gz
# cd openresty-1.9.7.3/
# ./configure --with-http_stub_status_module
# gmake && gmake install

安装完成后,在/usr/local/下多了个openresty目录,nginx部署安装在/usr/local/openresty/nginx。
将nginx加入系统服务:

Redhat7之前的版本:

(1) 上传nginx启动脚本到/etc/init.d/目录下

(2) 授权脚本执行权限

[root@log2 init.d]# chmod a+x nginx

(3) 加入系统服务

[root@log2 init.d]# chkconfig --add nginx

(4) nginx开启自启动

[root@log2 init.d]# chkconfig nginx on

(5) nginx启停重载

service nginx start/stop/restart/reload

Redhat7版本:

(1) 启动服务单元

把写好的nginx.service放到/etc/systemd/system/目录下。

(2) 设置开机启动

[root@log2 ~]# systemctl enable nginx.service

(3) 启动/停止/重载nginx服务

systemctl start/stop/reload nginx.service
9.2.2 启动php

Nginx是没办法以模块化方式或者CGI方式跟php结合的,php就可以工作在fastcgi模式下。即单独启动为服务。

# vim /etc/php.ini
post_max_size = 16M
max_execution_time =
max_input_time =
date.timezone = Asia/Shanghai

启动:

# systemctl start php-fpm.service
9.2.3 部署zabbix web

将zabbix安装目录下 frontends/php 下面的php源代码文件拷贝到web服务器html文件目录下面。

# mkdir /usr/local/openresty/nginx/html/zabbix
# cp -ar /usr/local/zabbix-3.0./frontends/php/* /usr/local/openresty/nginx/html//zabbix/

修改nginx配置文件:

# cd /usr/local/openresty/nginx/conf/
# cp nginx.conf nginx.conf.bak

配置文件内容:

#user  nobody;
worker_processes ; error_log logs/error.log info;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; proxy_buffer_size 128k;
proxy_buffers 32k;
proxy_busy_buffers_size 128k; sendfile on;
#tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; #gzip on; server {
listen ;
server_name zabbix.wisedu.com; #charset koi8-r; access_log logs/zabbix.access.log main; index index.php index.html index.html;
root /usr/local/openresty/nginx/html; if ($request_uri ~ ^(.+\.php)(.*)$) {
set $req $;
}
if ($req ~* "union[+|(%20)]") {
return ;
}
if ($req ~* "and[+|(%20)]") {
return ;
}
if ($req ~* "select[+|(%20)]") {
return ;
}
if ($req ~* "or[+|(%20)]") {
return ;
}
if ($req ~* "concat[+|(%20)]") {
return ;
}
if ($req ~* "cost[+|(%20)]") {
return ;
} location / {
try_files $uri $uri/ /index.php?$args;
} location ~ .*\.(php)?$ {
fastcgi_buffer_size 128k;
fastcgi_buffers 256k;
fastcgi_busy_buffers_size 256k;
expires -1s;
try_files $uri =;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:;
} error_page /50x.html;
location = /50x.html {
root html;
}
}
}

nginx配置

浏览器访问url进行安装,安装过程和上面httpd一样。

9.2.4 切割Nginx日志

如果开启Nginx的debug日志,就需要考虑到切割日志:

# cd /etc/logrotate.d/
# vim nginx
/usr/local/openresty/nginx/logs/*.log {
notifempty
weekly
rotate 4
nocompress
copytruncate
postrotate
service nginx reload
endscript
}

五、其他主机安装agent

1.添加用户

Zabbix agent也不能用root用户运行,要以zabbix用户身份运行。否则:

# ./zabbix_agentd
zabbix_agentd []: user zabbix does not exist
zabbix_agentd []: cannot run as root!

添加用户:

# groupadd zabbix
# useradd -g zabbix zabbix
# id zabbix
uid=(zabbix) gid=(zabbix) groups=(zabbix)

2.安装agent

从console主机上将zabbix源代码包copy过来:

[root@console local]# scp -p zabbix-3.0..tar.gz root@114.55.29.86:/usr/local/
[root@console local]# scp -p zabbix-3.0..tar.gz root@114.55.29.241:/usr/local/
# yum install -y gcc
# cd /usr/local/
# tar zxf zabbix-3.0..tar.gz
# cd zabbix-3.0./
# ./configure --prefix=/usr/local/zabbix-3.0./ --enable-agent
# make && make install

安装agent

3.配置agent

# cd /usr/local/zabbix-3.0./etc/
# mv zabbix_agentd.conf zabbix_agentd.conf.bak
# cat zabbix_agentd.conf.bak | grep -v "#" | grep -v "^$" > zabbix_agentd.conf
LogFile=/var/log/zabbix_agentd.log
Server=114.55.29.246
# 主动向zabbix server发送监控内容
ServerActive=114.55.29.246
# 本机的主机名或IP地址
Hostname=log1
Include=/usr/local/zabbix-3.0./etc/zabbix_agentd.conf.d/*.conf

zabbix_agentd.conf

创建日志文件:

# touch /var/log/zabbix_agentd.log
# chmod /var/log/zabbix_agentd.log

4.启动agent

# cd /usr/local/zabbix-3.0./sbin/
# ./zabbix_agentd

查看端口是否监听,默认agent端口是10050:

# lsof -i :

可以查看日志:

# tail -100f /var/log/zabbix_agentd.log

5.停止agent

# killall - zabbix_agentd

具体的监控配置实例见下一篇文章。

zabbix安装配置的更多相关文章

  1. zabbix安装配置(2.4.5)

    这是第一次安装配置,直接遭遇配置文件不明晰的大坑,因在编译阶段未指明配置文件路径,导致zabbix_server启动时直接读取默认的 /usr/local/zabbix/etc/zabbix_serv ...

  2. zabbix安装配置agent程序之agent配置文件详解

    安装zabbix-agent http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/ 下载:zabbix-agent-3.2.0-1.el6.x86_64.r ...

  3. zabbix 安装配置以及漏洞检测脚本

    最近zabbix爆出sql注入漏洞.之前一直没装过.就想着来安装一次.我在centos配置玩玩,记录一下:1.安装LAMP yum -y install httpd  mysql  mysql-ser ...

  4. zabbix 安装配置介绍

    200 ? "200px" : this.width)!important;} --> 介绍 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件.Zabbi ...

  5. zabbix安装配置2

    1.平台:centos6.5 2.安装epel: yum install http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch ...

  6. nginx访问不了zabbix安装配置界面

    通过yum安装的php等其他各种软件,配置好后,html目录下面php可以解析,但是就是访问不到setup.php文件.后来各种查找,发现是setup解析错误 PHP Parse error:  sy ...

  7. zabbix 安装配置

    zabbix的配置文件一般有三种:zabbixserver的配置文件      zabbix_server.confzabbixproxy的配置文件      zabbix_proxy.confzab ...

  8. zabbix安装配置界面点击next step没反应

    修改/var/lib/php/session/宿主或者添加777权限 看到有个人说这个不能用,一开始我也没用,找了各种方式都不行,最后死马当作活马医,改了下权限,卧槽,一下子就OK了,日

  9. 安装配置zabbix代理之zabbix_proxy

    配置Proxy代理 如图所示: zabbix_server端在阿里云上,其代理程序部署在各地机房,代理程序收集所在机房的所有机器监控指标,然后传给server端 环境说明: CentOS releas ...

随机推荐

  1. MyBatis框架原理(三)

    一.框架结构原理图 二.MyBatis框架执行流程 三.总结 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置, ...

  2. Tcl与Design Compiler (九)——综合后的形式验证

    本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 这里来讲一下forma ...

  3. QT Creator 快速入门教程 读书笔记(三)

    一   信号和槽 GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘.绘制完成.点击鼠标.敲击键盘等.当事件发生时,UI 会产生相应的变化,让用户直观地看到. 大部分编程(例如Win SDK ...

  4. PMP和PRINCE2应该选择哪个?光环国际项目管理认证

    对于项目管理课程的选择,我们不能盲目地做选择,一定要从自身实际出发.从来都没有更好的课程,只有更合适自己的课程. 那么,如何选择合适自己的项目管理课程呢? 让我们从PMP与PRINCE2之间的差异开始 ...

  5. js两个判断&&的值与||的值

    var value1="val1"; var value2="val2"; alert(value1&&value2);    //结果为val ...

  6. 20155232 2016-2017-3 《Java程序设计》第5周学习总结

    20155232 2016-2017-3 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 1.使用try和catch 将正常的流程放try块中,异常处理放catch ...

  7. WPF之路一:相对路径图片显示

    由于公司项目的需要,改为WPF开发,因此需要学习WPF,遇到的第一个问题就是在显示的图片的时候,写绝对路径,图片显示没有问题,但是写相对路径的时候,发现图片无法正常显示,在网上搜了一下,得到的答案是需 ...

  8. 老李分享:接电话扩展之uiautomator 1

    老李分享:接电话扩展之uiautomator   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq ...

  9. Selenium测试专项一班隆重开班

    Selenium测试专项一班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...

  10. 百度Web前端面试经历

    今天面了百度的前端实习职位.一面.时间大概是50分钟.面试官是位很帅气的小伙子,非常友好的一个人.进门的时候他让我等一会,我瞄了一眼他的电脑屏幕,发现他在coding…… 9点50开始的面试. 面试官 ...