基于LNMP环境搭建zabbix监控

基于LNMP环境搭建zabbix监控

一、监控系统介绍

开源的监控系统:Nagios、Cacti、Zabbix

区别:

Nagios重在监控告警,但是zabbix更出色,告警配置web化
Nagios添加监控需要更改配置文件
Nagios无监控历史数据,图形支持差
Nagios不支持分布式监控

Cacti重在采集服务器、网络设备的监控数据并绘图
Cacti依赖于snmp协议
Cacti不好自定义监控
Cacti告警支持不友好

Zabbix所有监控配置web化、web采用php开发
Zabbix支持分布式监控
Zabbix支持多种方式数据采集:简单监控、Agent监控、snmp接口监控、JMX接口监控
Zabbix告警配置web化:邮件、微信、钉钉、短信
Zabbix和Grafana的结合方便监控数据的可视化

Zabbix监控系统搭建理论

  1. Zabbix Server会采集监控数据,采集的监控数据会写入到SQL数据库
  2. Zabbix的web后端采用php语言开发,所有配置信息、用户认证信息等会写入SQL数据库
  3. 企业级Zabbix的搭建环境主流采用LNMP环境

LNMP环境用户请求流程
用户 -> Nginx -> php-fpm -> 运行php程序 -> 操作MySQL

二、Centos搭建Nginx

[root@localhost ~]#yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://nginx.org/en/download.html/nginx-1.61.1

在这里插入图片描述
编译安装命令:

[root@localhost ~]#yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

  [root@localhost ~]#cd /usr/local/src/
  
  [root@localhost src]#wget http://nginx.org/download/nginx-1.17.9.tar.gz
  
  [root@localhost src]#tar -zxvf nginx-1.17.9.tar.gz 
  
  [root@localhost src]#cd nginx-1.17.9/
  
  [root@localhost nginx-1.17.9]#./configure --prefix=/usr/local/nginx
  
   [root@localhost nginx-1.17.9]#make && make install

启动和关闭Nginx

  1. 设置环境变量:
vim /etc/profile
export PATH=$PATH:/usr/local/nginx/sbin/
  1. 检查Nginx配置:
nginx -t

3.启动Nginx:

nginx
  1. 关闭Nginx:
nginx -s stop

验证Nginx是否安装成功

  1. 查看进程
    在这里插入图片描述
    2.查看监控端口
    在这里插入图片描述
    3.查看nginx日志
    在这里插入图片描述
  2. web访问
    在这里插入图片描述

使用systemctl管理Nginx

vim /usr/lib/systemd/system/nginx.server

[Unit]
Description=nginx             
After=network.target           
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
[Insatll]
WantedBy=multi-user.target
 (内容部分详解:https://blog.csdn.net/xiaojun111111/article/details/73818359(来源于网络搜索))

配置文件写入完成后重新加载,kill掉原有nginx进程,再使用systemctl启动
在这里插入图片描述在这里插入图片描述

三、源码编译安装PHP

(Zabbix网页后端使用PHP,安装php需要解决很多依赖,比较麻烦)
PHP编译安装:

[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel
[root@localhost ~]# cd /usr/load/src/
[root@localhost src]# wget https://www.php.net/distributions/php-5.6.40.tar.gz 
[root@localhost src]# tar -zxf php-5.6.40.tar.gz
[root@localhost src]# cd php-5.6.40
[root@localhost php-5.6.40]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm
[root@localhost php-5.6.40]#make && make install
[root@localhost php-5.6.40]#cp php.ini-production /usr/local/php/etc/php.ini

[说明]:
–prefix指定php的安装目录
–with-config-file-path指定php的配置文件位置
–with-mysql、–with-mysqli让php可以操作mysql
–enable-fpm主要是nginx要来调用php语言得使用php-fpm

启动php-fpm

扫描二维码关注公众号,回复: 11695609 查看本文章

设置环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/

检查配置文件:

php-fpm -t

注意:在使用该命令检查配置文件时,会出现如下错误:
在这里插入图片描述
这是因为系统默认生成了一个叫php-fpm.conf.default的文件,因此,要把php-fpm.conf.default文件拷贝一份并命名为php-fpm.conf
在这里插入图片描述

使用systemctl管理php-fpm

vim /usr/lib/systemd/system/php-fpm.service

[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
[Install]
WantedBy=multi-user.target

启动php-fpm以及检查php-fpm状态
在这里插入图片描述
另外:php-5.6.40默认是是通过网络方式的监听在127.0.0.1:9000端口
在这里插入图片描述

将Nginx与PHP联通
未修改配置文件的情况下,网页打开.php后缀文件默认是下载状况
在这里插入图片描述
在默认配置文档中,Nginx只认准index index.htm index.html三种类型文件,添加index.php
在这里插入图片描述
开启php配置,修改文件存放位置
在这里插入图片描述
重启nginx,网页进入192.168.80.128/test.php正常显示即为连接成功。

在这里插入图片描述

四、源码编译安装MySQL

MySQL编译安装

yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel

添加MySQL用户,没有用户的话mysql无法启动

useradd -s /sbin/nologin mysql
cd /usr/local/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.39.tar.gz

(或者网盘下载到主机上传虚拟机
链接:https://pan.baidu.com/s/1fD2S9PFClYjSwRepyvzrGA 提取码:0ess )

tar -zxvf mysql-5.6.39.tar.gz
cd mysql-5.6.39
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
make && make install
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld

【说明】:
CMACK_INSTALL_PREFIX指定安装的目录
MYSQL_DATADIR指定Mysql的数据目录

配置MySQL环境变量

vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin/
source /etc/profile

更新MySQL配置

vim /etc/my.cnf

将内容更换为

[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
user=mysql
skip-name-resolve
long_query_time=2
slow_query_log_file=/data/mysql/mysql-slow.log
expire_logs_days=2
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
max_allowed_packet      = 512M
connect_timeout = 60
net_read_timeout = 120

[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid

MySQL数据库初始化
首先yum安装perl-Module-Install,用于初始化数据库

mkdir -pv /data/mysql
chown -R mysql:mysql  /usr/local/mysql /data/mysql/
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/
 

在这里插入图片描述

初始化完成后会有下面这些文件、文件夹

在这里插入图片描述
使用systemctl管理MySQL

vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target

在这里插入图片描述

检查监听端口

在这里插入图片描述

MySQL安全方式
mysql能限制ip访问、访问需要用户名密码、mysql权限还能再细分
默认让127.0.0.1访问,用户名root,不需要密码mysql -uroot -h 127.0.0.1

MySQL加密码:

mysqladmin -h 127.0.0.1 -u root password 'ytvchsy'
mysql -h 127.0.0.1 -u root -pytvchsy 

授权ip登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.80.%' IDENTIFIED BY 'ytvchsy' WITH GRANT OPTION;. 前一个代表库后一个代表表 ‘root’代表用户,可以是其他用户 )

 flush privileges;

在这里插入图片描述

网络登录MySQL

 mysql -h 192.168.80.128 -uroot -pytvchsy

五、LNMP环境验证

vim /usr/local/nginx/html/test_mysql.php
<?php
  $link=mysql_connect("127.0.0.1","root","ytvchsy"); 
  if(!$link){
    
    
    echo "mysql_connect fail";
  }else{
    
    
    echo "mysql_connect success";
  }
?>

登录查看:
在这里插入图片描述
显示连接成功即为搭建成功

猜你喜欢

转载自blog.csdn.net/weixin_43802844/article/details/105272741