zabbix 安装

 

1.环境要求

1.1硬件要求

内存:

Zabbix需要物理和磁盘内存。128 MB物理内存和256 MB可用磁盘空间可能是一个很好的起点。但是,所需的磁盘内存量显然取决于正在监视的主机数量和参数。如果您打算保留长期的监控参数,您应该考虑至少几千兆字节,以便有足够的空间来存储数据库中的历史记录。每个Zabbix守护程序进程需要与数据库服务器的多个连接。为连接分配的内存量取决于数据库引擎的配置。

CPU:

Zabbix,特别是Zabbix数据库可能需要大量的CPU资源,具体取决于受监控参数的数量和选定的数据库引擎。

Name

Platform

CPU/Memory

Database

受监控主机

Small

CentOS

Virtual Appliance

MySQL InnoDB

100

Medium

CentOS

2 CPU cores/2GB

MySQL InnoDB

500

Large

RedHat Enterprise Linux

4 CPU cores/8GB

RAID10 MySQL InnoDB or PostgreSQL

>1000

Very large

RedHat Enterprise Linux

8 CPU cores/16GB

Fast RAID10 MySQL InnoDB or PostgreSQL

>10000

1.2软件要求

数据库管理系统

软件

版本

注释

MySQL

5.0.3或更高版本

如果MySQL用作Zabbix后端数据库,则为必需。InnoDB引擎是必需的。

Oracle

10g或以上

如果Oracle用作Zabbix后端数据库,则为必需。

PostgreSQL

8.1或更高版本

如果PostgreSQL用作Zabbix后端数据库,则必需。
建议至少使用PostgreSQL 8.3,它引入了更好的VACUUM性能

SQLite

3.3.5以上

如果SQLite用作Zabbix后端数据库,则为必需。

IBM DB2

9.7以上

如果IBM DB2用作Zabbix后端数据库,则为必需。

 

前端

运行Zabbix前端需要以下软件:

软件

版本

注释

Apache

1.3.12或更晚

 

PHP

5.4.0或更高版本

PHP v7尚不支持。

PHP扩展:

gd

2.0或更高版本

PHP GD扩展必须支持PNG图像(--with-png-dir),JPEG(-- with-jpeg-dir)图像和FreeType 2(-- with-freetype-dir)。

bcmath

 

