内存:
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 |
数据库管理系统:
软件 |
版本 |
注释 |
MySQL |
5.0.3或更高版本 |
如果MySQL用作Zabbix后端数据库,则为必需。InnoDB引擎是必需的。 |
Oracle |
10g或以上 |
如果Oracle用作Zabbix后端数据库,则为必需。 |
PostgreSQL |
8.1或更高版本 |
如果PostgreSQL用作Zabbix后端数据库,则必需。 |
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 |
需要ICMP的ping项目。 |
libcurl |
需要用于Web监控,VMware监控和SMTP身份验证。对于SMTP认证,需要7.20.0或更高版本。 |
libiksemel |
需要Jabber支持。 |
libxml2 |
VMware监控需要。 |
net-snmp |
需要SNMP支持。 |
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 |
将下载好的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方式的位置。
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文件
#查看是否有已安装的mysql,如果有卸载 rpm -qa|grep mysql
# 通常系统自带mysql-libs,将其卸载 yum remove mysql-libs |
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 |
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/ |
# 查看随机初始密码 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!
清除完毕... |
用上述同样的方法制作zabbix的源
yum install zabbix-server-mysql zabbix-web-mysql |
# 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 |
在zabbix_server.conf中编辑服务器主机,名称,用户和密码,如下所示,其中DBPassword是您设置创建初始数据库的密码:
#vim /etc/zabbix/zabbix_server.conf DBHost = localhost DBName = zabbix DBUser = zabbix DBPassword = |
注意:
观察DBSocket默认值是否与mysql一致,不一致则要修改为一致
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 |
# 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 |
vim /etc/httpd/conf/httpd.conf # 大约276行 ServerName localhost:80 |
#启动Zabbix服务器进程 service zabbix-server start # 启动web服务 service httpd start /etc/init.d/php-fpm start # 添加到开机启动 chkconfig httpd on chkconfig php-fpm on |
通过http://{ip}/zabbix查看页面
默认用户名和密码,注意大小写。
用户名:Admin
密码:zabbix
其他步骤保持默认一直下一步就可以
yum localinstall zabbix-agent….
zabbix agent的配置很简单,只需要修改zabbix agent配置文件中的Server、ServerActive和Hostname这三项即可。
其中Server、ServerActive是zabbix server服务器的IP地址,Hostname是被监控端的IP地址,
以上配置完毕后,我们在zabbix web端添加该监控机器时,只需要把honst name与该配置文件中的hostname对应即可。如下:
到此zabbix agent就已经安装完毕。
修改配置文件:
vim /etc/zabbix/zabbix_agentd.conf
最后重启服务:
service zabbix-agent restart
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
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采集数据,安装好以后就是启动报错,查看日志如下:
国内百度搜索了不少内容都无法解决问题,找了一篇文章瞬间解决了。原因是selinux开启导致的,关闭以后就正常了。
关闭办法:
setenforce 0
Bug:
它是CentOS 6是你使用?
RHEL / CentOS 6,如果你只有标准包,它不会工作。
您是否安装了PHP 5.4?
您必须安装php与扩展(gd,bcmath,mbstring,xml和ldap)。
安装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
~
追加CentOS 6.5的epel及remi源。
# 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
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.