Zabbix安装部署

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

zabbix简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。


zabbix的主要特点:   

- 安装与配置简单,学习成本低
- 支持多语言(包括中文)   
- 免费开源   
- 自动发现服务器与网络设备   
- 分布式监视以及WEB集中管理功能   
- 可以无agent监视   
- 用户安全认证和柔软的授权方式   
- 通过WEB界面设置或查看监视结果   
- email等通知功能等等  


Zabbix主要功能:    

- CPU负荷   
- 内存使用   
- 磁盘使用   
- 网络状况   
- 端口监视   
- 日志监视


Zabbix安装:

一.安装LNMP环境

参考:http://pvbutler.blog.51cto.com/7662323/1733287



二.Zabbix服务端安装

Server:10.15.44.18

zabbix下载、安装编译环境、组件

1
2
3
4
5
6
7
[root@localhost ~] # mkdir /app
[root@localhost ~] # cd /app/
[root@localhost app] # wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.6/zabbix-2.2.6.tar.gz
[root@localhost app] # yum -y install gcc gcc-c++ autoconf curl curl-devel net-snmp net-snmp-devel perl-DBI
[root@localhost app] # tar zxvf zabbix-2.2.6.tar.gz 
[root@localhost app] # groupadd zabbix
[root@localhost app] # useradd -s /sbin/nologin -g zabbix zabbix

   创建、导入zabbix数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@localhost app] # cd zabbix-2.2.6/database/mysql/   #进入mysql数据库创建脚本目录
[root@localhost mysql] # ls
data.sql  images.sql  schema.sql  
[root@localhost mysql] # mysql -u root -pREDHAT
Welcome to the MySQL monitor.  Commands end with ; or \g.
 
mysql> create database zabbix character  set  utf8;   #创建数据库zabbix,并且数据库编码使用utf8
Query OK, 1 row affected (0.03 sec)
 
mysql> insert into mysql.user(Host,User,Password) values( 'localhost' , 'zabbix' ,password( '123456' ));     #新建账户zabbix,密码123456
Query OK, 1 row affected, 3 warnings (0.02 sec)
 
mysql> flush privileges;     #刷新系统授权表
Query OK, 0 rows affected (0.00 sec)
 
