Lnmp + Zabbix 部署

测试结束后才想起来的步骤记录,因为是从history扣下来的,可能有漏的或者写错的地方
环境: centos7 + nginx1.18 + php7.2 + zabbix5 + mysql5.7

# mkdir DIR 创建项目文件夹,主要根据自己的项目需求所设置
mkdir -p /data/webroot/zabbix/
mkdir -p /data/logs/zabbix/
useradd -M zabbix 

# 安装基础工具包
yum install -y less vim lrzsz bash-completion yum unzip zip pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel

# Install Nginx (yum install nginx -y)
tar -zxvf nginx-1.18.0.tar.gz 
cd /nginx-1.18.0/ && ./configure --prefix=/data/nginx && make && make install
ln -s /data/nginx/sbin/nginx /usr/bin/ 

# Install php72
# 我是提前在网速快的机器提前下载下来的然后在yum install ./php72/* 
# yum install --downloadonly --downloaddir=/php72/ php72w  php72w-mysqlnd  php72w-gd php72w-xmlrpc  php72w-bcmath php72w-xml php72w-pdo php72w-mbstring php72w-gd php72w-fpm php72w-devel
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php72w  php72w-mysqlnd  php72w-gd php72w-xmlrpc  php72w-bcmath php72w-xml php72w-pdo php72w-mbstring php72w-gd php72w-fpm php72w-devel -y

# 配置文件
cat << EOF > /etc/nginx/conf.d/zabbix.conf
server {
    listen       8888;
    root   /data/zabbix/webroot/zabbix/;

  location / {
    index   index.php index.html;
    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
      }
}
EOF

systemctl start php-fpm
# index.php 测试   <?php phpinfo() ?>

####################################################################################
# Install zabbix5.0.5
yum install -y mysql-devel fping net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 libcurl-devel
tar -zxvf zabbix5.0.5.tar.gz

# 配置zabbix数据库(mysql可以用下面的docker版装;或者云数据库)
yum install mysql-server mysql -y
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix_Test2020';
flush privileges;

cd zabbix-5.0.5/database/mysql/
mysql -uzabbix -pzabbix_Test2020 zabbix < schema.sql
mysql -uzabbix -pzabbix_Test2020 zabbix < images.sql
mysql -uzabbix -pzabbix_Test2020 zabbix < data.sql

cd /zabbix-5.0.5 && ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 && make install
cp misc/init.d/tru64/zabbix_* /etc/init.d/
sed -i "s#DAEMON=.*#DAEMON=/usr/local/zabbix/sbin/zabbix_agentd#g" /etc/init.d/zabbix_agentd
sed -i "s#DAEMON=.*#DAEMON=/usr/local/zabbix/sbin/zabbix_server#g" /etc/init.d/zabbix_server
chmod o+x /etc/init.d/zabbix_*
cp -r zabbix-5.0.5/ui /data/zabbix/webroot/zabbix
# win + R -> fonts -> 拷贝想要的字体
cp ~/MSYH.TTF /data/zabbix/webroot/zabbix/assets/fonts/msyh.ttf
# 查fonts
vim /data/zabbix/webroot/zabbix/include/defines.inc.php  
cd /data/webroot/zabbix/conf/ && cp zabbix.conf.php.example zabbix.conf.php

cat << EOF > /usr/local/zabbix/etc/zabbix_server.conf
User=zabbix
ListenPort=10051
ListenIP=0.0.0.0
AllowRoot=0
LogFile=/data/zabbix/logs/zabbix_server.log
LogType=file
LogFileSize=0
DebugLevel=3
StartTrappers=5
Timeout=15

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_Test2020
DBPort=3306

StartAlerters=10
AlertScriptsPath=/data/zabbix/alertscripts
EOF

cat << EOF > /usr/local/zabbix/etc/zabbix_agentd.conf
User=zabbix
AllowRoot=0
Server=192.168.10.101
StartAgents=1
ServerActive=192.168.10.101
Hostname=192.168.10.102
LogType=file
LogFileSize=0
LogFile=/data/zabbix/logs/zabbix_agentd.log
Timeout=30
EOF

