NGINX+PHP+POSTGRESQL+ZABBIX 5.X
安装前准备工作
系统及应用版本
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.conf和postgresql.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的更多相关文章
- nginx+php+mysql+zabbix服务器安装
好久没有接触监控类的软件了,今天抽空搭建了下 首先系统环境 zabbix-server-1 centos7.2 本次所需的第三方软件包 以下软件包通过官网下载 zabbix-3.0.3.tar. ...
- 在centos6.5下用nginx无法连接zabbix与mysql的解决办法
一般情况下默认的webserver是apache.zabbix也不例外,官方文档全都是推荐用apache. 如果执意用nginx来做webserver的话,php引导需要再安装一个php-fpm.而且 ...
- Zabbix监控nginx status
nginx开启status ./configure --with-http_stub_status_module nginx.conflocation /statusx35 { stub_status ...
- Centos7 nginx 虚拟主机、反向代理服务器及负载均衡,多台主机分离php-fpm实验,之强化篇,部署zabbix为例
一.简介 1.由于zabbix是php得,所有lnmp环境这里测试用的上一个实验环境,请查看https://www.cnblogs.com/zhangxingeng/p/10330735.html : ...
- Zabbix监控nginx性能的另外一种方式
Zabbix监控nginx性能的另外一种方式 nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有用,为了后续的zabbix监控,我们需要先启用nginx ...
- Zabbix监控PostgreSQL
目录 Zabbix监控PostgreSQL 1. 安装libzbxpgsql 2. 配置zabbix配置文件zabbix_agentd.conf 3. 创建监控用户 4. 导入监控模板 5. 主机链接 ...
- zabbix日常监控项nginx(五)
1.开启nginx监控 2.编写脚本来进行数据采集 3.设置用户自定义参数 4.重启zabbix-agent 5.添加item.创建图形.创建触发器 6.创建模板 注:第一次使用可以按需求制定好模板, ...
- ZABBIX 3.4 监控Nginx 状态(七)
一.环境准备 1.在nginx的配置文件中,添加status配置 location /nginx_status { stub_status on; ...
- ZABBIX 3.0 配置监控NGINX性能【OK】
1.在agent端查看配置: nginx -V //查看编辑时是否加入状态监控模块:--with-http_stub_status_module --with-http_gzip_static_mod ...
随机推荐
- Burp Suite Spider Module - 网络爬虫模块
Web application spdiering 和scanning 可以结合使用. Burp Suite 的Spider Module - Options 主要包含:Crawler Setting ...
- OSCP Learning Notes - Capstone(2)
BTRSys v2.1 Walkthrough Preparation: Download the BTRSys virtual machine from the following website: ...
- Java应用服务器之tomcat基础配置(二)
前文我们聊了下tomcat的配置文件相关格式和组件简介以及webapp目录结构,manger部署和host managera部署,回顾请参考https://www.cnblogs.com/qiuhom ...
- /dev/mapper/VolGroup00-LogVol00 满了,根目录存储垃圾文件导致磁盘满了
登录系统,df -H 发现磁盘存储快满了 解决办法 1. 使用命令查出根目录下大的垃圾文件 使用 du -sh /* | sort -nr 查看根目录下的的大文件,找的不要的 rm -rf 使用 fi ...
- TeamViewer如何绑定谷歌二次验证码/谷歌身份验证?
1.下载TeamViewer,找到谷歌二次验证界面 下载.注册TeamViewer后,点击右上角账户名-“编辑配置文件” [常规]-“双重验证”,点“启用” 进入[激活双重验证]界面,点“启动激活 ...
- DC-1靶机实战和分析
前言 我们都知道,对靶机的渗透,可以宽阔自己的解题思路,练习并熟悉相关操作命令,提高自己的能力.下面我就对Vulnhub的DC-1靶机进行渗透,靶机设置了5个flag,咱们依次找到它.并通过图文形式讲 ...
- element上传功能携带参数
在写element的上传功能时,需要对上传的文件携带参数,但是参数比较多,就需要一个对象合并的方法,Object.assign() Object.assign(target, source1, sou ...
- methodology of english learning
classify the vocabulary into different catigories syllabus about person
- String常用处理方法
1.去空格 用于删除字符串的头尾空白符. 语法:public String trim() 返回值:删除头尾空白符的字符串. 删除所有空格 str.replace(" ", &quo ...
- python入门神书!|python编程从入门到实践|内附网盘链接带提取码|
点击此处进入网盘下载地址 提取码:o39n 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌握让 ...