zabbix自动安装server(shell)

#!/bin/bash

DBUSER=‘root‘
DBPASS=‘‘
DBHOST=‘localhost‘

ZBX_VER=‘2.0.1‘

function checkReturn {
  if [ $1 -ne 0 ]; then
     echo "fail: $2"
     echo "$3"
     exit
  else
     echo "pass: $2"
  fi
  sleep 3
}

cat << "eof"

=== RUN AT YOUR OWN RISK ===

DO NOT RUN ON EXISTING INSTALLATIONS, YOU *WILL* LOSE DATA

This script:
 * Installs Zabbix 2.0.x on CentOS / Red Hat 6
 * Drops an existing database
 * Does not install MySQL; to install type "yum install mysql-server"
 * Assums a vanilla OS install, though it tries to work around it
 * Does not install zabbix packages, it uses source from zabbix.com
 * Disables firewall

eof

read -p ‘Type "go" to continue: ‘ RESP
if [ "$RESP" != "go" ]; then
  echo "Sorry to hear it"
  exit
else
  echo "Lets do this..."
fi

# check selinux
if [ "`sestatus |grep status|awk ‘{ print $3 }‘`" == "enabled" ]; then
   checkReturn 1 "Disable SELinux and then retry"
fi

#disable firewall
chkconfig iptables off
/etc/init.d/iptables stop
  
# Start mysql if its on this box
if [ "`rpm -qa |grep mysql-server`" ]; then
  chkconfig mysqld on
  service mysqld restart
fi

# check mysql
mysql -h${DBHOST} -u${DBUSER} --password=${DBPASS} > /dev/null << eof
status
eof
RETVAL=$?
checkReturn $RETVAL "basic mysql access" "Install mysql server packages or fix mysql permissions"

if [ ! "`rpm -qa|grep fping`" ]; then
  if [ "`uname -m`" == "x86_64" ]; then
     rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
  elif [ "`uname -m`" == "i686" ]; then
     rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
  fi
fi

# removed  libidn-devel iksemel-devel 
# dependenices for curl: e2fsprogs-devel zlib-devel libgssapi-devel krb5-devel openssl-devel
yum -y install gcc mysql-devel curl-devel httpd php php-mysql php-bcmath php-gd php-xml php-mbstring net-snmp-devel fping e2fsprogs-devel zlib-devel libgssapi-devel krb5-devel openssl-devel wget libssh2-devel openldap-devel make patch
RETVAL=$?
checkReturn $RETVAL "Package install"

chmod 4755 /usr/sbin/fping

cd /tmp

# jabber packages are incomplete at rpmforge (iksemel)
# BEGIN pkgs for jabber (--with-jabber)
#wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/libiksemel3-1.4-2_2.el6.x86_64.rpm
#rpm -i /tmp/libiksemel3-1.4-2_2.el6.x86_64.rpm
#wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/iksemel-1.4-2_2.el6.x86_64.rpm
#rpm -i /tmp/iksemel-1.4-2_2.el6.x86_64.rpm
#wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/iksemel-devel-1.4-2_2.el6.x86_64.rpm
#rpm -i /tmp/iksemel-devel-1.4-2_2.el6.x86_64.rpm
# END pkgs for jabber

rm -rf /etc/zabbix
rm -rf zabbix-$ZBX_VER
rm zabbix-$ZBX_VER.tar.gz
#wget http://sourceforge.net/projects/zabbix/files/latest/download?source=files
#wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/$ZBX_VER/zabbix-$ZBX_VER.tar.gz
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/$ZBX_VER/zabbix-$ZBX_VER.tar.gz
RETVAL=$?
checkReturn $RETVAL "downloading source" "check ZBX_VER variable or mirror might be down"
tar xzf zabbix-$ZBX_VER.tar.gz
cd zabbix-$ZBX_VER

