68  
CentOS7下LNMP安装Zabbix3.2
作者: wyasw 于 2020年03月29日 发布在分类 / linux / zabbix 下,并于 2020年03月29日 编辑
zabbix

CentOS7LNMP安装Zabbix3.2

1zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让运维人员能够快速定位。

2zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。

被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。

server端:通过收集SNMPagent发送来的数据,将数据写入到后台数据库中(例如:mysqloracle),在通过web展示出来。

3、运行环境

zabbix server 需要运行在LAMP或者是LNMP的环境下;

agent可以部署在目前常见的OS中,例如linuxwindowsHPUXSolarisSun

SNMP可以支持常见的网络设备。

Zabbix环境准备

[root@centos7-web02 ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@centos7-web02 ~]# uname -r

3.10.0-327.36.3.el7.x86_64

[root@centos7-web02 ~]# getenforce

Disabled

[root@centos7-web02 ~]# systemctl stop firewalld

[root@centos7-web02 ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2{print $3}'

10.135.105.89

[root@centos7-web02 ~]# hostname

centos7-web02

[root@centos7-web02 ~]# grep SELINUX /etc/selinux/config

# SELINUX= can take one of these three values:

SELINUX=disabled

1.1  mysql安装

此处不多做介绍。

1.2 修改php.ini

[root@centos7-web02 ~]# yum -y install net-snmp-devel curl-devel

[root@centos7-web02 ~]# vim /usr/local/php7 /etc /php.ini

date.timezone = Asia/Shanghai

max_execution_time = 300

post_max_size = 16M

max_input_time=300

memory_limit = 128M

mbstring.func_overload = 1

1.3  zabbix安装

安装包下载地址http://www.zabbix.com/download.php

1.3.1  zabbix server的安装

yum install unixODBC-devel mysql-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel

安装所需依赖

yum -y install net-snmp-devel curl-devel

wget https://fossies.org/linux/misc/zabbix-3.2.7.tar.gz

tar xf zabbix-3.2.7.tar.gz

[root@centos7-web02 tools]# cd zabbix-3.2.7/

[root@centos7-web02 zabbix-3.2.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

[root@ centos7-web02 zabbix-3.2.7]# make && make install

1.3.2 检查zabbix是否被添加进入系统服务文件中

看到如下信息则代表已经添加成功,或者可以自行手动查询一下/etc/services 文件,真没有手动添加到 /etc/services 文件中:

[root@centos7-web02 zabbix-3.2.7]# grep "zabbix" /etc/services

zabbix-agent    10050/tcp               # Zabbix Agent

zabbix-agent    10050/udp               # Zabbix Agent

zabbix-trapper  10051/tcp               # Zabbix Trapper

zabbix-trapper  10051/udp               # Zabbix Trapper

1.3.3 进入mysql数据库操作

添加mysql数据库的zabbix用户,并设置密码

先用root身份登录mysql中,并执行以下命令;

mysql> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

Query OK, 0 rows affected (0.03 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.02 sec)

## //密码zabbix 对应数据库中新建的 zabbix

而后在下载的源文件中存在一个database/mysql 子目录,中间存放在建立zabbix数据库结构的SQL脚本文件。先进入到zabbix源文件所在的目录,并执行以下语句:

[root@centos7-web02 zabbix-3.2.7]# mysql -u zabbix -p zabbix < ./database/mysql/schema.sql

Enter password:

[root@centos7-web02 zabbix-3.2.7]# mysql -u zabbix -p zabbix < ./database/mysql/images.sql

Enter password:

[root@centos7-web02 zabbix-3.2.7]# mysql -u zabbix -p zabbix < ./database/mysql/data.sql

Enter password:

每次都输入密码


1.3.4 创建zabbix的日志文件和连接

[root@centos7-web02 ~]# mkdir /var/log/zabbix

[root@centos7-web02 ~]# useradd -s /sbin/nologin -M zabbix

[root@centos7-web02 ~]# chown zabbix.zabbix /var/log/zabbix

[root@centos7-web02 ~]# ln -s /usr/local/zabbix/etc/ /etc/zabbix

[root@centos7-web02 ~]# ln -s /usr/local/zabbix/bin/* /usr/bin/

[root@centos7-web02 ~]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/

1.3.5 拷贝与配置zabbix启动文件

[root@centos7-web02 ~]# cd /home/tools/zabbix-3.2.7/

[root@centos7-web02 zabbix-3.2.7]# cp misc/init.d/fedora/core/zabbix_* /etc/init.d/

[root@centos7-web02 zabbix-3.2.7]# chmod 755 /etc/init.d/zabbix_*

[root@centos7-web02 zabbix-3.2.7]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_server

[root@centos7-web02 zabbix-3.2.7]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd

1.3.6 配置zabbix_server.conf服务端文件

辑并修改 /etc/zabbix/zabbix_server.conf 文件,并修改如下条目:

DBName=zabbix 数据库名称

DBUser=zabbix 数据库用户

DBPassword=zabbix 数据库密码(这里为了演示,先前设置了zabbix数据库密码为zabbix

/tmp/zabbix_server.log 改 /var/log/zabbix/zabbix_server.log #更改日志路径

或者用 sed 方式替换文件内容:

sed -i "s/DBUser\=root/DBUser\=zabbix/g" /etc/zabbix/zabbix_server.conf

sed -i "/# DBPassword=/aDBPassword=zabbix\n" /etc/zabbix/zabbix_server.conf

sed -i "s#/tmp/zabbix_server.log#/var/log/zabbix/zabbix_server.log#g" /etc/zabbix/zabbix_server.conf

1.3.7 配置 zabbix_agentd.conf 文件 (这里是为了监控 server 本身, 如对其他服务器进行监控,配置文件相类似)

这里要的是zabbix_agentd.conf是客户端配置文件,因此这里配置这个文件的目的就是为了能够实现对本地服务器的监控。该文件需要修改如下四个条目:

Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远端 zabbix_server  ip 地址

ServerActive=127.0.0.1 此处修改为服务端的 ip,这里应该修改为该服务器对外的ip地址

/tmp/zabbix_agentd.log 修改日志路径

UnsafeUserParameters=0 默认是不启用自定义脚本功能的,要自定义 key ,需开启,设置为1

Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的 agent d 配置文件可以写在这个目录下面

利用sed 方式内容替换的执行命令如下:

sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,10.0.07 /g" /usr/local/zabbix/etc/zabbix_agentd.conf

sed -i "s/ServerActive\=127.0.0.1/ServerActive\=10.0.0.7:10051/g" /usr/local/zabbix/etc/zabbix_agentd.conf

sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /usr/local/zabbix/etc/zabbix_agentd.conf

sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /usr/local/zabbix/etc/zabbix_agentd.conf

1.3.8 拷贝php网页文件到nginx

[root@centos7-web02 zabbix-3.2.7]# cp -r ./frontends/php/ /usr/local/nginx/html/zabbix

修改nginx.conf配置文件:

[root@centos7-web02 vhost]# vim zabbix.conf

server {

listen 10.0.0.7:80;

server_name 10.0.0.7;

access_log  /alidata/log/nginx/zabbix.log combined;

index index.html index.htm index.php;

root /usr/local/nginx/html/zabbix;

if ( $query_string ~* ".*[\;'\<\>].*" ){

return 404;

}

location / {

try_files $uri $uri/ /index.php;

}

location ~ .*\.(php|php5)?$  {

fastcgi_pass unix:/dev/shm/php-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {

expires 30d;

}

location ~ .*\.(js|css)?$ {

expires 7d;

}

}

修改完,记得平滑重启nginx

1.3.9 开启zabbix

[root@centos7-web02 vhost]# /etc/init.d/zabbix_server start

Reloading systemd:                                         [ 确定 ]

Starting zabbix_server (via systemctl):                    [ 确定 ]

[root@centos7-web02 vhost]# /etc/init.d/zabbix_agentd start

Starting zabbix_agentd (via systemctl):                    [ 确定 ]

至此,zabbix的安装完成。

1.4 通过web设置zabbix

浏览器中输入地址:http://ip/zabbix,则可看到如下初始化欢迎界面。

1.4.1 错误

解决第一个错误:PHP bcmath    on          Fail

[root@centos7-web02 ~]# cd /home/tools/php-7.0.17/

[root@centos7-web02 php-7.0.17]# cd ext/bcmath/

[root@centos7-web02 bcmath]# phpize

Configuring for:

PHP Api Version:         20151012

Zend Module Api No:      20151012

Zend Extension Api No:   320151012

[root@centos7-web02 bcmath]# ./configure --with-php-config=/usr/local/php7/bin/php-config

[root@centos7-web02 bcmath]# echo $?

0

[root@centos7-web02 bcmath]# make && make install

。。。。。

Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/

vim /usr/local/php7/etc/php.ini

添加:

extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/bcmath.so

[root@centos7-web02 bcmath]# service php-fpm7 restart

解决第二个错误:PHP option "mbstring.func_overload"     off  on Fail

vim /usr/local/php7/etc/php.ini

修改:

mbstring.func_overload = 1

解决第三和第四个错误错误:PHP gd JPEG support   off         Fail

卡了半天之后,重新编译安装php解决,编译参数为:

./configure \

--prefix=/usr/local/php7 \

--with-config-file-path=/usr/local/php7/etc \

--with-config-file-scan-dir=/usr/local/php7/etc/php.d \

--with-mcrypt=/usr/include \

--enable-mysqlnd \

--with-mysqli \

--with-pdo-mysql \

--enable-fpm \

--with-fpm-user=www \

--with-fpm-group=www \

--with-gd \

--with-iconv \

--with-zlib \

--enable-xml \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--enable-mbregex \

--enable-mbstring \

--enable-ftp \

--enable-gd-native-ttf \

--with-openssl \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--without-pear \

--with-gettext \

--enable-session \

--with-curl \

--with-jpeg-dir \

--with-freetype-dir \

--enable-opcache \

--with-ldap

重新编译

make clean

make && make install

注意:

出现:configure: error: Cannot find ldap.h

yum install openldap -y

yum install openldap-devel -y

出现:configure: error: Cannot find ldap libraries in /usr/lib.

cp -frp /usr/lib64/libldap* /usr/lib/

make 出现

/lib64/liblber-2.4.so.2: could not read symbols: Invalid operation

collect2: error: ld returned 1 exit status

make: *** [sapi/cli/php] Error 1

vim Makefile

EXTRA_LIBS = ..... -lcrypt 在最后加上 -llber,例如: EXTRA_LIBS = ..... -lcrypt -llber 然后重新再次 make clean make 即可

1.4.2 安装

1、进入欢迎页面


2、检查全部OK


3、数据库的配置

4name自定义

5


6、下一步


7、配置文件生成了,至此安装成功

8、点击登录账号:Admin 密码:zabbix


1.4.3 设置中文

1、点击人头像


2、设置中文


1.1.4 解决服务器端zabbix中文乱码问题

解决服务器端zabbix中文乱码问题:

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf


第2章 客户端安装

2.1 安装并启动客户端

安装方式:

useradd -s /sbin/nologin -M zabbix

wget https://fossies.org/linux/misc/zabbix-3.2.7.tar.gz

tar xf zabbix-3.2.7.tar.gz

cd zabbix-3.2.7/

./configure --prefix=/usr/local/zabbix --with-net-snmp --enable-agent

make && make install

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

chmod +x /etc/init.d/zabbix_agentd

vim   /etc/init.d/zabbix_agentd

DAEMON=/usr/local/zabbix/sbin/zabbix_agentd

/etc/init.d/zabbix_agentd restart

执行下面命令:ip地址为服务端对外网地址

sed -i 's#Server=127.0.0.1#Server=172.168.10.7#' /usr/local/zabbix/etc/zabbix_agentd.conf

可参考 1.4.7 配置 zabbix_agentd.conf 文件

启动客户端

注意:

如果出现


则检查日志:

tailf  /var/log/zabbix/zabbix_server.log

我的日志里显示

122843:20170812:094536.724 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决方法:

[root@centos7-web02 ~]# find / -name "mysql.sock"

/tmp/mysql.sock

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

2.2 添加自定义监控主机

添加zabbix管理机(监控管理机)

1、进入-配置---主机


2、点击Zabbix server


3、配置如下


vim /usr/local/zabbix/etc/zabbix_agentd.conf

修改hostname=和这里的一样,不然zabbix日志中会一直出现如下:

123015:20170812:103924.955 cannot send list of active checks to "127.0.0.1": host [Zabbix server] not found

4、一直刷新登录变绿,如果是红色的则检查IP和端口和防火墙。



或者给iptables添加两条规则:

# iptables -A INPUT -p tcp -m tcp --dport 10051 -j ACCEPT

# iptables -A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT

# /etc/init.d/iptables save

2.3 网页上添监控agent




l  监控变红的解决方法:

zabbix_get:测试能不能从客户端获取数据;等上面的监控变红的时候

zabbix_get  -h 可以获取到参数

[root@centos7-web02 ~]# zabbix_get -s 172.168.10.7 -p 10050 -k "system.cpu.load[all,avg1]"

0.000000

[root@centos7-web02 ~]# zabbix_get -s 172.168.10.6 -p 10050 -k "system.cpu.load[all,avg1]"

0.010000

其他问题请注意关闭selinux 和查看防火墙,host解析

注意配置文件的位置

find / -name "*agentd.conf"

第3章 

后面文章会具体介绍监控各个服务的状态方法,此文章只介绍安装方法

配置之前系统可能会缺少一些lib库文件,主要是一些devel开发包.可能需要的如下:
可能需要安装一些软件包:
yum install unixODBC-devel
yum install Curl-devel
yum install net-snmp-devel
yum install OpenIPMI-devel
yum install openmpi-devel
yum install libevent-devel
yum install libpcre-devel

yum install glibc-static


访问权限



 推荐知识

 历史版本

修改日期 修改人 备注
2020-03-29 14:56:12[当前版本] wyasw 创建版本

 附件
文艺知识分享平台 - 4.3.0 - 文艺范儿