#!/bin/bash
#版本1.0_zabbix+nginx版本
welcome() {
cat <<EOF
需要需改的配置文件有:
1. vi /etc/yum.repos.d/zabbix.repo zabbix源
2. vi /etc/zabbix/zabbix_server.conf zabbix服务端配置文件
3. vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf zabbix前端参数
4. vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf naginx配置
报错查看日志文件:
1. nginx日志文件: /var/opt/rh/rh-nginx116/log/nginx/error.log
2. 启动日志: /var/log/zabbix/zabbix_server.log
EOF
}
start() {
echo "启动前安装命令"
yum install -y vim wget netstat
echo "配置zabbix5.0源"
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm \
&& yum clean all && yum makecache
[ $? = 0 ] && echo "配置源成功" || echo "配置源失败"
#优化:rpm -ql zabbix-release 找出源位置:/etc/yum.repos.d/zabbix.repo 替换为国内源 \
#%s#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g
echo "安装zabbix各组件:zabbix-server-mysql zabbix-agent zabbix-get"
yum -y install zabbix-server-mysql zabbix-agent zabbix-get
[ $? = 0 ] && echo "安装成功" || echo "安装失败"
echo "安装zabbix前端yum源"
yum -y install centos-release-scl
[ $? = 0 ] && echo "安装成功" || echo "安装失败"
echo "开启zabbix-frontend源 将[zabbix-frontend]下的 enabled 改为 1"
vi /etc/yum.repos.d/zabbix.repo
echo "安装zabbix前端组件:zabbix-web-mysql-scl zabbix-nginx-conf-scl zabbix-web-deps-scl"
yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl zabbix-web-deps-scl
[ $? = 0 ] && echo "安装成功" || echo "安装失败"
}
start1() {
echo "安装mariadb数据库"
yum -y install mariadb mariadb-server
systemctl start mariadb
mariadb_mysql=`systemctl status mariadb |awk -F'[ :]+' 'NR==3{print $3$4}'`
if [ "mariadb_mysql" = "active(running)" ];then
echo "数据库成功启动"
echo "登录数据库输入以下命令: \n
1. GRANT ALL PRIVILEGES ON *.* TO 'gegewu'@'%' IDENTIFIED BY 'qw123321' WITH GRANT OPTION; \n
2. create database zabbix character set utf8 collate utf8_bin; \n
3. SET PASSWORD FOR root@'localhost' = password('qw123321'); \n
4. grant all on zabbix.* to zabbix@localhost identified by "shenainiZX00-"; \n
5. grant all privileges on zabbix.* to zabbix@localhost; \n
6. flush privileges; "
mysql -uroot
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |mysql -uzabbix -pshenainiZX00- zabbix
else
echo "mariadb启动失败"
fi
}
start2() {
echo "配置zabbix-server"
cp /etc/zabbix/zabbix_server.conf{,.bak}
echo "交互式界面自行更改: \n
DBHost=localhost #数据库主机 \n
DBName=zabbix #数据库实例名称 \n
DBUser=zabbix #连接数据库时的用户 \n
DBPassword=zabbix #用户的密码"
vim /etc/zabbix/zabbix_server.conf
gengai=`grep -E "^[[:alpha:]]+" /etc/zabbix/zabbix_server.conf`
echo "更改内容为${genggai} 下面临时关闭selinux 并启动服务 zabbix-server"
setenforce 0 && systemctl start zabbix-server && systemctl enable zabbix-server
#echo "永久关闭为:vi /etc/selinux/config SELINUX=disabled 修改apache端口为:vi /etc/httpd/conf/httpd.conf"
}
start3() {
echo "配置zabbix前端参数"
cp /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf{,.bak}
echo "更改内容为: \n
Europe/Riga --> php_value[date.timezone] = Asia/Shanghai \n
listen.acl_users = apache --> listen.acl_users = apache,nginx"
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
}
start4() {
echo "配置nginx参数"
cp /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf{,.bak}
echo "1. 取消listen已经server_name的注释 \n
2. 修改server_name为服务器IP地址或域名 \n
3. #server_name example.com; --> server_name 本机ip;"
vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload
}
start5() {
host_ip=`hostname -I|awk '{print $1}'`/setup.php
echo "启动各个服务:rh-nginx116-nginx,php是rh-php72-php-fpm"
systemctl restart zabbix-agent rh-nginx116-nginx rh-php72-php-fpm zabbix-server \
&& systemctl enable zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
[ $? = 0 ] && echo "启动成功服务搭建成功 浏览器访问http://${host_ip}" || echo "启动失败"
echo "查询服务端口"
ss -ntulp |grep 80 && ss -ant |grep 10051
}
main() {
welcome
start
start1
start2
start3
start4
start5
}
main
提供人机交互容错率较高,不自动更改配置文件,建议打开脚本,另外一边看着执行看着输入命令。