LNMP环境下Zabbix3.4安装和配置
一直使用cacti来监控公司的服务器,使用中发现cacti局限性还是比较大的,对于监控网络设备出图比较好。但对于服务,更细致的自定义监控却不是很友善。在cacti上集成了nagios用于监控服务,使用起来比较麻烦,特别是出图。对于zabbix只做过简单的了解,听说部署简单,自动发现功能强大。安装测试试用一下。安装环境
CentOS7.4,Nginx1.12.2,MariaDB10.2,PHP7.2,Zabbix3.4.7
一、LNMP环境搭建
1、安装Linux(CentOS7.4)
最小化安装,配置IP地址,主机名,安装vim、bash-completion等
2、安装Nginx(1.12.2)
# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm#安装nginx官方源
或者手动创建yum源:http://nginx.org/en/linux_packages.html
# vim /etc/yum.repos.d/nginx.repo #手动创建nginx yum安装源
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
#其中baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/,把”OS”替换成”rhel”或”centos”,把”OSRELEASE”替换成”6”或”7”,用于6.x或7.x版本。
# yum install nginx #安装nginx,默认为nginx-1.12.2
# systemctl start nginx
# systemctl enable nginx
# firewall-cmd --permanent --add-service=http --zone=public
# firewall-cmd --reload
打开http://10.100.3.66,将看到以下内容,说明nginx安装成功。
http://i2.运维网.com/images/blog/201806/29/b44a53cd1330a14ec7ea5014ec77f1ab.jpg
3、安装MySQL(mariadb-10.2)
# vim /etc/yum.repos.d/mariadb.repo #通过yum方式安装
输入以下内容
# MariaDB 10.2 CentOS repository list - created 2018-03-06 07:26 UTC
# http://downloads.mariadb.org/mariadb/repositories/
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
安装MySQL:可通过https://downloads.mariadb.org/mariadb/repositories/地址获取mariadb源
# yum install MariaDB-server MariaDB-client
使用yum源安装,下载速度比较慢,可通过以下地址下载RPM包安装
http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.13/yum/rhel74-amd64/rpms/
方法:
#先yum安装较小的依赖包:
# yum install lsof rsync perl-DBI boost-program-options jemalloc MariaDB-shared
#再rpm下载安装较大的包:
# rpm -ivh galera-25.3.23-1.rhel7.el7.centos.x86_64.rpm
# rpm -ivh MariaDB-10.2.13-centos74-x86_64-client.rpm
# rpm -ivh MariaDB-10.2.13-centos74-x86_64-server.rpm
#启动和配置MySQL:
# systemctl start mariadb
# mysql_secure_installation #根据提示配置密码和安装选项
# systemctl restart mariadb #配置完成后重启MySQL
4、安装PHP(7.2)
源码安装方法:http://php.net/get/php-7.2.3.tar.gz/from/a/mirror
yum安装方法:https://webtatic.com/packages/php72/
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 或yum install epel-release
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #yum源
# yum install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql
# systemctl start php-fpm
# systemctl enable php-fpm
# php –v
http://i2.运维网.com/images/blog/201806/29/fc094a349853ad591a4513fb49fbe634.jpg
netstat -tln|grep 9000
http://i2.运维网.com/images/blog/201806/29/76d777c62cf32db86ea06f2cad525afb.jpg
5、配置Nginx
# vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件,把apache改为nginx
http://i2.运维网.com/images/blog/201806/29/e9cb291f6fc382f7a6e52cd036ddbeed.jpg
# vim /etc/nginx/conf.d/default.conf #配置location,在index中添加index.php。以支持index.php的首页:
http://i2.运维网.com/images/blog/201806/29/d673a6c068a80ba1631bbf8e68cdf04b.jpg
配置php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改为以下内容:
http://i2.运维网.com/images/blog/201806/29/6bff3cf57d8c5ca847b1357571338311.jpg
默认配置,把.php$改为..php(\/.)*$(可省略),把root中的html改为/usr/share/nginx/html,把fastcgi_param中的/scripts改为$document_root。root是配置php程序放置的根目录。
保存后,重启nginx服务
systemctl restart nginx
6、配置php
# vim /etc/php.ini #修改PHP配置文件
expose_php = Off #禁止显示php版本的信息
short_open_tag = On #取消前面的;,修改为On。表示支持php短标签
#以下为zabbix配置要求
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
always_populate_raw_post_data = -1
date.timezone = Asia/Shanghai
7、测试
通过http://10.100.3.66/phpinfo.php查看php模块是否正常,测试后删除
# vim /usr/share/nginx/html/phpinfo.php #在首页目录新增,测试php
http://i2.运维网.com/images/blog/201806/29/c1f4bed8ff6e9ee37b0073c4251c6b73.jpg
通过http://10.100.3.66/test.php查看mysql数据库连接是否正常,测试后删除
# vim test.php #新增test.php(名字随意),测试mysql连接
http://i2.运维网.com/images/blog/201806/29/117287c764269a57407a70babebdab0a.jpg
注:mysql_connect扩展自 PHP 5.5.0 起已废弃,改用mysqli或pdo_mysql,参阅:http://php.net/manual/zh/mysqlinfo.api.choosing.php
在开启SELinux情况下,php连接mysql测试会失败。
# getsebool -a |grep httpd_can_network #检查httpd进程的许可模式
可以看到httpd_can_network_connect --> off
# setsebool -P httpd_can_network_connect=1#开启连接后即可测试正常
二、安装Zabbix
1、安装zabbix软件包 通过yum源安装:https://www.zabbix.com/download 官方中文手册:https://www.zabbix.com/documentation/3.4/zh/start 配置yum安装源:
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
安装Zabbix服务器,前端,代理agent:
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-agent
2、配置数据库
# mysql -uroot -p #输入密码,登录mysql
> create database zabbix character set utf8 collate utf8_bin; #创建数据库
#创建mysql用户zabbix并授权:
> grant all privileges on zabbix.* to zabbix@localhost identified by '123456';
> flush privileges;
#导入数据库初始结构和数据:
# zcat /usr/share/doc/zabbix-server-mysql-3.4.7/create.sql.gz |mysql -uzabbix -p zabbix #根据提示输入数据库用户zabbix的密码
#配置数据库账号密码:
# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
3、配置SELinux
在开启SELinux情况下,zabbix-server启动会失败
# getsebool -a|grep httpd_can_connect
可以看到httpd_can_connect_zabbix --> off
# setsebool -P httpd_can_connect_zabbix on
# setsebool -P httpd_can_network_connect_db on
但只修改以上规则还不够,需要测试的太多。直接关闭得了。
关闭SELilunx:
# vim /etc/selinux/config
SELINUX=disabled #重启系统
4、检查中文是否开启(默认开启)
# vim /usr/share/zabbix/include/locales.inc.php
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
5、启动
# cp -r /usr/share/zabbix/ /usr/share/nginx/html/
# chown -R zabbix:zabbix /etc/zabbix/
# chown -R zabbix:zabbix /usr/share/nginx/
# chown -R zabbix:zabbix /usr/lib/zabbix/
# chmod -R 755 /etc/zabbix/web/
# chmod -R 777 /var/lib/php/session/
# systemctl start zabbix-server
# systemctl enable zabbix-server
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
# netstat -anpl|grep 10051 #查看端口是否起来,zabbix_agent端口为10050
http://i2.运维网.com/images/blog/201806/29/f738a38ff13408562cdf0bbe15b36f0b.jpg
安装中遇到的问题:
无法打开http://10.100.3.66/zabbix/setup.php,报以下错误:
1>、FastCGI sent in stderr: “PHP message: PHP Warning:
require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream:
Permission denied in
/usr/share/nginx/html /zabbix/include/classes/core/ZBase.php on line 269
权限问题,路径:/etc/zabbix/web
解决办法:chmod -R 755 /etc/zabbix/web/
2>、FastCGI sent in stderr: "PHP message: PHP Fatal error:
Uncaught Exception: Cannot start session. In
/usr/share/nginx/html/zabbix/include/classes/core/CSession.php:50
权限问题,路径:less /etc/php-fpm.d/www.conf
php_value = /var/lib/php/session
解决办法:chmod -R 777 /var/lib/php/session/
6、配置Zabbix安装
打开http://10.100.3.66/zabbix,将自动跳转到安装界面:
http://i2.运维网.com/images/blog/201806/29/5d8d668b5a270aa662f70fb2908511d1.jpg
下一步,检查配置是否正确,全部OK即可。
http://i2.运维网.com/images/blog/201806/29/de8b995b7de27b5382a5511afd3d1431.jpg
下一步,输入数据库密码
http://i2.运维网.com/images/blog/201806/29/3fad699710b9b47d7a9d199bff294fe6.jpg
下一步,输入Name,随意起
http://i2.运维网.com/images/blog/201806/29/65423d7aab21c7e4b556a6c9b1723556.jpg
确认配置是否正确
http://i2.运维网.com/images/blog/201806/29/069e86e7b549236d3f3c9b3d53008106.jpg
下一步,提示无法创建配置文件
http://i2.运维网.com/images/blog/201806/29/f76a38e6f44170d9af977bbed353257c.jpg
从提供的下载链接中下载配置文件,然后上传到/etc/zabbix/web/即可,或修改web权限为web服务器启动用户可写的权限。
# cp zabbix.conf.php /etc/zabbix/web/
# chown zabbix.zabbix /etc/zabbix/web/zabbix.conf.php
再点击完成
http://i2.运维网.com/images/blog/201806/29/00f1198c076ddf04344572b069d0c02b.jpg
输入默认用户名Admin,密码zabbix,即可登录。
http://i2.运维网.com/images/blog/201806/29/26e23c1a469b683213f8592d0773abbb.jpg
http://i2.运维网.com/images/blog/201806/29/1d116fd9eb387c4af27f5695f3970e45.jpg
点击用户,可修改系统语言、主题、自动登录等选项
http://i2.运维网.com/images/blog/201806/29/b12fcaeee6056d924cb4eb0fd011b3ac.jpg
Update后界面即变为中文的
http://i2.运维网.com/images/blog/201806/29/c8c284c7249791714f938c03ec0764ef.jpg
最后修改nginx主页,跳转到zabbix
vim /usr/share/nginx/html/index.html
http://i2.运维网.com/images/blog/201806/29/3964cc146143441eb409604f3e5db7d6.jpg
三、配置zabbix
监控zabbix服务器:
配置-->主机,选择zabbix server,启用主机。如下图,启动后ZBX显示为绿色。
http://i2.运维网.com/images/blog/201806/29/87495867a0b1f33dba8105bd9195d0ff.jpg
查看监控主机的信息:
监测中-->最新数据,如有以下告警,是因为PHP7.2版本中比较严格,count函数仅支持参数为数组, 非数组情况下将报警告。
http://i2.运维网.com/images/blog/201806/29/dac810621c0d471c4806dc82a568b86a.jpg
解决办法:
# vim /usr/share/nginx/html/zabbix/latest.php #定位到104行
修改$singleHostSelected = (count($filter['hostids']) == 1);为:
$singleHostSelected = (count(array($filter['hostids'])) == 1);
刷新,就看不到告警信息了。
在过滤器中选择zabbix server主机,可以看到相关监控项:
http://i2.运维网.com/images/blog/201806/29/bba10b27d93ccc9d4f2898eff18ccd11.jpg
展开监控项,可以看到具体的监控内容。例如CPU:
http://i2.运维网.com/images/blog/201806/29/606774dae2081ae9c683e5656f0d9167.jpg
点击右边的图形,可以以图表形式展示:
http://i2.运维网.com/images/blog/201806/29/c36ed3d084ddb001819a5b583c500deb.jpg
最下方汉字显示为乱码,是因为语言已经改为中文了,但字体识别不到,可以使用Windows系统里的字体。
解决办法:
在Windows系统中,打开控制面板-->字体,如下图:
http://i2.运维网.com/images/blog/201806/29/a6ac267030bbe91a0fdf8fd50467c841.jpg
找到想使用的字体,如黑体(simhei.ttf,右键属性可查看),上传到Linux。
再复制到fonts目录:cp simhei.ttf /usr/share/nginx/html/zabbix/fonts/
再修改defines.inc.php文件:
# vim /usr/share/nginx/html/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'graphfont');
define('ZBX_FONT_NAME', 'graphfont');
修改为:
define('ZBX_GRAPH_FONT_NAME', 'simhei');
define('ZBX_FONT_NAME', 'simhei');
刷新页面即可看到中文汉字了,如下图:
http://i2.运维网.com/images/blog/201806/29/b9d6355b8b767da93e8f080d0cddf4fd.jpg
页:
[1]