php-bcmath(-- enable-bcmath

ctype

 

php-ctype(-- enable-ctype

libXML

2.6.15以上

php-xml或php5-dom,如果由经销商作为单独的包提供。

xmlreader

 

php-xmlreader,如果由经销商作为单独的包提供。

xmlwriter

 

php-xmlwriter,如果由经销商作为单独的包提供。

session

 

如果经销商作为单独的包提供php-session。

sockets

 

php-net-socket(-- enable-socket)。需要用户脚本支持。

mbstring

 

php-mbstring(-- enable-mbstring

gettext

 

php-gettext(-- with-gettext)。需要翻译工作。

ldap

 

php-ldap。只有在前端使用LDAP认证时才需要。

ibm_db2

 

如果IBM DB2用作Zabbix后端数据库,则为必需。

mysqli

 

如果MySQL用作Zabbix后端数据库,则为必需。

oci8

 

如果Oracle用作Zabbix后端数据库,则为必需。

pgsql

 

如果PostgreSQL用作Zabbix后端数据库,则必需。

sqlite3

 

如果SQLite用作Zabbix后端数据库,则为必需。

 

服务器

需求

描述

OpenIPMI

需要IPMI支持。

libssh2

需要SSH支持。版本1.0以上。

fping

需要ICMPping项目

libcurl

需要用于Web监控,VMware监控和SMTP身份验证。对于SMTP认证,需要7.20.0或更高版本。

libiksemel

需要Jabber支持。

libxml2

VMware监控需要。

net-snmp

需要SNMP支持。

1.3关闭防火墙、selinux

sed -i -e 's|enforcing|disabled|' /etc/selinux/config && echo "selinux 配置完成,重启后生效"

# 关闭防火墙

chkconfig --level 2345 iptables off

/etc/init.d/iptables stop

/etc/init.d/iptables status

2.安装php

2.1制作本地yum源

将下载好的rpm包制作成yum源,

yum install httpd && service httpd restart && chkconfig httpd on && chkconfig --list httpd

# php为php相关rpm包所在的文件夹

mv php/ /var/www/html/

createrepo php

配置repo文件,

vim php.repo

mv php.repo /etc/yum.repos.d/

# 以下为文件内容

[php]

name=php

baseurl=http://10.2.45.80/php

enabled=1

gpgcheck=0          

示例:

解释:

[....]     代表这个库的名字,必须是唯一的,不可以重复。

name=     是这个库的说明,没有太大的实际意义,只是一个字段说明。

baseurl=  说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等

enabled=1  说明启用这个更新库,0表示不启用。

gpgcheck=1 表示使用gpg文件来检查软件包的签名

gpgkey=    表示gpg文件所存放的位置,此处也可以有http方式的位置。

2.2yum 安装php

yum --enablerepo=php install php php-gd php-bcmath php-xml php-mbstring php-ctype php-xmlreader php-xmlwriter php-net-socket php-gettext php-common php-mysql php-opcache php-devel  php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-cli  php-process  

# 检验安装版本

php -v;

--enablerepo=php:为指定repo文件

3.安装mysql

3.1卸载查看到的包

#查看是否有已安装的mysql,如果有卸载

rpm -qa|grep mysql

 

# 通常系统自带mysql-libs,将其卸载

yum remove mysql-libs

3.2安装mysql

tar -xvf MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar

 

yum localinstall MySQL-client-5.6.35-1.el6.x86_64.rpm MySQL-server-5.6.35-1.el6.x86_64.rpm MySQL-devel-5.6.35-1.el6.x86_64.rpm

3.3修改mysql配置

yum安装找不到/etc/my.cnf:

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

vim /etc/my.cnf

# 以下为添加的配置

[mysqld]

datadir=/mnt/disk /mysql

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

user=mysql

log-bin=mysqlbin-log

symbolic-links=0

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

 

[mysqld_safe]

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

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

 

[client]

default-character-set=utf8

将数据文件放到挂在盘中

#修改此目录需要把源目录(/var/lib/mysql/)下的文件拷贝到此,并授权为mysql:mysql

mv /var/lib/mysql /mnt/disk/mysql

chown -R mysql:mysql mysql/

3.4初始化数据库

# 查看随机初始密码

cat /root/.mysql_secret

service mysql start

# 初始化mysql

/usr/bin/mysql_secure_installation

进行初始化脚本之前需要先启动mysql服务和复制mysql的随机密码。在初始化总第一步将使用随机密码。.

* NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL

SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MySQL to secure it, we'll need the current

password for the root user.  If you've just installed MySQL, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MySQL

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

 

Change the root password? [Y/n] Y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

... Success!

 

By default, a MySQL installation has an anonymous user, allowing anyone

to log into MySQL without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] Y

... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] Y

... Success!

 

By default, MySQL comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] Y

- Dropping test database...

... Success!

- Removing privileges on test database...

... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] Y

... Success!

 

All done!  If you've completed all of the above steps, your MySQL

installation should now be secure.

 

Thanks for using MySQL!

 

 

Cleaning up...

翻译

*注意:建议为所有MySQL运行此脚本的所有部分

服务器生产使用!请仔细阅读每个步骤!

 

为了登录MySQL以保护它,我们需要当前的

root用户的密码。如果你刚刚安装了MySQL,和

您尚未设置root密码,密码将为空,

所以你应该只是在这里输入。

 

输入root的当前密码(不输入):

确定,成功使用密码,移动...

 

设置根密码确保没有人可以登录MySQL

root用户没有正确的授权。

 

您已设置了root密码,因此您可以安全地回答“n”。

 

更改root密码? [Y / n] Y

新密码:

重新输入新的密码:

密码已成功更新!

重新加载权限表..

...成功!

 

默认情况下,MySQL安装有一个匿名用户,允许任何人

登录MySQL而无需创建用户帐户

他们。这仅用于测试和安装

去一点平滑。你应该在移动之前删除它们

生产环境。

 

删除匿名用户? [Y / n] Y

...成功!

 

通常,root应该只允许从'localhost'连接。这个

确保有人不能从网络猜到root密码。

 

远程禁止root登录? [Y / n] Y