sed -i '/post_max_size/s/8/16/g;/max_execution_time/s/30/300/g;/max_input_time/s/60/300/g;s/\;date.timezone.* /date.timezone \=PRC/g;s/\;always_populate_raw_post_data/always_populate_raw_post_data/g' /etc/php.ini
systemctl restart php-fpm

# Clean ALL 清理垃圾包
rm -rf nginx-1.18.0 && yum clean all
chown -R zabbix.zabbix /data/zabbix/

/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start
# docker 版mysql
# 安装docker服务
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce-18.09.9-3.el7 -y
systemctl restart docker

cat << EOF > /etc/docker/dameon.json
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF
systemctl restart docker

# 部署mysql服务(如果使用本地,且本地没有则部署)
rpm -qa | grep mysql- >> /dev/null
if [ $? -ne 0 ];
then
mkdir -p /data/mysql/config

cat << EOF > /data/mysql/config/my.cnf
[mysqld]
character-set-server=utf8mb4
collation_server=utf8mb4_unicode_ci

pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql

symbolic-links=0
lower_case_table_names=1
[client]
default-character-set=utf8mb4
EOF
    docker run -p 3306:3306 --name mysql-server \
    --restart always \
    --privileged=true \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix_Test2020" \
    -e MYSQL_ROOT_PASSWORD="zabbix_Test2020" \
    -v /data/mysql/config:/etc/mysql \
    -v /data/mysql/data:/var/lib/mysql \
    -d mysql:5.7 \
    --character-set-server=utf8 --collation-server=utf8_bin
fi
# 告警信息参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

美化邮件告警样式

<!-- 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! -->
<table border="1"  bordercolor="black" cellspacing="0px" cellpadding="4px">
    <tr >
        <td>告警主机</td>
        <td bgcolor="#FF3333">{HOSTNAME1}</td>
    </tr>
    <tr>
        <td>告警时间</td>
        <td>{EVENT.DATE} {EVENT.TIME}</td>
    </tr>
    <tr>
        <td>告警等级</td>
        <td>{TRIGGER.SEVERITY}</td>
    </tr>
    <tr>
        <td>告警信息</td>
        <td>{TRIGGER.NAME}</td>
    </tr>
    <tr>
        <td>告警项目</td>
        <td>{TRIGGER.KEY1}</td>
    </tr>
    <tr >
        <td>问题详情</td>
        <td bgcolor="#FF3333">{EVENT.OPDATA}</td>
    </tr>
    <tr>
        <td>事件ID</td>
        <td>{EVENT.ID}</td>
    </tr>
</table>

<!-- 恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! -->
<table border="1"  bordercolor="black" cellspacing="0px" cellpadding="4px">
    <tr >
        <td>告警主机</td>
        <td bgcolor="#6f3">{HOSTNAME1}</td>
    </tr>
    <tr>
        <td>告警时间</td>
        <td>{EVENT.DATE} {EVENT.TIME}</td>
    </tr>
    <tr>
        <td>告警等级</td>
        <td>{TRIGGER.SEVERITY}</td>
    </tr>
    <tr>
        <td>告警信息</td>
        <td>{TRIGGER.NAME}</td>
    </tr>
    <tr>
        <td>告警项目</td>
        <td>{TRIGGER.KEY1}</td>
    </tr>
    <tr >
        <td>问题详情</td>
        <td bgcolor="#6f3">{EVENT.OPDATA}</td>
    </tr>
    <tr>
        <td>事件ID</td>
        <td>{EVENT.ID}</td>
    </tr>
</table>

数据库空间计算公式(来自:https://blog.51cto.com/732233048/1640170)
zabbix配置:固定大小,一般<10MB 历史数据:天数*(监控项总数/刷新频率)24小时3600秒50字节
趋势数据:天数
(监控项总数/3600)24小时3600秒128字节
事件数据:天数
事件个数(大概值)24小时3600秒*130字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值