安装前准备工作

系统及应用版本

centos 8.3

nginx 1.18

php 7.4.8

postgresql 12.3

zabbix 5.0.2

安装编译环境依赖包

dnf -y install gd gd-devel gcc gcc-c++ make automake pcre pcre-devel \
zlib zlib-devel openssl openssl-devel libxml2-devel libpng-devel curl-devel \
numactl langpacks-zh_CN.noarch glibc-common net-tools lrzsz readline readline-devel \
sqlite-devel libzip libzip-devel wget net-snmp-devel libevent-devel

安装包下载

wget http://nginx.org/download/nginx-1.18.0.tar.gz
wget https://www.php.net/distributions/php-7.4.8.tar.gz
wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.2.tar.gz
wget https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz

安装nginx

解压nginx源码包:

tar -zxf nginx-1.18.0.tar.gz
cd nginx-1.18.0

编译安装:

./configure --prefix=/opt/lnmp/nginx
make && make install

创建nginx用户

useradd nginx
passwd nginx

将nginx命令加入环境变量

#设置环境变量
vim /etc/profile.d/nginx.sh
PATH=$PATH:/opt/nginx/sbin
export PATH
:wq!
source /etc/profile #刷新配置
#修改nginx配置
grep "^\s*[^# \t].*$" /opt/lnmp/nginx/conf/nginx.conf worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
} #启动测试nginx配置文件
/opt/lnmp/nginx/sbin/nginx -t -c /opt/lnmp/nginx/conf/nginx.conf
#启动nginx
/opt/lnmp/nginx/sbin/nginx -c /opt/lnmp/nginx/conf/nginx.conf
#停止nginx
/opt/lnmp/nginx/sbin/nginx -c /opt/lnmp/nginx/conf/nginx.conf -s stop --------------------------------------
[root@angrymushroom-wk nginx-1.18.0]# nginx -t
nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx/conf/nginx.conf test is successful
[root@angrymushroom-wk nginx-1.18.0]# nginx
[root@angrymushroom-wk nginx-1.18.0]# netstat -lnptu |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 97075/nginx: master

源码安装postgresql

解压源码包

tar -zxf postgresql-12.3.tar.gz
cd postgresql-12.3

编译安装

./configure --prefix=/opt/lnmp/pgsql
make && make install

创建postgres用户

useradd postgres
passwd postgres

添加环境变量

vim /etc/profile.d/postgresql.sh ## 增加环境变量,不推荐直接在/etc/profile中添加,系统更新升级时会需要merge

cat /etc/profile.d/postgres.sh
PATH=/opt/lnmp/pgsql/bin:$PATH
export PATH
:wq!
source /etc/profile ## 更新环境变量

将postgresql的库添加到全局

cat /etc/ld.so.conf.d/pgsql.conf
/opt/lnmp/pgsql/lib
ldconfig ##更新库
ldconfig -v |grep pg ## 查看是否添加成功

初始化数据库

su - postgres
/opt/lnmp/pgsql/bin/initdb -D /opt/lnmp/pgsql/data

配置数据库允许远程登录

vim /opt/lnmp/pgsql/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
vim /opt/lnmp/pgsql/data/postgresql.conf
listen_addresses = '*'
port = 5432

postgresql运行命令

opt/lnmp/pgsql/bin/pg_ctl start -D /opt/lnmp/pgsql/data -l /opt/lnmp/pgsql/logs/server.log
/opt/lnmp/pgsql/bin/pg_ctl stop -D /opt/lnmp/pgsql/data
/opt/lnmp/pgsql/bin/pg_ctl restart -D /opt/lnmp/pgsql/data
/opt/lnmp/pgsql/bin/pg_ctl reload -D /opt/lnmp/pgsql/data
/opt/lnmp/pgsql/bin/pg_ctl status -D /opt/lnmp/pgsql/data

创建库和用户

psql -h 192.168.253.250 -U postgres                     ## postgres登录数据库
alter user postgres with password 'postgres'; ## 修改postgres密码
create user zabbixus with password 'zabbixpwd'; ## 创建用户设置密码
CREATE DATABASE zabbixdb OWNER zabbuxus; ## 创建数据库并指定用户
grant ALL privileges on database zabbixdb to zabbixus; ## 给用户赋数据库权限
psql -h 192.168.253.250 -U zabbix -W zabbixdb ## 普通用户登录

安装php

php依赖包oniguruma 安装

tar -zxf oniguruma-6.9.4.tar.gz
cd oniguruma-6.9.4
./autogen.sh
./configure --prefix=/usr --libdir=/lib64
make && make install

编译php