...成功!

 

默认情况下,MySQL附带一个名为“test”的数据库,任何人都可以

访问。这也只用于测试,应该删除

在进入生产环境之前。

 

删除测试数据库并访问它? [Y / n] Y

- 删除测试数据库...

...成功!

- 删除测试数据库的权限...

...成功!

 

重新加载特权表将确保到目前为止所做的所有更改

将立即生效。

 

现在重新加载特权表? [Y / n] Y

...成功!

 

全做完了!如果你已经完成了上面的所有步骤,你的MySQL

安装现在应该是安全的。

 

感谢使用MySQL!

 

 

清除完毕...

4安装zabbix

4.1安装zabbix-server

用上述同样的方法制作zabbix的源

yum install zabbix-server-mysql zabbix-web-mysql

4.2创建初始数据库

# mysql -uzabbix -p

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘’;

flush PRIVILEGES;

导入数据库文件:

zcat /usr/share/doc/zabbix-server-mysql-3.0.7/create.sql.gz/create.sql.gz | mysql -uzabbix -p zabbix

4.3修改zabbix_server.conf

在zabbix_server.conf中编辑服务器主机,名称,用户和密码,如下所示,其中DBPassword是您设置创建初始数据库的密码:

#vim /etc/zabbix/zabbix_server.conf

DBHost = localhost

DBName = zabbix

DBUser = zabbix

DBPassword =

注意

观察DBSocket默认值是否与mysql一致,不一致则要修改为一致

4.4Zabbix前端的PHP配置

Apache2以上版本zabbix的配置文件不在默认路径,先从usr/share/doc/zabbix-web-3.0.7/httpd22-example.conf路径下拷贝到相应目录中。

#cp /usr/share/doc/zabbix-web-3.0.7/httpd22-example.conf /etc/httpd/conf.d/zabbix.conf

Zabbix前端的Apache配置文件位于/etc/httpd/conf.d/zabbix.conf中。一些PHP设置已经配置。但是有必要取消注释“date.timezone”设置,并为您设置正确的时区

php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value always_populate_raw_post_data -1

php_value date.timezone Asia/shanghai

示例:

文件授权

chmod -R 755 /etc/zabbix/web

chown -R apache.apache /etc/zabbix/web

4.5修改php配置文件

# vim /etc/php.ini

# 以下为需要修改的文件内容(需要查找到相应位置再做修改)

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/shanghai

always_populate_raw_post_data=-1

4.6修改httpd

vim /etc/httpd/conf/httpd.conf  

# 大约276行

ServerName localhost:80

4.6启动

#启动Zabbix服务器进程

service zabbix-server start

# 启动web服务

service httpd start

/etc/init.d/php-fpm start

# 添加到开机启动

chkconfig httpd on

chkconfig php-fpm on

5 web界面

5.1登录

通过http://{ip}/zabbix查看页面

zabbix 安装_第1张图片

默认用户名和密码,注意大小写。

用户名:Admin

密码:zabbix

其他步骤保持默认一直下一步就可以

zabbix 安装_第2张图片

5.2 修改语言设置

zabbix 安装_第3张图片

zabbix 安装_第4张图片

6 快速启动

6.1zabbix-agent安装

yum localinstall zabbix-agent….

zabbix agent的配置很简单,只需要修改zabbix agent配置文件中的Server、ServerActive和Hostname这三项即可。

 

其中Server、ServerActive是zabbix server服务器的IP地址,Hostname是被监控端的IP地址,

以上配置完毕后,我们在zabbix web端添加该监控机器时,只需要把honst name与该配置文件中的hostname对应即可。如下:

zabbix 安装_第5张图片

 

到此zabbix agent就已经安装完毕。

 

修改配置文件:

vim /etc/zabbix/zabbix_agentd.conf

 

 

最后重启服务:

service zabbix-agent restart

6.2配置mysql模板

4. 在客户端的mysql里添加权限zabbix帐户

mysql> grant all on *.* to zabbix@'localhost' identified by "123456”;

mysql> flush privileges;

 

5.在文件zabbix_agentd.conf所在的目录下创建连接文件 .my.cnf

[root@localhost ~]# find / -type f -name zabbix_agentd.conf   #查看路径

/etc/zabbix/zabbix_agentd.conf

