def _setup_database(sql_password): ''' Configure database for rsyslog ''' mysqlUtils.drop_user('rsyslogd') mysqlUtils.create_user('rsyslogd', sql_password, 'Syslog', 'INSERT') mysql_exec("\. {0}".format(get_create_db_path()), True, escape=False)
def _create_db_user(sql_password): ''' Create db user for loganalyzer. ryslogd and loganalyzer has it's own user. Note: Granting all privileges, fewer is possible. ''' mysqlUtils.drop_user('loganalyzer') mysqlUtils.create_user('loganalyzer', sql_password, 'Syslog')
def install_purge_db(): ''' Install a script that purges mysql from old rows every hour. ''' # Setup user for purge script. sql_password = generate_password(20, string.letters + string.digits) mysqlUtils.drop_user('purgelogdb') mysqlUtils.create_user('purgelogdb', sql_password, 'Syslog', 'SELECT, DELETE') # Script should be executed once every hour. fn = "/etc/cron.hourly/purge-db.sh" x("cp -f {0}var/rsyslog/purge-db.sh {1}".format(app.SYCO_PATH, fn)) x("chmod +x {0}".format(fn)) logSql = scOpen(fn) logSql.replace("${MYSQL_PASSWORD}", sql_password)
def _setup_icinga_mysql(): ''' Set up a mysql database for icinga ''' # Create and configure. Install hardened MySQL if needed. if not os.path.exists('/etc/init.d/mysqld'): install_mysql(["","1","1G"]) sqlpassword = generate_password(40,chars=string.letters+string.digits) # Create MySQL icinga user mysqlUtils.drop_user('icinga') mysqlUtils.create_user('icinga', sqlpassword, 'icinga') # Create MySQL database schema for icinga. x("mysql --user='******' --password='******' -e 'CREATE DATABASE icinga'".format("icinga",re.escape(sqlpassword))) x("mysql icinga --user='******' --password='******' < /usr/share/doc/icinga-idoutils-libdbi-mysql-{2}/db/mysql/mysql.sql".format("icinga",re.escape(sqlpassword), _get_icinga_version())) return sqlpassword
def _setup_icinga_mysql(): ''' Set up a mysql database for icinga ''' # Create and configure. Install hardened MySQL if needed. if not os.path.exists('/etc/init.d/mysqld'): install_mysql(["", "1", "1G"]) sqlpassword = generate_password(40, chars=string.letters + string.digits) # Create MySQL icinga user mysqlUtils.drop_user('icinga') mysqlUtils.create_user('icinga', sqlpassword, 'icinga') # Create MySQL database schema for icinga. x("mysql --user='******' --password='******' -e 'CREATE DATABASE icinga'".format( "icinga", re.escape(sqlpassword))) x("mysql icinga --user='******' --password='******' < /usr/share/doc/icinga-idoutils-libdbi-mysql-{2}/db/mysql/mysql.sql" .format("icinga", re.escape(sqlpassword), _get_icinga_version())) return sqlpassword