./configure --prefix=/opt/lnmp/php --with-config-file-path=/opt/lnmp/php/etc --with-pdo-pgsql=/opt/lnmp/pgsql/ --with-pgsql=/opt/lnmp/pgsql/ --with-freetype --with-jpeg --with-zlib --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --enable-mbstring --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-soap --with-gettext  --enable-fpm --with-zip --enable-gd --with-webp
make && make install

添加php配置文件并修改

cp php.ini-production /opt/lnmp/php/etc/php.ini
cp /opt/lnmp/php/etc/php-fpm.conf.default /opt/lnmp/php/etc/php-fpm.conf
cp /opt/lnmp/php/etc/php-fpm.d/www.conf.default /opt/lnmp/php/etc/php-fpm.d/www.conf
vim /opt/lnmp/php/etc/php.ini
date.timezone = Asia/Shanghai
post_max_size 16M
max_execution_time 300
max_input_time 300
vim /etc/profile.d/php.sh
PATH=/opt/lnmp/php/bin:/opt/lnmp/php/sbin:$PATH
export PATH
vim /opt/lnmp/nginx/html/test.php ## nginx访问php测试页面
<?
php phpinfo();
?>
vim /opt/lnmp/nginx/html/testpg.php ## php连接postgresql数据库测试页面
<?php
$conn_string = "host=localhost port=5432 dbname=zabbixdb user=zabbixus password=zabbixpwd" ;
$dbconn = pg_connect($conn_string);
if (!$dbconn)
echo "连接失败!!!!!/r/n";
else
echo "连接成功!!!!!/r/n";
pg_close($dbconn);
?>

php运行命令

/opt/lnmp/php/sbin/php-fpm        ## 直接执行启动程序  pkill php-fpm 结束进程  php-fpm -t 检测配置文件是否有错
ps -ef |grep php-fpm
root 23942 1 0 Aug06 ? 00:00:00 php-fpm: master process (/opt/lnmp/php/etc/php-fpm.conf)
nobody 39558 23942 2 05:18 ? 00:00:47 php-fpm: pool www
nobody 40815 23942 2 05:37 ? 00:00:23 php-fpm: pool www
nobody 41628 23942 2 05:50 ? 00:00:05 php-fpm: pool www
netstat -lnptu |grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 23942/php-fpm: mast

安装ZABBIX5

解压zabbix包

tar -zxf zabbix-5.0.2.tar.gz
cd zabbix-5.0.2

编译安装zabbix

./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-postgresql=/opt/lnmp/pgsql/bin/pg_config --with-net-snmp --with-libcurl --with-libxml2
make && make install

创建zabbix用户

useradd -d /opt/zabbix -s /sbin/nologin zabbix

导入zabbix表数据

 psql -d zabbixdb -U zabbixus  <database/postgresql/schema.sql
psql -d zabbixdb -U zabbixus <database/postgresql/images.sql
psql -d zabbixdb -U zabbixus <database/postgresql/data.sql
psql -d zabbixdb -U zabbixus <database/postgresql/timescaledb.sql
psql -d zabbixdb -U zabbixus <database/postgresql/double.sql

修改zabbix_server.conf和zabbix_agent.conf

vim /opt/zabbix/etc/zabbix_server.conf
LogFile=/opt/zabbix/log/zabbix_server.log ## 日志文件存放的路径
PidFile=/opt/zabbix/zabbix_server.pid ## pid文件存放的路径
DBHost=localhost ## 数据库服务器地址
DBName=zabbixdb ## 数据库名字
DBUser=zabbixus ## 连接数据库的用户名
DBPassword=zabbixpwd ## 连接数据库用户的密码
#DBSocket=/var/lib/mysql/mysql.sock ## 指定连接mysql的socket,mysql配置的client sock文件路径
DBPort=5432 ## 数据库端口
Timeout=10 ## 超时时间
LogSlowQueries=3000 ## 慢查询记录的时间
mkdir /opt/zabbix/log
chown zabbix.zabbix /opt/zabbix/log
vim /opt/zabbix/etc/zabbix_agentd.conf
LogFile=/opt/zabbix/log/zabbix_agentd.log
PidFile=/opt/zabbix/zabbix_agentd.pid
Server=127.0.0.1 ## 服务器IP
ServerActive=127.0.0.1 ## 服务器IP
Hostname=angrymushroom-os801 ## agent客户机主机名
vim /etc/profile.d/zabbix.sh
PATH=/opt/zabbix/bin:/opt/zabbix/sbin:$PATH
export PATH
source /etc/profile
vim /etc/ld.so.conf.d/zabbix.conf
/opt/zabbix/lib
ldconfig

启动zabbix

/opt/zabbix/sbin/zabbix_agentd -c /opt/zabbix/etc/zabbix_agentd.conf
/opt/zabbix/sbin/zabbix_server -c /opt/zabbix/etc/zabbix_server.conf
## ps -ef |grep zabbix 查看进程 netstat -lnptu |grep zabbix 查看端口 pkill 结束进程