./configure --enable-agent  --enable-ipv6  --enable-proxy  --enable-server --with-mysql --with-libcurl --with-net-snmp --with-ssh2 --with-ldap --sysconfdir=/etc/zabbix
RETVAL=$?
checkReturn $RETVAL "Configure"
# --with-jabber
# ipmi
# ldap

make
RETVAL=$?
checkReturn $RETVAL "Compile"

make install
RETVAL=$?
checkReturn $RETVAL "make install"

echo "DROP DATABASE IF EXISTS zabbix;" | mysql -h${DBHOST} -u${DBUSER} --password=${DBPASS}

(
echo "CREATE DATABASE zabbix;"
echo "USE zabbix;"
cat /tmp/zabbix-$ZBX_VER/database/mysql/schema.sql
cat /tmp/zabbix-$ZBX_VER/database/mysql/images.sql
cat /tmp/zabbix-$ZBX_VER/database/mysql/data.sql
) | mysql -h${DBHOST} -u${DBUSER} --password=${DBPASS}

#### BEGIN ZABBIX SERVER & AGENT PROCESS INSTALL & START
adduser -r -d /var/run/zabbix-server -s /sbin/nologin zabbix
#mkdir -p /etc/zabbix/alert.d
mkdir -p /var/log/zabbix-server
mkdir -p /var/log/zabbix-agent
mkdir -p /var/run/zabbix-server
mkdir -p /var/run/zabbix-agent
chown zabbix.zabbix /var/run/zabbix*
chown zabbix.zabbix /var/log/zabbix*
#cp /tmp/zabbix-$ZBX_VER/misc/conf/zabbix_server.conf /etc/zabbix
#cp /tmp/zabbix-$ZBX_VER/misc/conf/zabbix_agentd.conf /etc/zabbix

cp /tmp/zabbix-$ZBX_VER/misc/init.d/fedora/core5/zabbix_server /etc/init.d
cp /tmp/zabbix-$ZBX_VER/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d

cd /etc/zabbix
patch -p0 -l << "eof"
--- orig/zabbix_server.conf     2012-07-01 18:30:00.585612301 -0700
+++ zabbix_server.conf  2012-07-01 18:58:15.181605999 -0700
@@ -36,7 +36,7 @@
 # Default:
 # LogFile=

-LogFile=/tmp/zabbix_server.log
+LogFile=/var/log/zabbix-server/zabbix_server.log

 ### Option: LogFileSize
 #      Maximum size of log file in MB.
@@ -65,7 +65,7 @@
 #
 # Mandatory: no
 # Default:
-# PidFile=/tmp/zabbix_server.pid
+PidFile=/var/run/zabbix-server/zabbix_server.pid

 ### Option: DBHost
 #      Database host name.
@@ -100,7 +100,7 @@
 # Default:
 # DBUser=

-DBUser=root
+DBUser=_dbuser_

 ### Option: DBPassword
 #      Database password. Ignored for SQLite.
@@ -109,6 +109,7 @@
 # Mandatory: no
 # Default:
 # DBPassword=
+DBPassword=_dbpass_

 ### Option: DBSocket
 #      Path to MySQL socket.
eof

sed "s/_dbuser_/${DBUSER}/g" /etc/zabbix/zabbix_server.conf > /tmp/mytmp393; mv /tmp/mytmp393 /etc/zabbix/zabbix_server.conf
sed "s/_dbpass_/${DBPASS}/g" /etc/zabbix/zabbix_server.conf > /tmp/mytmp393; mv /tmp/mytmp393 /etc/zabbix/zabbix_server.conf

patch -p0 -l << "eof"
--- orig/zabbix_agentd.conf     2012-07-01 18:30:00.585612301 -0700
+++ zabbix_agentd.conf  2012-07-01 18:55:40.566660188 -0700
@@ -9,6 +9,7 @@
 # Mandatory: no
 # Default:
 # PidFile=/tmp/zabbix_agentd.pid
