zabbix server 一鍵安裝腳本

!/usr/bin/python

import os
import socket

def sto():
os.system('sed -i "s/SELINUX=enabled/SELINUX=disabled/g" /etc/selinux/config')
os.system('getenforce 0')
os.system('service iptables stop')
os.system('service firewalld stop')
os.system('yum install -y epel-release')
def yumsub():
os.system("yum -y install wget libtool expat-devel pcre-devel zlib-devel openssl openssl-devel pcre")
os.system("yum -y install gcc gcc-c++ glibc automake autoconf libtool make")
os.system("yum -y install libmcrypt-devel mhash-devel libxslt-devel")
os.system("yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel")
os.system("yum -y install zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel")
os.system("yum -y install ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel")
os.system("yum -y install krb5 krb5-devel libidn libidn-devel openssl openssl-devel")
def inspcre():
os.chdir('/data')
os.system('wget http://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz -O pcre-8.39.tar.gz --no-check-certificate')
os.system('tar -zxvf pcre-8.39.tar.gz')
os.chdir('/data/pcre-8.39')
os.system('./configure')
os.system('make&&make install')
def inszlib():
os.chdir('/data')
os.system('wget http://zlib.net/zlib-1.2.11.tar.gz')
os.system('tar -zxvf zlib-1.2.11.tar.gz')
os.chdir('/data/zlib-1.2.11')
os.system('./configure&&make&&make install')
def insopenssl():
os.chdir('/data')
os.system('wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz')
os.system('tar -zxvf openssl-1.1.0b.tar.gz')
os.chdir('/data/openssl-1.1.0b')
os.system('./config&&make&&make install')
def insnginx():
os.chdir('/data')
os.system('wget http://nginx.org/download/nginx-1.10.2.tar.gz')
os.system('tar -zxvf nginx-1.10.2.tar.gz')
os.chdir('/data/nginx-1.10.2')
os.system('groupadd -r nginx')
os.system('useradd -r -g nginx nginx')
os.system("""
./configure
--prefix=/data/nginx
--sbin-path=/data/nginx/sbin/nginx
--conf-path=/data/nginx/nginx.conf
--pid-path=/data/nginx/nginx.pid
--user=nginx
--group=nginx
--with-http_ssl_module
--with-http_flv_module
--with-http_mp4_module
--with-http_stub_status_module
--with-http_gzip_static_module
--http-client-body-temp-path=/var/tmp/nginx/client/
--http-proxy-temp-path=/var/tmp/nginx/proxy/
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
--http-scgi-temp-path=/var/tmp/nginx/scgi
--with-pcre=/data/pcre-8.39
--with-zlib=/data/zlib-1.2.11
--with-openssl=/data/openssl-1.1.0b
""")
os.system('make && make install')
os.system('mkdir -p /var/tmp/nginx/client')
os.system('/data/nginx/sbin/nginx')
def insmysql():
os.chdir('/data')
os.system('wget http://ftp.kaist.ac.kr/mysql/Downloads/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz')
os.system('tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz')
os.system('mkdir -p /data/mysql/logs /data/mysql/data')
os.system('mv mysql-5.6.40-linux-glibc2.12-x86_64/* /data/mysql/')
os.system('useradd -s /sbin/nologin -M mysql')
os.system('chown -R mysql.mysql /data/mysql/')
os.system('chown -R mysql.mysql /var/lib/mysql/')
os.chdir('/data/mysql')
with open(r'/etc/my.cnf','w') as fileobject:
fileobject.write("""
[mysqld]
\nbasedir = /data/mysql
\ndatadir = /data/mysql/data
\ntmpdir = /data/mysql
\nsocket = /data/mysql/mysql.sock
\nskip-external-locking
\nskip-name-resolve
\nlower_case_table_names=1
\nauto_increment_offset = 1
\nauto_increment_increment = 2
\n#server-id
\n########## binlog ##########
\nlog_bin = /data/mysql/logs/mysql-bin
\nbinlog_format = row
\nbinlog_cache_size = 2M
\nexpire-logs-days = 7
\n########## error log ##########
\nlog_error = /data/mysql/logs/mysql-error.log
\n########## slow log ##########
\nslow_query_log = 1
\nslow_query_log_file = /data/mysql/logs/mysql-slow.log
\nlong_query_time = 5
\n########## per_thread_buffers ##########
\nmax_connections = 1024
\nmax_connect_errors = 1000
\nkey_buffer_size = 64M
\nmax_allowed_packet = 128M
\ntable_open_cache = 6144
\ntable_definition_cache = 4096
\nsort_buffer_size = 512K
\nread_buffer_size = 512K
\njoin_buffer_size = 512K
\ntmp_table_size = 64M
\nmax_heap_table_size = 64M
\nthread_cache_size = 64
\nthread_concurrency = 32
\nbulk_insert_buffer_size = 64M
\n########innodb########
\ninnodb_buffer_pool_size = 1G
\ninnodb_log_file_size = 500M
\ninnodb_log_buffer_size = 64M
\ninnodb_flush_log_at_trx_commit = 2
\ninnodb_file_per_table = 1
\ninnodb_file_io_threads = 4
\ninnodb_flush_method = O_DIRECT
\ninnodb_thread_concurrency = 0
\ninnodb_additional_mem_pool_size = 16M
\n[mysqlhotcopy]
\ninteractive-timeout
\n[mysqld_safe]
\nopen_files_limit = 65535
\n[client]
\nsocket = /data/mysql/mysql.sock
\n[mysql]
\nsocket = /data/mysql/mysql.sock
""")
os.chdir('/data/mysql')
os.system('./scripts/mysql_install_db --basedir=/data/mysql/ --datadir=/data/mysql/data/ --user=mysql')
os.system('sed -i "s#/data/mysql#/data/mysql#g" /data/mysql/bin/mysqld_safe')
os.system('/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql &')
os.system('cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld')
os.system('/data/mysql/bin/mysqladmin -h 127.0.0.1 -u root password mysqldb')
def insphp():
os.chdir('/data')
os.system('yum -y install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel gd-devel curl-devel openssl-devel libxslt-devel* php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel libevent libevent-devel libxml2 libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel')
os.system('wget http://au1.php.net/get/php-5.6.30.tar.gz/from/this/mirror -O php-5.6.30.tar.gz')
os.system('tar zxvf php-5.6.30.tar.gz')
os.chdir('/data/php-5.6.30')
os.system("""
./configure
--prefix=/data/php
--with-config-file-path=/data/php/etc
--enable-inline-optimization
--enable-fpm
--with-mysql=/data/mysql
--with-mysqli=/data/mysql/bin/mysql_config
--with-pdo-mysql=/data/mysql
--with-gettext
--enable-mbstring
--with-iconv=/data/libiconv
--with-mcrypt
--with-mhash
--enable-bcmath
--enable-soap
--with-libxml-dir
--enable-sockets
--with-curl
--with-zlib
--enable-zip
--with-bz2
--with-gd
--with-freetype-dir
--with-jpeg-dir
--with-iconv
--with-png-dir
""")
os.system('make&&make install')
os.system('cp php.ini-production /data/php/etc/php.ini')
def inszabbix():
os.chdir('/data')
os.system('wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.1/zabbix-3.2.1.tar.gz')
os.system('yum install -y net-snmp-devel')
os.system('tar zxvf zabbix-3.2.1.tar.gz')
os.chdir('/data/zabbix-3.2.1')
os.system('./configure --prefix=/data/zabbix --enable-server --enable-agent --with-mysql=/data/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2&&make&&make install')
def mysqlzabbix():
os.system('/data/mysql/bin/mysql -h127.0.0.1 -uroot -pmysqldb -e "create database zabbix"')
os.system('/data/mysql/bin/mysql -h127.0.0.1 -uroot -pmysqldb -e "grant all on zabbix.* to 'zabbixuser'@'%' identified by 'mysqldb'"')
os.system('/data/mysql/bin/mysql -h127.0.0.1 -uroot -pmysqldb -e "flush privileges"')
os.system('sed -i "1i\use zabbix;" /data/zabbix-3.2.1/database/mysql/schema.sql')
os.system('sed -i "1i\use zabbix;" /data/zabbix-3.2.1/database/mysql/images.sql')
os.system('sed -i "1i\use zabbix;" /data/zabbix-3.2.1/database/mysql/data.sql')
os.system('/data/mysql/bin/mysql -h127.0.0.1 -uroot -pmysqldb -e "source /data/zabbix-3.2.1/database/mysql/schema.sql"')
os.system('/data/mysql/bin/mysql -h127.0.0.1 -uroot -pmysqldb -e "source /data/zabbix-3.2.1/database/mysql/images.sql"')
os.system('/data/mysql/bin/mysql -h127.0.0.1 -uroot -pmysqldb -e "source /data/zabbix-3.2.1/database/mysql/data.sql"')
def zabbixconf():
os.system('echo "LogFile=/data/zabbix/logs/zabbix_server.log">>/data/zabbix/etc/zabbix_server.conf')
os.system('echo "DBHost=127.0.0.1">>/data/zabbix/etc/zabbix_server.conf')
os.system('echo "DBName=zabbix">>/data/zabbix/etc/zabbix_server.conf')
os.system('echo "DBUser=zabbixuser">>/data/zabbix/etc/zabbix_server.conf')
os.system('echo "DBPassword=mysqldb">>/data/zabbix/etc/zabbix_server.conf')
os.system('echo "LogSlowQueries=3000">>/data/zabbix/etc/zabbix_server.conf')
os.system('cp /data/zabbix-3.2.1/misc/init.d/fedora/core/* /etc/init.d/')
os.system('chmod +x /etc/init.d/zabbix_server')
os.system('chmod +x /etc/init.d/zabbix_agentd')
os.system('sed -i "s#BASEDIR=/data#BASEDIR=/data/zabbix#g" /etc/init.d/zabbix_agentd')
os.system('sed -i "s#BASEDIR=/data#BASEDIR=/data/zabbix#g" /etc/init.d/zabbix_server')
os.system('useradd -s /sbin/nologin -M zabbix')
os.system('mkdir /data/zabbix/logs')
os.system('chown -R zabbix.zabbix /data/zabbix/')
os.system('/etc/init.d/zabbix_agentd start')
os.system('/etc/init.d/zabbix_server start')
os.system('sed -i "s#;date.timezone =#date.timezone = Asia/Shanghai#g" /data/php/etc/php.ini')
os.system('sed -i "s#post_max_size = 8M#post_max_size = 16M#g" /data/php/etc/php.ini')
os.system('sed -i "s#max_execution_time = 30#max_execution_time = 300#g" /data/php/etc/php.ini')
os.system('sed -i "s#max_input_time = 60#max_input_time = 300#g" /data/php/etc/php.ini')
os.system('sed -i "s#;always_populate_raw_post_data = -1#always_populate_raw_post_data = -1#g" /data/php/etc/php.ini')
def get_host_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
def nginx():
os.system('mkdir -p /var/log/nginx')
os.system('touch /var/log/nginx/error.log')
with open(r'/data/nginx/nginx.conf','w') as fileobject:
fileobject.write("""
\nuser www www;
\npid /data/nginx/nginx.pid;
\nworker_processes auto;
\nworker_rlimit_nofile 100000;
\nevents
\n {
\n use epoll;
\n multi_accept on;
\n worker_connections 51200;
\n }
\nhttp {
\nserver_tokens off;
\nsendfile on;
\ntcp_nopush on;
\ntcp_nodelay on;
\naccess_log off;
\nerror_log /var/log/nginx/error.log crit;
\nkeepalive_timeout 10;
\nclient_header_timeout 10;
\nclient_body_timeout 10;
\nreset_timedout_connection on;
\nsend_timeout 10;
\nlimit_conn_zone binary_remote_addr zone=addr:5m; \nlimit_conn addr 100; \ninclude /data/nginx/mime.types; \ndefault_type text/html; \ncharset UTF-8; \ngzip on; \ngzip_disable "msie6"; \ngzip_proxied any; \ngzip_min_length 1000; \ngzip_comp_level 6; \ngzip_disable <93>MSIE [1-6].(?!.*SV1)<94>; \nopen_file_cache max=100000 inactive=20s; \nopen_file_cache_valid 30s; \nopen_file_cache_min_uses 2; \nopen_file_cache_errors on; \ninclude /data/nginx/conf.d/*.conf; \nserver \n{ \n listen 9001; \n location ~ /nginx_status { \n stub_status on; \n access_log off; \n allow all; \n } \n} \nserver \n{ \n listen 80; \n server_name zabbix.com; """+"server_name "+get_host_ip()+";"+""" \n root /data/nginx/html; \n location /zabbix{ \n index index.php index.html index.htm; \n } \n location ~ \.php {
\n include fastcgi_params;
\n fastcgi_pass 127.0.0.1:9000;
\n fastcgi_index index.php;
\n fastcgi_param SCRIPT_FILENAME /data/nginx/htmlfastcgi_script_name; \n } \n } \n } """) def run(): os.chdir('/data/php/etc') os.system('cp php-fpm.conf.default php-fpm.conf') os.chdir('/data/zabbix-3.2.1') os.system('cp -ra frontends/php/ /data/nginx/html/zabbix') os.system('useradd -s /sbin/nologin -M www') os.system('chown www.www /var/log/nginx/error.log') os.system('chown -R www.www /data/nginx/html/zabbix') os.system('touch /data/nginx/html/zabbix/conf/zabbix.conf.php') with open(r'/data/nginx/html/zabbix/conf/zabbix.conf.php','w') as fileobject: fileobject.write(""" \n<?php \n// Zabbix GUI configuration file. \nglobalDB;
\n
\nDB['TYPE'] = 'MYSQL'; \nDB['SERVER'] = '127.0.0.1';
\nDB['PORT'] = '0'; \nDB['DATABASE'] = 'zabbix';
\nDB['USER'] = 'zabbixuser'; \nDB['PASSWORD'] = 'mysqldb';
\n
\n// Schema name. Used for IBM DB2 and PostgreSQL.
\nDB['SCHEMA'] = ''; \n \nZBX_SERVER = 'localhost';
\nZBX_SERVER_PORT = '10051'; \nZBX_SERVER_NAME = 'zabbixserver';
\n
\n$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
""")
os.system('chown -R zabbix.zabbix /data/nginx/html/zabbix/conf')
os.system('/data/php/sbin/php-fpm')
os.system('/data/nginx/sbin/nginx')
os.chdir('/data/nginx/sbin')
os.system('./nginx -s reload')
os.chdir('/data/nginx/html/')
os.system('wget https://www.zabbix.com/downloads/3.2.0/zabbix_agents_3.2.0.linux2_6_23.amd64.tar.gz')
os.system('wget https://www.zabbix.com/downloads/3.2.0/zabbix_agents_3.2.0.win.zip')
sto()
yumsub()
inspcre()
inszlib()
insopenssl()
insnginx()
insmysql()
insphp()
inszabbix()
mysqlzabbix()
zabbixconf()
nginx()
run()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市邀摆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖蚜厉,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魂迄,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)橱健,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沙廉,“玉大人拘荡,你說我怎么就攤上這事∏肆辏” “怎么了珊皿?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長巨税。 經(jīng)常有香客問我蟋定,道長,這世上最難降的妖魔是什么草添? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任驶兜,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抄淑。我一直安慰自己犀盟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布蝇狼。 她就那樣靜靜地躺著,像睡著了一般倡怎。 火紅的嫁衣襯著肌膚如雪迅耘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天监署,我揣著相機(jī)與錄音颤专,去河邊找鬼。 笑死钠乏,一個(gè)胖子當(dāng)著我的面吹牛栖秕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晓避,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼簇捍,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了俏拱?” 一聲冷哼從身側(cè)響起暑塑,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躺孝,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡先壕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绎巨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逢捺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情味廊,我是刑警寧澤蒸甜,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站余佛,受9級(jí)特大地震影響柠新,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辉巡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一恨憎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦憔恳、人聲如沸瓤荔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽输硝。三九已至,卻和暖如春程梦,著一層夾襖步出監(jiān)牢的瞬間点把,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工屿附, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留郎逃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓挺份,卻偏偏與公主長得像褒翰,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匀泊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容