配置zabbix web页面

cp -a zabbix-5.0.2/ui/* /opt/lnmp/nginx/html/zabbix/   ## 将web页面cp到nginx的web根下的zabbix目录
## 在Windows C:\Windows\Fonts 下找一个 .ttf后缀的中文包上传到 /opt/lnmp/nginx/html/zabbix/assets/fonts/下
## 将上传的ttf语言包名替换成原本的语言包名
cd /opt/lnmp/nginx/html/zabbix/assets/fonts/
ls *.ttf
DejaVuSans.ttf simhei.ttf ## 这里将DejaVuSans.ttf mv 成DejaVuSans.ttf.bak 然后将simhei.ttf改为DejaVuSans.ttf
## 修改以后在浏览器打开 http://IP:Prot/zabbix 进入配置页面。第一页是个欢迎界面下一步之后会检查环境是否正确。如果有问题根据提示的信息修改然后刷新页面
## 最后完成的时候会让你下载一个zabbix.conf.php的配置文件 把它上传到对应目录 然后刷新页面即可进入zabbix登录页面
## 登录后可以在 user settings里设置中文语言

postgresql补充

列出数据库名(查看已有的数据库)

 \l  或  select * from pg_database;

切换数据库

\c 数据库名

列出表名

 \d 不加参数 或
SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;

将数据库的所有权限付给用户

postgres=# GRANT ALL PRIVILEGES ON DATABASE zabbixdb TO zabbixus;  #将数据库 zabbixdb 权限授权于 zabbixus 但此时用户还是没有读写权限,需要继续授权表
GRANT
postgres=# \c zabbixdb;
GRANT ALL PRIVILEGES ON all tables in schema public TO zabbixus;
#注意,该sql语句必须在所要操作的数据库里执行
#这一句是将当前数据库下 public schema 的表都授权于 zabbixus
#如果要单独一个权限以及单独一个表,则:
GRANT SELECT ON TABLE mytable TO zabbixus;
------------
postgres=# grant all on database testdb to zabbixus; #将testdb所有权限赋值给zabbixus
GRANT

导入整个数据库

psql -U username databasename < /data/dum.sql -- 用户名和数据库名

设置用户远程登录

[root@angrymushroom-wk ~]# psql -h 192.168.254.128 -U zabbixus -d zabbixdb
psql: error: could not connect to server: could not connect to server: 拒绝连接
Is the server running on host "192.168.254.128" and accepting
TCP/IP connections on port 5432?

安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。

  配置远程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.confpostgresql.conf配置文件。

  pg_hba.conf :配置对数据库的访问权限;

  postgresql.conf :配置PostgreSQL数据库服务器的相应的参数。

下面介绍具体配置的步骤:

修改 pg_hba.conf 文件,配置用户的访问权限(#开头的行是注释内容):  

[root@angrymushroom-wk ~]# vim /opt/pgsql12/data/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5 ## 设置允许某个网段
host all all 0.0.0.0/0 md5 ## 设置允许全部网段
# IPv6 local connections:
host all all ::1/128 trust

其中,第6条是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。其中,数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问。

修改 ostgresql.conf 文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

  定位到#listen_addresses = "localhost"。PostgreSQL安装完成后,默认只接受来自本机localhost的连接请求。

  将行开头都#去掉,将行内容修改为listen_addresses = "*"来允许数据库服务器监听来自任何主机的连接请求

其他扩展

systemctl

1、启动、关闭、重启防火墙服务。

systemctl start firewalld.service

systemctl stop firewalld.service

systemctl restart firewalld.service

2、显示防火墙的状态。

systemctl status firewalld.service

3、开机启动防火墙。

systemctl enable firewalld.service

4、开机时禁用防火墙。

systemctl disable firewalld.service

5、查看防火墙是否开机启动。

systemctl is-enabled firewalld.service

6、查看已启动的服务列表。

systemctl list-unit-files|grep enabled

7、查看启动失败的服务列表。

systemctl --failed

配置防火墙

1、查看版本。

firewall-cmd --version

2、查看帮助。

firewall-cmd --help

3、显示状态。

firewall-cmd --state

4、查看所有打开的端口。

firewall-cmd --zone=public --list-ports

5、重新载入,更新防火墙规则。

firewall-cmd --reload

6、查看区域信息。

firewall-cmd --get-active-zones

7、查看指定接口所属区域。

firewall-cmd --get-zone-of-interface=eth0

8、拒绝所有包。

firewall-cmd --panic-on

9、取消拒绝状态。

firewall-cmd --panic-off

10、查看是否拒绝。

firewall-cmd --query-panic

11、开启80端口,–permanent永久生效,没有此参数重启后失效。

firewall-cmd --zone=public --add-port=80/tcp --permanent

12、查看80端口是否开放。

firewall-cmd --zone=public --query-port=80/tcp

13、删除80端口配置。

firewall-cmd --zone=public --remove-port=80/tcp --permanent

NGINX+PHP+POSTGRESQL+ZABBIX 5.X的更多相关文章

  1. nginx+php+mysql+zabbix服务器安装

    好久没有接触监控类的软件了,今天抽空搭建了下 首先系统环境 zabbix-server-1    centos7.2 本次所需的第三方软件包 以下软件包通过官网下载 zabbix-3.0.3.tar. ...

  2. 在centos6.5下用nginx无法连接zabbix与mysql的解决办法

    一般情况下默认的webserver是apache.zabbix也不例外,官方文档全都是推荐用apache. 如果执意用nginx来做webserver的话,php引导需要再安装一个php-fpm.而且 ...

  3. Zabbix监控nginx status

    nginx开启status ./configure --with-http_stub_status_module nginx.conflocation /statusx35 { stub_status ...

  4. Centos7 nginx 虚拟主机、反向代理服务器及负载均衡,多台主机分离php-fpm实验,之强化篇,部署zabbix为例

    一.简介 1.由于zabbix是php得,所有lnmp环境这里测试用的上一个实验环境,请查看https://www.cnblogs.com/zhangxingeng/p/10330735.html : ...

  5. Zabbix监控nginx性能的另外一种方式

    Zabbix监控nginx性能的另外一种方式 nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有用,为了后续的zabbix监控,我们需要先启用nginx ...

  6. Zabbix监控PostgreSQL

    目录 Zabbix监控PostgreSQL 1. 安装libzbxpgsql 2. 配置zabbix配置文件zabbix_agentd.conf 3. 创建监控用户 4. 导入监控模板 5. 主机链接 ...

  7. zabbix日常监控项nginx(五)

    1.开启nginx监控 2.编写脚本来进行数据采集 3.设置用户自定义参数 4.重启zabbix-agent 5.添加item.创建图形.创建触发器 6.创建模板 注:第一次使用可以按需求制定好模板, ...

  8. ZABBIX 3.4 监控Nginx 状态(七)

    一.环境准备 1.在nginx的配置文件中,添加status配置        location /nginx_status {               stub_status on;       ...

  9. ZABBIX 3.0 配置监控NGINX性能【OK】

    1.在agent端查看配置: nginx -V //查看编辑时是否加入状态监控模块:--with-http_stub_status_module --with-http_gzip_static_mod ...

随机推荐

  1. Burp Suite Spider Module - 网络爬虫模块

    Web application spdiering 和scanning 可以结合使用. Burp Suite 的Spider Module - Options 主要包含:Crawler Setting ...

  2. OSCP Learning Notes - Capstone(2)

    BTRSys v2.1 Walkthrough Preparation: Download the BTRSys virtual machine from the following website: ...

  3. Java应用服务器之tomcat基础配置(二)

    前文我们聊了下tomcat的配置文件相关格式和组件简介以及webapp目录结构,manger部署和host managera部署,回顾请参考https://www.cnblogs.com/qiuhom ...

  4. /dev/mapper/VolGroup00-LogVol00 满了,根目录存储垃圾文件导致磁盘满了

    登录系统,df -H 发现磁盘存储快满了 解决办法 1. 使用命令查出根目录下大的垃圾文件 使用 du -sh /* | sort -nr 查看根目录下的的大文件,找的不要的 rm -rf 使用 fi ...

  5. TeamViewer如何绑定谷歌二次验证码/谷歌身份验证?

    1.下载TeamViewer,找到谷歌二次验证界面 下载.注册TeamViewer后,点击右上角账户名-“编辑配置文件” [常规]-“双重验证”,点“启用”   进入[激活双重验证]界面,点“启动激活 ...

  6. DC-1靶机实战和分析

    前言 我们都知道,对靶机的渗透,可以宽阔自己的解题思路,练习并熟悉相关操作命令,提高自己的能力.下面我就对Vulnhub的DC-1靶机进行渗透,靶机设置了5个flag,咱们依次找到它.并通过图文形式讲 ...

  7. element上传功能携带参数

    在写element的上传功能时,需要对上传的文件携带参数,但是参数比较多,就需要一个对象合并的方法,Object.assign() Object.assign(target, source1, sou ...

  8. methodology of english learning

    classify the vocabulary into different catigories syllabus about person

  9. String常用处理方法

    1.去空格 用于删除字符串的头尾空白符. 语法:public String trim() 返回值:删除头尾空白符的字符串. 删除所有空格 str.replace(" ", &quo ...

  10. python入门神书!|python编程从入门到实践|内附网盘链接带提取码|

    点击此处进入网盘下载地址 提取码:o39n 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌握让 ...