所有主机关闭防火墙,selinux
1, 搭建lnmp环境
192.168.2.5上操作
mv lnmp_soft.tar.gz /usr/local/
cd /usr/local/lnmp_soft
ll
mv nginx-1.12.2.tar.gz /usr/local/
yum -y install gcc pcre-devel openssl-devel
tar -xf nginx-1.12.2.tar.gz
mv nginx-1.12.2 nginx
cd nginx
./configure --with-http_ssl_module
make && make install
yum -y install php php-mysql mariadb mariadb-devel mariadb-server
yum -y install php-fpm
vim /usr/local/nginx/conf/nginx.conf
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
systemctl start mariadb
systemctl start php-fpm
ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
firewall-cmd --set-default-zone=trusted
setenforce 0
sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
vim /usr/local/nginx/html/test.php
<?php
$i=33
echo $i;
?>
mkdir -p /usr/local/nginx/logs
/usr/local/nginx/sbin/nginx
ps -ef | grep nginx
root 9837 1 0 17:19 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 9838 9837 0 17:19 ? 00:00:00 nginx: worker process
root 9850 1526 0 17:31 pts/0 00:00:00 grep --color=auto nginx
curl http://192.168.2.5/test.php #不报错即可
2,部署监控服务器zabbix server
1,源码安装azbbix server 多数源码包都是需要依赖包的,zabbix亦一样,源码编译前需要先安装相关依赖包
cd /usr/local/lnmp_soft
mv zabbix-3.4.4.tar.gz /usr/local/
cd /usr/local/
tar -xf zabbix-3.4.4.tar.gz
mv zabbix-3.4.4 zabbix
cd zabbix
./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
make && make install
[root@zabbixserver zabbix]# ll /usr/local/sbin/
总用量 10828
-rwxr-xr-x. 1 root root 1456936 10月 28 13:05 zabbix_agentd
-rwxr-xr-x. 1 root root 4126856 10月 28 13:05 zabbix_proxy
-rwxr-xr-x. 1 root root 5497136 10月 28 13:05 zabbix_server
yum -y install net-snmp-devel curl-devel autoconf libevent-devel
mysql #登录数据库
create database zabbix character set utf8;
grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
use zabbix;
show tables;
cd /usr/local/zabbix/database/mysql/
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
再看表
vim /usr/local/etc/zabbix_server.conf
85 定义哪台主机为数据库主机
95 设置数据库名称
111 设置数据库账号
119 设置数据库密码
38 查看日志
useradd -s /sbin/nologin zabbix
zabbix_server
echo zabbix_server >> /etc/rc.local
chmod +x /etc/rc.local
[root@zabbixserver zabbix]# ss -ntulp | grep zabbix_server
tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=29242,fd=4),("zabbix_server",pid=29241,fd=4),("zabbix_server",pid=29240,fd=4),("zabbix_server",pid=29239,fd=4),("zabbix_server",pid=29236,fd=4),("zabbix_server",pid=29235,fd=4),("zabbix_server",pid=29234,fd=4),("zabbix_server",pid=29226,fd=4),("zabbix_server",pid=29225,fd=4),("zabbix_server",pid=29223,fd=4),(zabbix_server",pid=29222,fd=4),("zabbix_server",pid=29219,fd=4),("zabbix_server",pid=29218,fd=4),("zabbix_server",pid=29217,fd=4),("zabbix_server",pid=29216,fd=4),("zabbix_server",pid=29215,fd=4),("zabbix_server",pid=29214,fd=4),("zabbix_server",pid=29210,fd=4),("zabbix_server",pid=29209,fd=4),("zabbix_server",pid=29206,fd=4),("zabbix_server",pid=29205,fd=4),("zabbix_server",pid=29203,fd=4),("zabbix_server",pid=29202,fd=4),("zabbix_server",pid=29197,fd=4),("zabbix_server",pid=29196,fd=4),("zabbix_server",pid=29195,fd=4),("zabbix_server",pid=29194,fd=4),("zabbix_server",pid=29193,fd=4),("zabbix_server",pid=29192,fd=4),("zabbix_server",pid=29191,fd=4),("zabbix_server",pid=29190,fd=4),("zabbix_server",pid=29189,fd=4),("zabbix_server",pid=29188,fd=4),("zabbix_server",pid=29183,fd=4))
提示,如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,
一定要先使用killall zabbix_server关闭服务后,再重新启动一次
安装psmisc软件包,才有killall命令
附件知识:也可以通过创建service文件管理zabbix服务
cd /usr/lib/systemd/system/
vim zabbix_server.server
[Unit]
Description=zabbix_server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_server.pid
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
修改zabbix_agent配置文件,启动zabbix_agent服务
vim /usr/local/etc/zabbix_agentd.conf
93 允许哪些主机监控本机
134 允许哪些主机通过主动模式监控本机
145 设置本机主机名
280 是否允许自定义监控传参 --为1
zabbix_agentd
echo zabbix_agentd >> /etc/rc.local
[root@zabbixserver zabbix]# ss -ntulp | grep zabbix_agentd
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=29282,fd=4),("zabbix_agentd",pid=29281,fd=4),("zabbix_agentd",pid=29280,fd=4),("zabbix_agentd",pid=29279,fd=4),("zabbix_agentd",pid=29278,fd=4),("zabbix_agentd",pid=29277,fd=4),("zabbix_agentd",pid=29276,fd=4))
上线zabbix的web页面
cd /usr/local/zabbix
cd frontends/php/
cp -r * /usr/local/nginx/html/
chown -R apache.apache /usr/local/nginx/html
浏览器访问:http://192.168.2.5/index.php
第一次访问,初始化php页面会检查计算机环境是否满足要求,如果不满足会给出修改建议
默认会提示php的配置不满足环境要求,需要修改php配置文件
根据错误提示,修改php配置文件,满足zabbix_server的web环境要求
yum -y install php-gd php-xml php-bcmath php-mbstring
878 date.timezone = Asia/Shanghai
384 max_execution_time = 300
672 post_max_size = 32M
394 max_input_time = 300
405 memory_limit = 128M
878- 设置时区
384- 最大执行时间,秒
672- post数据最大容量
394- 服务器接受数据的时间限制
405- 内存容量限制
修改之后重启php
systemctl restart php-fpm
浏览器再次访问:http://192.168.2.5/index.php
部署被监控主机zabbix agent
1,源码安装zabbix agent软件 在2.100和2.200做相同操作(以web1为例)
useradd -s /sbin/nologin zabbix
yum -y install gcc pcre-devel autoconf
cd /usr/local/
tar -xf lnmp_soft.tar.gz
cd lnmp_soft
cp -r zabbix-3.4.4.tar.gz /usr/local/
cd /usr/local/
tar -xf zabbix-3.4.4.tar.gz
mv zabbix-3.4.4 zabbix
cd /usr/local/zabbix
./configure --enable-agent
make && make install
vim /usr/local/etc/zabbix_agentd.conf
93 谁可以监控本机(被动监控)
134 谁可以监控本机(主动监控)
145 被监控主机名
69 监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
280 是否允许自定义key监控
zabbix_agentd
[root@web1 zabbix]#ss -antulp | grep zabbix
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=12582,fd=4),("zabbix_agentd",pid=12581,fd=4),("zabbix_agentd",pid=12580,fd=4),("zabbix_agentd",pid=12579,fd=4),("zabbix_agentd",pid=12578,fd=4),("zabbix_agentd",pid=12577,fd=4),("zabbix_agentd",pid=12576,fd=4))
echo zabbix_agentd >> /etc/rc.local
chmod +x /etc/rc.local
自定义监控
1,创建自定义key
自定义key语法格式为: UserParameter=自定义key名称,命名
自定义的key文件一般存储在/usr/local/etc/zabbix_agentd.conf.d/目录,这里还需修改zabbix.agentd.conf文件,允许自定义监控key,来读取该目录下的所有文件
vim /usr/local/etc/zabbix_agentd.conf
264 Include=/usr/local/etc/zabbix_agentd.conf.d/ #加载配置文件目录
cd /usr/local/etc/zabbix_agentd.conf.d/
vim count.line.passwd
UserParameter=count.line.passwd,sed -n '$=' /etc/passwd
#自定义key语法格式:
#UserParameter=自定义key名称,命令
killall zabbix_agentd
zabbix_agentd
[root@web1 zabbix_agentd.conf.d]# zabbix_get -s 127.0.0.1 -k count.line.passwd
20
主动监控,以192.168.2.200为例
vim /usr/local/etc/zabbix_server.conf
93 注释该行,允许谁监控本机
#Server=127.0.0.1,192.168.2.200
118 被监控时启动几个agent进程监听10050端口 设置为0,则禁止被动监控,不启动zabbix_agentd服务
StartAgents=0
134 允许哪些主机监控本机(主动模式),一定要取消127.0.0.1
ServerActive=192.168.2.5
145 告诉监控服务器,是谁发的数据信息
一定要和zabbix服务器配置的监控主机名一致(后面设置)
Hostname=web2
183 默认120秒监测一次
RefreshActiveChecks=120
280 允许自定义监控传参
UnsafeUserParameters=1
264 自定义监控的位置
Include=/usr/local/etc/zabbix_agentd.conf.d/
killall zabbix_agentd
zabbix_agentd
2,实验,监控nginx服务状态
1,部署nginx,安装nginx软件,开启status模块
cd /usr/local/
ll
cd lnmp_soft
ll
cp -r nginx-1.12.2.tar.gz /usr/local/
cd ..
tar -xf nginx-1.12.2.tar.gz
mv nginx-1.12.2 nginx
yum -y install gcc pcre-devel openssl-devel
cd nginx
./configure --with-http_stub_status_module
make && make install
添加
vim /usr/local/nginx/conf/nginx.conf
location /status {
stub_status on;
}
nginx]# mkdir -p logs
nginx]#/usr/local/nginx/sbin/nginx
nginx]# curl http://192.168.2.100/status
Reading: 0 Writing: 1 Waiting: 0
vim /usr/local/bin/nginx_status.sh
#!/bin/bash
case $1 in
active)
curl -s http://192.168.2.100/status |awk '/Active/{print $NF}';;
waiting)
curl -s http://192.168.2.100/status |awk '/Waiting/{print $NF}';;
accepts)
curl -s http://192.168.2.100/status |awk 'NR==3{print $2}';;
esac
chmod +x /usr/local/bin/nginx_status.sh
vim /usr/local/etc/zabbix_agentd.conf.d/nginx.status
UserParameter=nginx.status[*],/usr/local/bin/nginx_status.sh $1
killall zabbix_agentd
zabbix_agentd
zabbix_get -s 127.0.0.1 -k 'nginx.status[accepts]' 测试效果