centos 快速搭建lnmp、lamp+zabbix3.2监控系统
所安装版本mysql 5.6 php5.5 zabbix3.2
centos7 lnmp+zabbix3.2 脚本
#!/bin/bash
if [ $(rpm -qi mysql-community-release-el7-5.noarch | wc -l) -lt 2 ];then
rpm -Uvh http://repo.mysql.com//mysql-community-release-el7-5.noarch.rpm
if [ $? -ne 0 ];then
echo "mysql-release err"
exit
fi
fi
yum install -y epel-release
if [ $? -ne 0 ];then
echo "epel-release err"
exit
fi
if [ $(rpm -qi webtatic-release-7-3.noarch | wc -l) -lt 2 ];then
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
if [ $? -ne 0 ];then
echo "webtatic-release err"
exit
fi
fi
yum -y install openssl OpenIPMI-libs unixODBC libaio iksemel fping net-snmp net-snmp-utils mysql mysql-server mysql-devel php55w php55w-gd php55w-xml php55w-mysql php55w-mbstring php55w-bcmath perl-DBI curl libcurl-devel net-snmp-devel libssh2 libssh2-devel libxml2 libxml2-devel php55w-fpm nginx
if [ $? -ne 0 ];then
echo "yum install err"
exit
fi
if [ $(rpm -qi zabbix-release-3.2-1.el7.noarch | wc -l) -lt 2 ];then
rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
if [ $? -ne 0 ];then
echo "zabbix-release err"
exit
fi
fi
yum -y install wget zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get zabbix-sender
if [ $? -ne 0 ];then
echo "zabbix install err"
exit
fi
cat >> /etc/php.ini << EOF
soap.wsdl_cache_enabled=1
max_input_time = 600
max_execution_time = 300
date.timezone = Asia/Shanghai
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload = 1
EOF
sed -i "/symbolic-links=0/a\character_set_server = utf8" /etc/my.cnf
cat > /etc/nginx/nginx.conf << EOF
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
'\$status \$body_bytes_sent "\$http_referer" '
'"\$http_user_agent" "\$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
EOF
cat > /etc/nginx/conf.d/default.conf << EOF
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/zabbix;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/zabbix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ {
access_log off;
root opencart;
expires 30d;
break;
}
}
EOF
/bin/systemctl restart mysql.service
echo "create database zabbix character set utf8;" | mysql
echo "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" | mysql
echo "grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';" |mysql
cat >>/etc/services <<EOF
zabbix-agent 10050/tcp Zabbix Agent
zabbix-agent 10050/udp Zabbix Agent
zabbix-trapper 10051/tcp Zabbix Trapper
zabbix-trapper 10051/udp Zabbix Trapper
EOF
sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /etc/zabbix/zabbix_server.conf
sed -i 's/^.*DBPassword=.*$/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf
VER=$(rpm -qa | grep zabbix-web-mysql | awk -F '-' '{print $4}')
cd /usr/share/doc/zabbix-server-mysql-$VER
zcat create.sql.gz | mysql -uroot zabbix
cd /tmp
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
if [ $? -ne 0 ];then
echo "wget sendEmail err"
exit
fi
tar xvzf sendEmail-v1.56.tar.gz
cp sendEmail-v1.56/sendEmail /usr/local/bin/
chmod +x /usr/local/bin/sendEmail
chown -R zabbix.zabbix /usr/lib/zabbix/alertscripts
cat > /usr/lib/zabbix/alertscripts/SendEmail.sh << EOF
#!/bin/bash
LOGFILE="/tmp/Email.log"
:>"\$LOGFILE"
exec 1>"\$LOGFILE"
exec 2>&1
SMTP_server='$1' # SMTP服务器
username='$2' # 用户名
password='$3' # 密码
from_email_address='$4' # 发件人Email地址
to_email_address="\$1" # 收件人Email地址,zabbix传入的第一个参数
message_subject_utf8="\$2" # 邮件标题,zabbix传入的第二个参数
message_body_utf8="\$3" # 邮件内容,zabbix传入的第三个参数
# 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
message_subject_gb2312=\`iconv -t GB2312 -f UTF-8 << EOF
\$message_subject_utf8
EOF\`
[ \$? -eq 0 ] && message_subject="\$message_subject_gb2312" || message_subject="\$message_subject_utf8"
# 转换邮件内容为GB2312
message_body_gb2312=\`iconv -t GB2312 -f UTF-8 << EOF
\$message_body_utf8
EOF\`
[ \$? -eq 0 ] && message_body="\$message_body_gb2312" || message_body="\$message_body_utf8"
# 发送邮件
sendEmail='/usr/local/bin/sendEmail'
set -x
\$sendEmail -s "\$SMTP_server" -xu "\$username" -xp "\$password" -f "\$from_email_address" -t "\$to_email_address" -u "\$message_subject" -m "\$message_body" -o message-content-type=text -o message-charset=gb2312
EOF
chmod +x /usr/lib/zabbix/alertscripts/SendEmail.sh
cd /usr/share/zabbix/fonts
mv graphfont.ttf graphfont.ttf.back
wget http://qkadownload.qkagame.com/msyh.ttf
if [ $? -ne 0 ];then
echo "wget msyh err"
exit
fi
mv msyh.ttf graphfont.ttf
chmod 777 graphfont.ttf
systemctl start zabbix-server
systemctl start nginx.service
systemctl start php-fpm.service
systemctl start zabbix-agent
systemctl enable zabbix-server.service
systemctl enable zabbix-agent.service
systemctl enable nginx.service
systemctl enable php-fpm.service
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
centos7 lamp+zabbix3.2 脚本
#/bin/bashif [ $(rpm -qi mysql-community-release-el7-5.noarch | wc -l) -lt 2 ];thenrpm -Uvh http://repo.mysql.com//mysql-community-release-el7-5.noarch.rpmif [ $? -ne 0 ];thenecho "mysql-release err"exit fifiyum install -y epel-releaseif [ $? -ne 0 ];thenecho "epel-release err"exit fiif [ $(rpm -qi webtatic-release-7-3.noarch | wc -l) -lt 2 ];thenrpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmif [ $? -ne 0 ];thenecho "webtatic-release err"exit fifiyum -y install openssl OpenIPMI-libs unixODBC libaio iksemel fping net-snmp net-snmp-utils httpd mysql mysql-server mysql-devel php55w php55w-gd php55w-xml php55w-mysql php55w-mbstring php55w-bcmath perl-DBI curl libcurl-devel net-snmp-devel libssh2 libssh2-devel libxml2 libxml2-develif [ $? -ne 0 ];thenecho "yum install err"exit fiif [ $(rpm -qi zabbix-release-3.2-1.el7.noarch | wc -l) -lt 2 ];thenrpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpmif [ $? -ne 0 ];thenecho "zabbix-release err"exit fifiyum -y install wget zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get zabbix-senderif [ $? -ne 0 ];thenecho "zabbix-install err"exit ficat >> /etc/php.ini << EOFsoap.wsdl_cache_enabled=1max_input_time = 600max_execution_time = 300date.timezone = Asia/Shanghaipost_max_size = 32Mmemory_limit = 128Mmbstring.func_overload = 1EOFsed -i "/symbolic-links=0/a\character_set_server = utf8" /etc/my.cnfcat >> /etc/httpd/conf.d/zabbix.conf << EOF# Zabbix monitoring system php web frontend#Alias /zabbix /usr/share/zabbix<Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all</Directory><Directory "/usr/share/zabbix/conf"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files></Directory><Directory "/usr/share/zabbix/api"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files></Directory><Directory "/usr/share/zabbix/include"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files></Directory><Directory "/usr/share/zabbix/include/classes"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files></Directory>EOF/bin/systemctl restart mysql.serviceecho "create database zabbix character set utf8;" | mysqlecho "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" | mysqlecho "grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';" |mysqlcat >>/etc/services <<EOFzabbix-agent 10050/tcp Zabbix Agentzabbix-agent 10050/udp Zabbix Agentzabbix-trapper 10051/tcp Zabbix Trapperzabbix-trapper 10051/udp Zabbix TrapperEOFsed -i 's/^DBUser=.*$/DBUser=zabbix/g' /etc/zabbix/zabbix_server.confsed -i 's/^.*DBPassword=.*$/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.confVER=$(rpm -qa | grep zabbix-web-mysql | awk -F '-' '{print $4}')cd /usr/share/doc/zabbix-server-mysql-$VERzcat create.sql.gz | mysql -uroot zabbixcd /tmpwget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gzif [ $? -ne 0 ];thenecho "wget sendEmail err"exit fitar xvzf sendEmail-v1.56.tar.gzcp sendEmail-v1.56/sendEmail /usr/local/bin/chmod +x /usr/local/bin/sendEmailchown -R zabbix.zabbix /usr/lib/zabbix/alertscriptscat > /usr/lib/zabbix/alertscripts/SendEmail.sh << EOF#!/bin/bashLOGFILE="/tmp/Email.log":>"\$LOGFILE"exec 1>"\$LOGFILE"exec 2>&1SMTP_server='$1' # SMTP服务器username='$2' # 用户名password='$3' # 密码from_email_address='$4' # 发件人Email地址to_email_address="\$1" # 收件人Email地址,zabbix传入的第一个参数message_subject_utf8="\$2" # 邮件标题,zabbix传入的第二个参数message_body_utf8="\$3" # 邮件内容,zabbix传入的第三个参数 # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。message_subject_gb2312=\`iconv -t GB2312 -f UTF-8 << EOF\$message_subject_utf8EOF\`[ \$? -eq 0 ] && message_subject="\$message_subject_gb2312" || message_subject="\$message_subject_utf8" # 转换邮件内容为GB2312message_body_gb2312=\`iconv -t GB2312 -f UTF-8 << EOF\$message_body_utf8EOF\`[ \$? -eq 0 ] && message_body="\$message_body_gb2312" || message_body="\$message_body_utf8" # 发送邮件sendEmail='/usr/local/bin/sendEmail'set -x\$sendEmail -s "\$SMTP_server" -xu "\$username" -xp "\$password" -f "\$from_email_address" -t "\$to_email_address" -u "\$message_subject" -m "\$message_body" -o message-content-type=text -o message-charset=gb2312EOFchmod +x /usr/lib/zabbix/alertscripts/SendEmail.shcd /usr/share/zabbix/fontsmv graphfont.ttf graphfont.ttf.backwget http://qkadownload.qkagame.com/msyh.ttfif [ $? -ne 0 ];thenecho "wget msyh err"exit fimv msyh.ttf graphfont.ttfchmod 777 graphfont.ttfsystemctl start zabbix-serversystemctl start httpdsystemctl start zabbix-agentsystemctl enable zabbix-server.servicesystemctl enable zabbix-agent.servicesystemctl enable httpd.servicefirewall-cmd --permanent --add-port=80/tcpfirewall-cmd --permanent --add-port=10051/tcpfirewall-cmd --permanent --add-port=10050/tcpfirewall-cmd --reload
使用方法:
给脚本可执行权限chmod +x 脚本文件数据默认用户名密码zabbix 发邮件脚本名字:SendEmail.sh 登陆zabbix web账号密码 admin:zabbix./zabbix_lamp.sh smtp.test.com admin 123456 admin@test.com./zabbix_lnmp.sh smtp.test.com admin 123456 admin@test.comlnmp+zabbix 访问 lamp+zabbix 访问 http://ip/zabbix centos6 脚本名字zabbix_lamp_6.sh zabbix_lnmp_6.sh
zabbix web配置以lamp+zabbix 为实例:
中文设置默认图像微软雅黑
zabbix 邮件配置
3.2邮件配置必须添加
参数 {ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
打开默认动作测试报警
关闭zabbix_agent 看是否正常发邮件
centos7 /bin/systemctl stop zabbix-agent.service
centos6 service zabbix-agent stop
所有脚本放到附件
本文出自 “小叶寒笑” 博客,请务必保留此出处http://juestnow.blog.51cto.com/1515305/1878023