cd /etc/zabbix/

[root@localhost ~]# vim .my.cnf

[client]

user=zabbix

password=123456

 

注意:      

如果在数据库grant授权时,针对的是localhost,这个.my.cnf里面就不用加host参数了

但如果grant授权时针对的是本机的ip,那么在.my.cnf文件里就要加上host参数进行指定了

即在.my.cnf文件就要加上:

host=本机ip

socket=/Data/app/mysql5.6.25/var/mysql.sock   【这一行可以不用加上,默认会找到的】

 

6. 配置MySQL的key文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

 userparameter_mysql.conf里所有的路径/var/lib/zabbix修改成/etc/zabbix

 

用命令一次性修改:

sed -i 's|/var/lib/zabbix|/etc/zabbix|g'/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

 

重启zabbix-agent服务

service zabbix-agent restart

 

如果重启失败,用pkill杀死zabbix-agent进程,再开启

pkill -9 zabbix-agent

Service zabbix-agent start

 

Zabbix_server服务器端操作

7.在服务器端测试

[root@zabbix3~]# zabbix_get -s 172.18.1.40-p 10050 -k "mysql.status[Uptime]

6324689     //172.18.1.40是客户端的IP地址

 

能反回一串key的数字,就说明配置OK,端能监控到客户端的mysql数据了!

注:如果没有命令zabbix_get,则需要安装。安装包在第2步下载的目录

 [root@localhost RPMS]# yum -y localinstall zabbix-get-3.0.0-1.el6.x86_64.rpm

 

 

附加:

 

Bug

cannot set resource limit: [13] Permission denied cannot disable core dump, exiting…解决办法

 linux  21运维  3个月前 (11-22)  1000浏览  0评论

21运维整理,转载请注明出处。
今天一个项目上部署了zabbix监控。通过新版3.0的zabbix-agent采集数据,安装好以后就是启动报错,查看日志如下:

  1.  10291:20161122:091648.178 using configuration file: /etc/zabbix/zabbix_agentd.conf
  2.  10291:20161122:091648.178 cannot set resource limit: [13] Permission denied
  3.  10291:20161122:091648.178 cannot disable core dump, exiting...

国内百度搜索了不少内容都无法解决问题,找了一篇文章瞬间解决了。原因是selinux开启导致的,关闭以后就正常了。 
关闭办法:
setenforce 0 

Bug:

它是CentOS 6是你使用?
RHEL / CentOS 6,如果你只有标准包,它不会工作。

您是否安装了PHP 5.4
您必须安装php与扩展(gdbcmathmbstringxmlldap)。

安装PHP 5.4后,请复制文件以匹配要使用的httpd版本。

例如。httpd 2.2

码:

#cp /usr/share/doc/zabbix-web-3.0.7/httpd22-example.conf /etc/httpd/conf.d/zabbix.conf

 

配置和快捷键:

php_value date.timezone Asia/Shanghai

 

# yum install php     php54-php-mcrypt 

 

# mysql -u root -p

 

mysql> CREATE DATABASE zabbixdb CHARACTER SET UTF8;

mysql> GRANT ALL PRIVILEGES on zabbixdb.* to zabbix@localhost IDENTIFIED BY 'password';

mysql> FLUSH PRIVILEGES;

mysql> quit

 

php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value always_populate_raw_post_data -1

php_value date.timezone Asia/Shanghai

~   

                                  

 

 

 

 

Yum安装php5.6

追加CentOS 6.5epelremi源。

# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

使用yum list命令查看可安装的包(Packege)

# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

安装PHP5.6

yum源配置好了,下一步就安装PHP5.6

# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

PHP命令查看版本。

# php --version

PHP 5.6.0 (cli) (built: Sep  3 2014 19:51:31)

Copyright (c) 1997-2014 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies

    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Ret

php5.4

1. 安裝 SCL repo

# yum install centos-release-SCL

2. 安裝 php 5.4

# yum install php54

Step 3. 在系統使用 PHP 5.4
開啟 /etc/profile 並加入以下一行:

source /opt/rh/php54/enable

並執行以下指令:

# source /etc/profile

完成後可以用 php -v 檢查是否升級到 PHP 5.4.

你可能感兴趣的:(运维)