mysql> grant all on zabbix.* to  'zabbix' @ '127.0.0.1'  identified by  '123456'  with grant option;      #允许账户zabbix能从本机连接到数据库zabbix
Query OK, 0 rows affected (0.02 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> use zabbix     #进入数据库,按照顺序导入脚本文件到zabbix数据库,否则会出错。
mysql>  source  /app/zabbix-2 .2.6 /database/mysql/schema .sql  
mysql>  source  /app/zabbix-2 .2.6 /database/mysql/images .sql
mysql>  source  /app/zabbix-2 .2.6 /database/mysql/data .sql
mysql>  exit
Bye
[root@localhost mysql] #

    或者以下方式导入脚本到数据库

1
2
3
[root@localhost mysql] # mysql -uzabbix -p123456 -hlocalhost zabbix < /app/zabbix-2.2.6/database/mysql/schema.sql
[root@localhost mysql] # mysql -uzabbix -p123456 -hlocalhost zabbix < /app/zabbix-2.2.6/database/mysql/images.sql
[root@localhost mysql] # mysql -uzabbix -p123456 -hlocalhost zabbix < /app/zabbix-2.2.6/database/mysql/data.sql

    安装zabbix

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[root@localhost mysql] # cd /app/zabbix-2.2.6
[root@localhost zabbix-2.2.6] # ./configure --prefix=/app/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql=/usr/bin/mysql_config
[root@localhost zabbix-2.2.6] # make  
In  file  included from db.c:22:
../../.. /include/zbxdb .h:65:20: error: mysql.h: No such  file  or directory
../../.. /include/zbxdb .h:66:21: error: errmsg.h: No such  file  or directory
../../.. /include/zbxdb .h:67:27: error: mysqld_error.h: No such  file  or directory
In  file  included from db.c:22:
../../.. /include/zbxdb .h:179: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../../.. /include/zbxdb .h:180: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../../.. /include/zbxdb .h:182: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘zbx_db_fetch’
db.c:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
db.c:165: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
db.c: In  function  ‘is_recoverable_mysql_error’:
db.c:180: error: ‘conn’ undeclared (first use  in  this  function )
db.c:180: error: (Each undeclared identifier is reported only once
db.c:180: error:  for  each  function  it appears  in .)
db.c:182: error: ‘CR_CONN_HOST_ERROR’ undeclared (first use  in  this  function )
db.c:183: error: ‘CR_SERVER_GONE_ERROR’ undeclared (first use  in  this  function )
db.c:184: error: ‘CR_CONNECTION_ERROR’ undeclared (first use  in  this  function )
db.c:185: error: ‘CR_SERVER_LOST’ undeclared (first use  in  this  function )
db.c:186: error: ‘CR_UNKNOWN_HOST’ undeclared (first use  in  this  function )
db.c:187: error: ‘ER_SERVER_SHUTDOWN’ undeclared (first use  in  this  function )
db.c:188: error: ‘ER_ACCESS_DENIED_ERROR’ undeclared (first use  in  this  function )
db.c:189: error: ‘ER_ILLEGAL_GRANT_FOR_TABLE’ undeclared (first use  in  this  function )
db.c:190: error: ‘ER_TABLEACCESS_DENIED_ERROR’ undeclared (first use  in  this  function )
db.c:191: error: ‘ER_UNKNOWN_ERROR’ undeclared (first use  in  this  function )
db.c: In  function  ‘zbx_db_connect’:
db.c:294: error: ‘conn’ undeclared (first use  in  this  function )
db.c:296: error: ‘CLIENT_MULTI_STATEMENTS’ undeclared (first use  in  this  function )
db.c: In  function  ‘zbx_db_close’:
db.c:559: error: ‘conn’ undeclared (first use  in  this  function )
db.c: In  function  ‘zbx_db_vexecute’:
db.c:1019: error: ‘conn’ undeclared (first use  in  this  function )
db.c: At  top  level:
db.c:1149: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
db.c:1478: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
db.c:1607: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘zbx_db_fetch’
make [3]: *** [db.o] Error 1
make [3]: Leaving directory ` /app/zabbix-2 .2.6 /src/libs/zbxdb '
make [2]: *** [all-recursive] Error 1
make [2]: Leaving directory ` /app/zabbix-2 .2.6 /src/libs '
make [1]: *** [all-recursive] Error 1
make [1]: Leaving directory ` /app/zabbix-2 .2.6 /src '
make : *** [all-recursive] Error 1
[root@localhost zabbix-2.2.6] #   zabbix编译时找不到mysql.h文件,需要安装 mysql-devel包
root@localhost zabbix-2.2.6] # yum install mysql-devel -y
[root@localhost zabbix-2.2.6] # make 
checking  for  mysql_config...  /usr/bin/mysql_config
checking  for  main  in  -lmysqlclient ... no
configure: error: Not found mysqlclient library
[root@localhost zabbix-2.2.6] # ln -s /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib64/mysql/libmysqlclient.so  #32位系统为/usr/lib/mysql,注意系统版本同,文件版本可能不一样,这里是16.0.0
[root@localhost zabbix-2.2.6] # ln -s /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 /usr/lib64/mysql/libmysqlclient_r.so
[root@localhost zabbix-2.2.6] # make
[root@localhost zabbix-2.2.6] # make install
[root@localhost zabbix-2.2.6] # ln -s /app/zabbix/sbin/* /usr/local/sbin/
[root@localhost zabbix-2.2.6] # ln -s /app/zabbix/bin/* /usr/local/bin/

   数据库是编译安装的所以要把环境变量导出:export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile && source /etc/profile

参数说明: 

    --prefix=/app/zabbix   #zabbix的安装目录 -

    -enable-server  #作为服务器端 

    --enable-agent  #作为客户端 

    --with-mysql  # 支持mysql zabbix也运行ladp,oracle,postgresql,sqlite3等数据库 

    --with-net-snmp  # 支持snmp     

    --with-libcurl  # 是用来监控web页面的


修改zabbix配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost zabbix-2.2.6] # cd /app/zabbix/etc/
[root@localhost etc] # cp zabbix_server.conf zabbix_server.confbak
[root@localhost etc] # vim zabbix_server.conf
LogFile= /app/zabbix/logs/zabbix_server .log
PidFile= /app/zabbix/pid/zabbix_server .pid
DBHost=localhost
DBName=zabbix           #数据库名称
DBUser=zabbix           #数据库用户名
DBPassword=123456       #数据库密码
ListenIP=127.0.0.1      #数据库ip地址
CacheSize=512M          #根据服务器性能修改,太小后面会报out of memory
AlertScriptsPath= /app/zabbix/alertscripts     #zabbix运行脚本存放目录
[root@localhost etc] # cp zabbix_agentd.conf zabbix_agentd.confbak
[root@localhost etc] # vim zabbix_agentd.conf
Include= /app/zabbix/etc/zabbix_agentd .conf.d/
Server=127.0.0.1
UnsafeUserParameters=1       #启用自定义key
LogFile= /app/zabbix/logs/zabbix_agentd .log
[root@localhost etc] # mkdir ../logs
[root@localhost etc] # touch ../logs/zabbix_server.log
[root@localhost etc] # touch ../logs/zabbix_agentd.log
[root@localhost etc] # mkdir ../pid
[root@localhost etc] # touch ../pid/zabbix_server.pid
[root@localhost etc] # mkdir alertscripts
[root@localhost etc] # chmod 777 ../logs/zabbix_*
[root@localhost etc] # chmod 777 ../pid/zabbix_server.pid

    添加开机启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost etc] # cd /app/zabbix-2.2.6/misc/init.d/fedora/core/
[root@localhost core] # cp zabbix_server /etc/rc.d/init.d/zabbix_server
[root@localhost core] # cp zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
[root@localhost core] # chmod +x /etc/rc.d/init.d/zabbix_*
[root@localhost core] # chkconfig --add zabbix_server 
[root@localhost core] # chkconfig --add zabbix_agentd 
[root@localhost core] # chkconfig zabbix_server on
[root@localhost core] # chkconfig zabbix_agentd on
[root@localhost core] # vim /etc/rc.d/init.d/zabbix_server 
         BASEDIR= /app/zabbix
[root@localhost core] # vim /etc/rc.d/init.d/zabbix_agentd          
         BASEDIR= /app/zabbix      
[root@localhost core] #

   添加zabbix服务对应的端口

1
2
3
4
5
6
7
[root@localhost core] # cp /etc/services /etc/servicesbak
[root@localhost core] # vim /etc/services   #文末添加以下4行
zabbix-agent    10050 /tcp                # Zabbix Agent
zabbix-agent    10050 /udp                # Zabbix Agent
zabbix-trapper  10051 /tcp                # Zabbix Trapper 
zabbix-trapper  10051 /udp                # Zabbix Trapper
[root@localhost core] #

   配置web站点 

/usr/share/nginx/html/为Nginx默认站点目录 nginx为Nginx运行账户

1
2
3
4
5
6
7
[root@localhost core] # cp -r /app/zabbix-2.2.6/frontends/php /usr/share/nginx/html/zabbix
[root@localhost core] # chown nginx:nginx -R /usr/share/nginx/html/zabbix/
[root@localhost core] # service zabbix_server start
Starting zabbix_server:                                    [  OK  ]
[root@localhost core] # service zabbix_agentd start
Starting zabbix_agentd:                                    [  OK  ]
[root@localhost core] #

   修改php配置文件参数

1
2
3
4
5
6
7
8
9
10
11
[root@localhost core] # cp /etc/php.ini /etc/php.inibak2
[root@localhost core] # vim /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
[root@localhost core] # cp /etc/php-fpm.conf /etc/php-fpm.confbak
[root@localhost core] # vim /etc/php-fpm.conf
request_terminate_timeout = 300
[root@localhost core] # service php-fpm reload
Reloading php-fpm:                                         [  OK  ]
[root@localhost core] #

   安装web

在浏览器中打开:http://10.15.44.18/zabbix/setup.php

(无法打开页面将php.ini中的open_basedir注释掉,或者修改成open_basedir = /usr/share/nginx/html/:/tmp/)

wKioL1aSgfXBvg4iAAMqj8_7rC4935.png

Next

wKiom1aSgw3CKXKKAAGxoxcBiaE230.png

检查系统环境设置,必须全部都为ok,才能继续Next,如果php编译安装时没有加载gettext这个模块支持多语言可以到源码php编译目录下去重新加载这个模块。

1
2
3
4
cd  /usr/local/src/php-5 .3.0 /ext/gettext
/usr/local/php/bin/phpize     #执行此命令
. /configure  --with-php-config= /usr/local/php/bin/php-config  #重新编译php
make  &&  make  install


wKiom1aSg6zBzeC3AAGQdRbljQA777.png

配置MySQL数据库信息

Database:MySQL

Database host:127.0.0.1

Database port:use default port

Database name:zabbix

User:zabbix

Password:123456

Test connection   #测试数据库连接是否正常,显示ok表示通过

测试OK后点击Next继续

wKiom1aShFDR6LKSAAFv0AZh37Q049.png

默认,Next  

wKiom1aShIbDOW0HAAFtLfIWIrw133.png

检查一下设置情况,没问题直接Next

wKioL1aShRnRG16aAAFQtw-rcZo755.png

下载配置文件,并把他放置在conf/ 目录下,Finish  安装完成

wKioL1aShZWQyUsaAAFh7-jFXBI081.png

默认账号:用户名 admin 密码 zabbix

注:如下报错是因为zabbix数据未导入MYSQL数据库:

wKiom1aShbmzFsFjAADX_2sU474033.jpg

wKioL1aTD5uQI9jMAADHV67N9H0550.png


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@localhost src] # netstat -tunpl | grep zabbix
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      2026 /zabbix_agentd  
[root@localhost src] # sestatus
SELinux status:                 disabled
[root@localhost src] # tail -50f zabbix_server.log 
   2044:20160111:101348.978 [Z3001] connection to database  'zabbix'  failed: [1045] Access denied  for  user  'zabbix' @ 'localhost'  (using password: YES)
   2044:20160111:101348.978 Database is down. Reconnecting  in  10 seconds.
   2044:20160111:101358.978 [Z3001] connection to database  'zabbix'  failed: [1045] Access denied  for  user  'zabbix' @ 'localhost'  (using password: YES)
   2044:20160111:101358.978 Database is down. Reconnecting  in  10 seconds.
[root@localhost src] # mysql -u root -p
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by  '123456' ;
Query OK, 0 rows affected (0.01 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit
Bye
[root@localhost src] # service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[root@localhost src] # service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@localhost src] # netstat -tunpl | grep zabbix
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      2026 /zabbix_agentd  
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      4383 /zabbix_server  
[root@localhost src] #

wKiom1aTWjGhwfk8AAC_jKjIvBk952.png


查看zabbix的版本号:

1
2
3
4
[root@Zabbix ~] # zabbix_server --version
Zabbix server v2.2.6 (revision 48483) (27 August 2014)
Compilation  time : Jan 10 2016 19:58:57
[root@Zabbix ~] #


本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1733294,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
监控 关系型数据库 MySQL
CentOS8.5下安装部署开源监控系统Zabbix 6.0LTS
CentOS8.5下安装部署开源监控系统Zabbix 6.0LTS
794 0
CentOS8.5下安装部署开源监控系统Zabbix 6.0LTS
|
监控 网络协议 Linux
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)(下)
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)
333 0
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)(下)
|
监控 前端开发 安全
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)(中)
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)
427 0
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)(中)
|
存储 监控 前端开发
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)(上)
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)
554 0
【Zabbix】基于CentOS 7.9系统安装部署Zabbix 5.0LTS版本监控系统(详细教程)(上)
|
存储 监控 前端开发
|
监控
Zabbix安装部署后相关配置
Zabbix安装部署后相关配置
73 0
Zabbix安装部署后相关配置
|
数据库 容器
Zabbix5.0安装部署,史上最详细,快收藏起来吧~~
Zabbix5.0安装部署,史上最详细,快收藏起来吧~~
1015 1
Zabbix5.0安装部署,史上最详细,快收藏起来吧~~
|
自然语言处理 监控 Oracle
zabbix服务端、客户端的安装部署
zabbix是一个高度集成的监控解决方案,与Cacti、nagios类似。通过C/S模式采集监控数据,通过B/S模式实现web管理。
359 0
zabbix服务端、客户端的安装部署
|
监控 关系型数据库 MySQL
Zabbix3.0实战安装部署
##########安装zabbix-3.0.19########## wget https://mirrors.aliyun.
897 0