+PidFile=/var/run/zabbix-agent/zabbix_agentd.pid

 ### Option: LogFile
 #      Name of log file.
@@ -18,7 +19,7 @@
 # Default:
 # LogFile=

-LogFile=/tmp/zabbix_agentd.log
+LogFile=/var/log/zabbix-agent/zabbix_agentd.log

 ### Option: LogFileSize
 #      Maximum size of log file in MB.
@@ -57,6 +58,7 @@
 # Mandatory: no
 # Default:
 # EnableRemoteCommands=0
+EnableRemoteCommands=1

 ### Option: LogRemoteCommands
 #      Enable logging of executed shell commands as warnings.
eof

chkconfig zabbix_server on
chkconfig zabbix_agentd on
chmod +x /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_agentd
service zabbix_server restart
service zabbix_agentd restart

#### END ZABBIX SERVER & AGENT PROCESS INSTALL & START

#### BEGIN WEB

rm -rf /usr/local/share/zabbix
mkdir -p /usr/local/share/zabbix
cp -r /tmp/zabbix-$ZBX_VER/frontends/php/* /usr/local/share/zabbix

echo "Alias /zabbix /usr/local/share/zabbix" > /etc/httpd/conf.d/zabbix.conf

echo "post_max_size = 16M" > /etc/php.d/local_zabbix.ini
echo "max_execution_time = 300" >> /etc/php.d/local_zabbix.ini
echo "max_input_time = 300" >> /etc/php.d/local_zabbix.ini
. /etc/sysconfig/clock
echo "date.timezone = $ZONE" >>  /etc/php.d/local_zabbix.ini

chkconfig httpd on
service httpd restart

#sed "s/max_execution_time = 30/max_execution_time = 300/g" /etc/php.ini > /tmp/mytmp393; mv /tmp/mytmp393 /etc/php.ini

#touch /usr/local/share/zabbix/conf/zabbix.conf.php
#chmod 666 /usr/local/share/zabbix/conf/zabbix.conf.php

cat > /usr/local/share/zabbix/conf/zabbix.conf.php << "eof"
<?php
// Zabbix GUI configuration file
global $DB;

$DB[‘TYPE‘]             = "MYSQL";
$DB[‘SERVER‘]           = "_dbhost_";
$DB[‘PORT‘]             = "0";
$DB[‘DATABASE‘]         = "zabbix";
$DB[‘USER‘]             = "_dbuser_";
$DB[‘PASSWORD‘]         = "_dbpass_";

// SCHEMA is relevant only for IBM_DB2 database
$DB[‘SCHEMA‘]                   = ‘‘;

$ZBX_SERVER             = "127.0.0.1";
$ZBX_SERVER_PORT        = "10051";
$ZBX_SERVER_NAME	= ‘myzabbix‘;

$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;
?>
eof

sed "s/_dbhost_/${DBHOST}/g" /usr/local/share/zabbix/conf/zabbix.conf.php > /tmp/mytmp393; mv /tmp/mytmp393 /usr/local/share/zabbix/conf/zabbix.conf.php
sed "s/_dbuser_/${DBUSER}/g" /usr/local/share/zabbix/conf/zabbix.conf.php > /tmp/mytmp393; mv /tmp/mytmp393 /usr/local/share/zabbix/conf/zabbix.conf.php
sed "s/_dbpass_/${DBPASS}/g" /usr/local/share/zabbix/conf/zabbix.conf.php > /tmp/mytmp393; mv /tmp/mytmp393 /usr/local/share/zabbix/conf/zabbix.conf.php

cd 
echo "Load http://localhost/zabbix/"
echo "username: admin"
echo "password: zabbix"
时间: 2024-09-29 10:02:54

zabbix自动安装server(shell)的相关文章

zabbix自动安装agent(shell)

#!/bin/bash #./zabbixagent.sh  172.16.103.16   172.16.103.134 #$1 master address, $2 local_listen_ip  groupadd zabbix  &&  useradd zabbix -g zabbix cat >>/etc/services<<EOF zabbix-agent          10050/tcp             Zabbix Agent zabbi

pure-ftpd 写一个自动安装脚本shell

运行脚本后 输入 yes 就会自动安装 #!/bin/bash port=`netstat -lnp|grep :21|wc -l` check_ok() {         if [ $? -eq 0 ];then         echo "check ok" else echo "check error " && exit          fi } read -p "AUto install ftp input 'yes' inst

zabbix自动发现结合shell实现自动发现占用内存最大top10进程并监控其资源

最近在想一个问题,线上服务器跑的服务五花八门,可能这台跑的是nginx,另一台跑的是mysql,其他的跑的是nfs或者其他服务等等,通过某一个脚本中固定的写入一些服务来实现监控所有的服务器的进程占用资源情况占用zabbix服务器资源不说,假如该服务器跑的服务不在固定列表中,监控服务获取不到相应数据. 为了解决这个问题,最近在想通过zabbix的自动发现功能能不能实现自动发现占用服务器内存最大的N个进程,然后对这些进程占用内存和CPU的资源情况进行监控获取数据呢?于是就有了本篇文章的诞生. 首先,

Ubuntu 14.04 下自动安装mongodb shell 脚本

vim mongodb_install.sh #!/bin/bash cd /opt/ echo "Download mongdb software..." wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.0.4.tgz echo " mongdb software..." tar -zxf mongodb-linux*.tgz mkdir software mv mon

实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir /usr/local/java cd /usr/local/java #download jdk 1.7.67 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-co

python3自动安装脚本,python3.x与python2.x共存

1.前言: python3过程中,通过搜索一些文章参考安装过程发现比较麻烦,而且还出现一些不可预期的报错.python3环境需要升级openssl,所以为了部署到其他环境更方便,写自动安装脚本方式,且安装模式为python3.x与python2.x共存,防止可能发生原有环境异常的情况. 现在我把脚本分享出来,希望可以帮助到有需要的人,业务采集监控python脚本文件不提供,因为那些跟实际业务开发关联比较紧,比较没有参考意义也不方便公开. shell自动安装脚本,只需按说明简单修改配置,和调用集成

自动安装zabbix客户端shell脚本

一般工作中要部署新服务器,部署完成还要添加zabbix监控,所以安装zabbix客户端是很频繁的,我这里写了一个简单的自动安装脚本,不是很完善,但也可以平时拿来用. 脚本运行的时候可能会出来一些错误,可以看终止时的错误信息,很可能是缺少相关的包,根据信息安装包再重新运行即可. 注意修改配置的内容,要根据实际情况做相应的修改,比如server和hostname,server是服务端的ip,根据实际情况配置,hostname我这里设置的是客户端自己的ip,也可以根据自身情况修改.在获取本地ip时,这

RHEL自动安装zookeeper的shell脚本

RHEL自动安装zookeeper的shell脚本 A:本脚本运行的机器,Linux RHEL6 B,C,D,...:待安装zookeeper cluster的机器, Linux RHEL6 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装zk的机器B,C,D,...上,然后就可以在A上运行本脚本: $ ./install_zookeeper 前提: B, C, D机器必须配置好repo,本脚本使用的是cdh5的repo, 下面的内容保存到:/etc/yum.repos.d/cloude

ansible实战--批量自动安装与删除zabbix agentd

想必做网站运维的,对目前主流的开源监控组件zabbix应该不陌生.它功能是很强悍,但是被监控的客户端安装agentd是一件很吃力且费时的工作.如果你管理的server数量不多还好,大不了手工1台1台的安装.相反你管理的server数量很多,不采取自动化,真的会让人做梦都会想到安装zabbix agentd. 本次实战ansible批量自动安装与卸载zabbix agentd,版本zabbix-2.0.14+centos6.4+ansible1.8.1 下面就开始吧 1.安装配置ansible工具