LNMP环境:
1、centos7.8
2、nginx-1.19.2
3、php74(zabbix5.1需要php7.2以上的版本)
4、mysql-5.7.17(也可以用mariadb)
5、zabbix-5.0.1
6、需要链接互联网
链接:https://pan.baidu.com/s/1AE5mo_tBEky71O14NcbORA
提取码:52r4
主机:
192.168.226.134 vm134 zabbix-server
192.168.226.135 vm135 zabbix-agent
192.168.226.136 vm136 zabbix-agent
所有主机环境:
1、关闭selinux和firewalld
2、配置/etc/hosts
vim /etc/hosts
192.168.226.135 vm135
192.168.226.134 vm134
192.168.226.136 vm136
一、部署nginx
1、通过xshell或其他方式把nginx的tar包上传到vm134的/opt下
[root@vm134 ~]# yum -y install gcc pcre-devel openssl-devel
[root@vm134 ~]# cd /opt
[root@vm134 opt]# tar -xf nginx-1.19.2.tar.gz
[root@vm134 opt]# cd nginx-1.19.2/
[root@vm134 nginx-1.19.2]# ./configure --with-http_ssl_module
[root@vm134 nginx-1.19.2]# make && make install
[root@vm134 nginx-1.19.2]# cd /usr/local/nginx/
[root@vm134 nginx]# sbin/nginx
[root@vm134 nginx]# netstat -tunlp | grep nginx
[root@vm134 nginx]# sbin/nginx -s stop
2、在http里添加以下内容,include是启用子配置文件,前面的是缓存链接的优化
[root@vm134 nginx]# vim conf/nginx.conf
http {
............
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
include /usr/local/nginx/conf/conf.d/*.conf;
}
3、常见子配置文件
[root@vm134 nginx]# mkdir conf/conf.d
[root@vm134 nginx]# vim conf/conf.d/zabbix-9000.conf
server{
listen 80;
server_name 192.168.226.134; #这里的ip也可以换成域名地址(需要了解云服务器相关配置)
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; #转发到php-fpm服务
fastcgi_index index.php;
include fastcgi.conf;
}
}
4、验证是否能正常启动
[root@vm134 nginx]# sbin/nginx
[root@vm134 nginx]# netstat -tunlp | grep nginx
二、部署php74
1、配置一个第三方的php7.4的remi源:
[root@vm134 ~]# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
2、通过yum来安装php,并安装相关的一些模块:
[root@vm134 ~]# yum install -y php74-php-fpm php74-php-cli php74-php-bcmath php74-php-gd php74-php-json php74-php-mbstring php74-php-mcrypt php74-php-mysqlnd php74-php-opcache php74-php-pdo php74-php-pecl-crypto php74-php-pecl-mcrypt php74-php-pecl-geoip php74-php-recode php74-php-snmp php74-php-soap php74-php-xml php74-php-imagick php74-php-pecl-zip php74-php-redis php74-php-swoole
3、验证php74
[root@vm134 ~]# systemctl start php74-php-fpm.service
[root@vm134 ~]# systemctl enable php74-php-fpm.service
[root@vm134 ~]# netstat -tunlp | grep php
三、部署mysql
1、部署mysql并启动:
[root@vm134 ~]# mkdir /opt/mysql5.7
[root@vm134 ~]# cd /opt/mysql5.7
[root@vm134 mysql5.7]# tar -xf mysql-5.7.17.tar #需要手动上传mysql的包到本目录下
[root@vm134 mysql5.7]# yum -y install mysql-community-* #安装mysql
[root@vm134 mysql5.7]# systemctl start mysqld
[root@vm134 mysql5.7]# systemctl enable mysqld
2、查寻初始化密码并登录mysql
[root@vm134 mysql5.7]# grep "password" /var/log/mysqld.log #查寻mysql的初始化密码为6DwmKR=G9Pzy (根据个人情况,密码不同,显示如下:)
2020-10-09T07:03:39.320371Z 1 [Note] A temporary password is generated for root@localhost: 6DwmKR=G9Pzy
[root@vm134 mysql5.7]# mysql -uroot -p6DwmKR=G9Pzy #登录mysql
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9409
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> alter user root@"localhost" identified by "123qwe...Q"; #修改密码后才能进行其他操作。
Query OK, 0 rows affected (0.25 sec)
mysql> exit
Bye
四、部署zabbix5.0
1、部署zabbix
[root@vm134 ~]# yum -y install net-snmp-devel curl-devel libevent-devel #部署zabbix依赖包
[root@vm134 ~]# cd /opt/
[root@vm134 opt]# tar -xf zabbix-5.0.1.tar.gz #也需要提前上传tar包到本目录下
[root@vm134 opt]# cd zabbix-5.0.1
[root@vm134 zabbix-5.0.1]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
备注:
// --enable-server安装部署zabbix服务器端软件
// --enable-agent安装部署zabbix被监控端软件
// --enable-proxy安装部署zabbix代理相关软件
// --with-mysql配置mysql_config路径
// --with-net-snmp允许zabbix通过snmp协议监控其他设备
// --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
进行编译安装:
[root@vm134 zabbix-5.0.1]# make && make install
2、创建zabbix数据库和用户
[root@vm134 zabbix-5.0.1]# mysql -uroot -p123qwe...Q
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9655
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by '123qwe...Q';
mysql> exit
3、导入zabbix数据表(tar包里解压的)
[root@vm134 zabbix-5.0.1]# cd database/mysql/
[root@vm134 mysql]# ls
data.sql double.sql images.sql Makefile Makefile.am Makefile.in schema.sql
注意导入数据的顺序,ls后,从最后向前面导入。
[root@vm134 mysql]# mysql -uzabbix -p123qwe...Q zabbix < schema.sql
[root@vm134 mysql]# mysql -uzabbix -p123qwe...Q zabbix < images.sql
[root@vm134 mysql]# mysql -uzabbix -p123qwe...Q zabbix < data.sql
[root@vm134 mysql]# cd /opt/zabbix-5.0.1/ui #zabbix默认web页面位置,源码包自带
[root@vm134 ui]# cp -r * /usr/local/nginx/html/
[root@vm134 ui]# chmod -R 777 /usr/local/nginx/html/
4、修改zabbix-server配置文件
[root@vm134 zabbix-5.0.1]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost #数据库主机,默认该行被注释
DBName=zabbix #设置数据库名称
DBUser=zabbix #设置数据库账户
DBPassword=zabbix #设置数据库密码,默认该行被注释
LogFile=/tmp/zabbix_server.log #设置日志,仅查看以下即可
5、创建zabbix用户并启动
[root@vm134 zabbix-5.0.1]# useradd -s /sbin/nologin zabbix
[root@vm134 zabbix-5.0.1]# zabbix_server
[root@vm134 zabbix-5.0.1]# netstat -tunlp | grep zabbix
6、修改zabbix-agent配置文件
[root@vm134 zabbix-5.0.1]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.226.134 #允许哪些主机监控本机
ServerActive=127.0.0.1,192.168.226.134 #允许哪些主机通过主动模式监控本机
Hostname=zabbix_server #设置本机主机名
LogFile=/tmp/zabbix_server.log #设置日志文件
UnsafeUserParameters=1 #是否允许自定义key
[root@vm134 zabbix-5.0.1]# zabbix_agentd
[root@vm134 zabbix-5.0.1]# netstat -tunlp | grep zabbix
7、登录zabbix首页配置web环境:
http://192.168.226.134/index.php
登录后会提示php相关配置错误,可根据提示修改:
[root@vm134 zabbix-5.0.1]# vim /etc/opt/remi/php74/php.ini
date.timezone = Asia/Shanghai #设置时区
max_execution_time = 300 #最大执行时间,秒
post_max_size = 32M #POST数据最大容量
max_input_time = 300 #服务器接收数据的时间限制
memory_limit = 128M #内存容量限制
[root@vm134 zabbix-5.0.1]# systemctl restart php74-php-fpm.service #修改完成后重启
8、刷新web环境页面,php报错项目变成正常的。
备注:PHP LDAP是warning状态是没有问题的,可以忽略,点下一步后对数据库链接配置:
再对zabbix服务器链接进行配置:
1、Host填写zabbix-server的ip,如果是本机不要写localhost
2、Port填写zabbix-server的端口
3、name随意填写
完成后点击下一步:
登录验证:(需要区分大小写)
默认用户:Admin
默认密码:Zabbix
9、部署zabbix-agent(vm135和vm136都操作)
[root@vm135 ~]# useradd -s /sbin/nologin zabbix
[root@vm135 ~]# yum -y install gcc pcre-devel
[root@vm135 ~]# cd /opt
[root@vm135 opt]# tar -xf zabbix-5.0.1.tar.gz
[root@vm135 opt]# cd zabbix-5.0.1
[root@vm135 zabbix-5.0.1]# ./configure --enable-agent
[root@vm135 zabbix-5.0.1]# make && make install
10、修改zabbix-agent配置文件(vm135和vm136都操作)
[root@vm135 zabbix-5.0.1]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.226.134 #谁可以监控本机(被动监控模式)
ServerActive=127.0.0.1,192.168.226.134 #谁可以监控本机(主动监控模式)
Hostname=zabbixclient_web1 #被监控端自己的主机名
EnableRemoteCommands=1
#监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
UnsafeUserParameters=1 #是否允许自定义key监控
[root@vm135 zabbix-5.0.1]# zabbix_agentd
[root@vm135 zabbix-5.0.1]# netstat -tunlp | grep zabbix
五、通过浏览器设置监控主机
登录http://192.168.226.134/index.php
1、输入账户和密码后在最左边点击最下面的user settings
——language——chinese(zh_CN)——update来切换成中文界面。
2、配置——主机——创建主机
3、在选择主机群组时可以根据个人需要来选择,这里只是以Template OS Linux by Prom为例。
在完成以上添加主机后,就可在检测里看到图型展示了:
六、部署grafana并添加zabbix插件
源码包准备:
1、go1.15.2.linux-amd64.tar.gz
链接:https://pan.baidu.com/s/1eXaod2uqob7u1rVYa7pkuw
提取码:9kiw
2、grafana-7.2.0.linux-amd64.tar.gz
链接:https://pan.baidu.com/s/1M_ss4liktXorxG5LjEcvvg
提取码:sfv6
3、部署go
[root@vm134 ~]# cd /opt
[root@vm134 opt]# tar -xf go1.15.2.linux-amd64.tar.gz
[root@vm134 opt]# mv go /usr/local/
[root@vm134 opt]# vim /etc/profile #在最末尾添加
export PATH=$PATH:/usr/local/go/bin
[root@vm134 opt]# source /etc/profile
4、部署grafana
[root@vm134 ~]# cd /opt
[root@vm134 opt]# tar -xf grafana-7.2.0.linux-amd64.tar.gz
[root@vm134 opt]# mv grafana-7.2.0 /usr/local/grafana
[root@vm134 opt]# vim /usr/local/grafana/conf/defaults.ini
http_port = 3000 #grafana的登录端口设置
[root@vm134 opt]# cd /usr/local/grafana
[root@vm134 grafana]# bin/grafana-server & #&是指放入后台启动grafana
[root@vm134 grafana]# netstat -tunlp | grep grafana #查看是否3000端口启动了
5、登录验证
http://192.168.226.134:3000
默认用户:admin
默认密码:admin123
6、在grafana里添加zabbix模块插件
链接:https://pan.baidu.com/s/1PTpk7Zc_dgvL3tzDM8nuPQ
提取码:yta1
[root@vm134 ~]# cd /usr/local/grafana/plugins-bundled
[root@vm134 plugins-bundled]# unzip alexanderzobnin-zabbix-app-4.0.1.zip #解压zabbix插件到本目录下
[root@vm134 plugins-bundled]# cd /usr/local/grafana
[root@vm135 grafana]# netstat -tunlp | grep grafana #查寻grafana的进程号
tcp6 0 0 :::3000 :::* LISTEN 30428/./grafana-ser
[root@vm134 grafana]# kill -9 30428 #杀掉grafana的进程
[root@vm134 grafana]# bin/grafana-server & #再启动
7、在grafana里配置zabbix插件
登录:http://192.168.226.134:3000
添加监控项:
8、配置grafana插件页面注意:
1、name位置可以随意填写
2、URL位置是zabbix-server主机上nginx的位置(/usr/local/nginx/html/api_jsonrpc.php),因为是用的nginx作的php解析,所有直接写:http://192.168.226.134/api_jsonrpc.php
3、access需要选择browser
4、zabbix API details填写zabbix-server的web页面登录用户密码。
5、最后点击保存即可验证了。
开启显示图形模版:下图是已经开启的
9、验证
七、部署中遇到的坑(排错)
1、注意selinux和firewalld要关闭
2、因为用tar包解压用的和cp的文件注意权限chmod
3、数据库创建zabbix库时要用utf8,不然在后面配置grafana时会报链接数据库错误(博主就是坑这里后久)
4、在配置URL的时候一定注意在nginx下的html是否有api_jsonrpc.php,没有的话可以从zabbix源码包的ui目录下拷贝过来,注意赋予权限。
5、注意每台主机要创建一个zabbix用户。