config.pm 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package Rstat::config;
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. use strict;
  6. use English;
  7. use FindBin '$Bin';
  8. use lib "$Bin";
  9. use base 'Exporter';
  10. use vars qw(@EXPORT @ISA);
  11. use Config::Tiny;
  12. use File::Basename;
  13. use Data::Dumper;
  14. @ISA = qw(Exporter);
  15. @EXPORT = qw(
  16. $HOME_DIR
  17. @FN
  18. $MY_NAME
  19. $SPID
  20. $LOG_DIR
  21. $LOG_COMMON
  22. $LOG
  23. $LOG_ERR
  24. $LOG_DEBUG
  25. $DHCPD_CONF
  26. $BEGIN_STR
  27. $END_STR
  28. $WARN_MSG
  29. $WAIT_TIME
  30. $MIN_SLEEP
  31. $MAX_SLEEP
  32. $admin_email
  33. $sender_email
  34. $send_email
  35. $HOSTNAME
  36. $debug
  37. $log_enable
  38. $log_level
  39. $W_INFO
  40. $W_ERROR
  41. $W_DEBUG
  42. $DBHOST
  43. $TRAF_HOST
  44. $DBNAME
  45. $DBUSER
  46. $DBPASS
  47. $domain_auth
  48. $winexe
  49. $fping
  50. $log_owner_user
  51. $log_owner_group
  52. $sw_login
  53. $sw_password
  54. $use_smsd
  55. $smsaero_wait
  56. $smsd_group
  57. $smsd_user
  58. $kannel_base_url
  59. $kannel_dlr_url
  60. $kannel_login
  61. $kannel_password
  62. $kannel_spool
  63. $smsaero_base_url
  64. $smsaero_login
  65. $smsaero_md5pass
  66. $sms_spool_dir
  67. $sms_from
  68. $smsaero_digital
  69. $smsaero_type
  70. $smsd_spool_dir
  71. $def_timeout
  72. $parallel_process_count
  73. $save_detail
  74. $add_unknown_user
  75. $router_ip
  76. $dns_server
  77. $dhcp_server
  78. $snmp_default_version
  79. $snmp_default_community
  80. $KB
  81. $office_networks
  82. $hotspot_networks
  83. $all_networks
  84. @office_network_list
  85. @hotspot_network_list
  86. @all_network_list
  87. $dhcp_pool
  88. $mac_discovery
  89. $arp_discovery
  90. $default_user_id
  91. $hotspot_user_id
  92. $history
  93. $history_dhcp
  94. $router_login
  95. $router_password
  96. $router_port
  97. $org_name
  98. $domain_name
  99. $connections_history
  100. $auth_clear
  101. $dbh
  102. $urgent_sync
  103. $ignore_hotspot_dhcp_log
  104. $ignore_update_dhcp_event
  105. $update_hostname_from_dhcp
  106. @subnets
  107. %subnets_ref
  108. $history_log_day
  109. $history_syslog_day
  110. $history_trafstat_day
  111. $free_networks
  112. $vpn_networks
  113. @free_network_list
  114. @vpn_network_list
  115. %config_ref
  116. $last_refresh_config
  117. );
  118. BEGIN
  119. {
  120. our $HOME_DIR = dirname($0);
  121. my $config_file = $HOME_DIR."/cfg/config";
  122. if (! -e "$config_file") { die "Config $config_file not found!"; }
  123. my $Config = Config::Tiny->new;
  124. $Config = Config::Tiny->read($config_file, 'utf8' );
  125. #print Dumper($Config);
  126. our %config_ref;
  127. ### current script pathname
  128. our @FN=split("/",$0);
  129. ### script pid file name
  130. $config_ref{my_name}=$FN[-1];
  131. $config_ref{pid_file}="/var/run/".$FN[-1];
  132. $config_ref{log_dir}=$Config->{_}->{log_dir} || '/var/log/scripts';
  133. $config_ref{log_common}=$config_ref{log_dir}."/$FN[-1].log";
  134. $config_ref{dhcpd_conf}=$Config->{_}->{dhcpd_conf} || "/etc/dnsmasq.d";
  135. $config_ref{DBHOST} = $Config->{_}->{DBSERVER} || '127.0.0.1';
  136. $config_ref{TRAF_HOST} = $Config->{_}->{TRAF_HOST} || '127.0.0.1';
  137. $config_ref{DBNAME} = $Config->{_}->{DBNAME} || "stat";
  138. $config_ref{DBUSER} = $Config->{_}->{DBUSER} || "rstat";
  139. $config_ref{DBPASS} = $Config->{_}->{DBPASS} || "rstat";
  140. $config_ref{domain_auth}= $Config->{_}->{domain_auth} || 'Administrator%password';
  141. $config_ref{winexe} = $Config->{_}->{winexe} || '/usr/bin/winexe';
  142. $config_ref{fping} = $Config->{_}->{fping} || '/sbin/fping';
  143. $config_ref{log_owner_user}= $Config->{_}->{user} || 'nagios';
  144. $config_ref{log_owner_group}= $Config->{_}->{group} || 'nagios';
  145. $config_ref{sw_login}=$Config->{_}->{sw_login} || 'admin';
  146. $config_ref{sw_password}=$Config->{_}->{sw_password} || 'admin';
  147. our $MY_NAME=$FN[-1];
  148. our $SPID="/var/run/".$FN[-1];
  149. #iptables log
  150. our $LOG_DIR = $Config->{_}->{log_dir} || '/var/log/scripts';
  151. our $LOG_COMMON = "$LOG_DIR/$FN[-1].log";
  152. our $LOG = $LOG_COMMON;
  153. our $LOG_ERR = $LOG_COMMON;
  154. our $LOG_DEBUG = $LOG_COMMON;
  155. our $DHCPD_CONF = $Config->{_}->{dhcpd_conf} || "/etc/dnsmasq.d";
  156. our $BEGIN_STR ="================= Start transaction ========================";
  157. our $END_STR ="================= Stop transaction ========================";
  158. our $WARN_MSG ="# DYNAMIC GENERATED FILE\n# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN\n";
  159. ### timeout for wait remove lock before exit
  160. our $WAIT_TIME =600;
  161. our $MIN_SLEEP =5;
  162. our $MAX_SLEEP =30;
  163. ### mail options
  164. our $admin_email;
  165. our $sender_email;
  166. our $send_email = 0;
  167. my $HOSTNAME1=`hostname`;
  168. chomp($HOSTNAME1);
  169. our $HOSTNAME=$HOSTNAME1;
  170. ### debug
  171. our $debug=1;
  172. our $log_enable = 1;
  173. our $log_level = 2;
  174. our $W_INFO = 0;
  175. our $W_ERROR = 1;
  176. our $W_DEBUG = 2;
  177. our $DBHOST = $Config->{_}->{DBSERVER} || '127.0.0.1';
  178. our $TRAF_HOST = $Config->{_}->{TRAF_HOST} || '127.0.0.1';
  179. our $DBNAME = $Config->{_}->{DBNAME} || "stat";
  180. our $DBUSER = $Config->{_}->{DBUSER} || "rstat";
  181. our $DBPASS = $Config->{_}->{DBPASS} || "rstat";
  182. our $domain_auth = $Config->{_}->{domain_auth} || 'Administrator%password';
  183. our $winexe = $Config->{_}->{winexe} || '/usr/bin/winexe';
  184. our $fping = $Config->{_}->{fping} || '/sbin/fping';
  185. our @subnets=();
  186. our $history_log_day;
  187. our $history_syslog_day;
  188. our $history_trafstat_day;
  189. our $log_owner_user = $Config->{_}->{user} || 'nagios';
  190. our $log_owner_group = $Config->{_}->{group} || 'nagios';
  191. ############### Switch Access ##############
  192. our $sw_login=$Config->{_}->{sw_login} || 'admin';
  193. our $sw_password=$Config->{_}->{sw_password} || 'admin';
  194. ################################################################
  195. our $def_timeout = 90;
  196. our $parallel_process_count = 10;
  197. ################## DB options ##################################
  198. our $save_detail;
  199. our $add_unknown_user;
  200. our $router_ip;
  201. our $dns_server;
  202. our $dhcp_server;
  203. our $snmp_default_version;
  204. our $snmp_default_community;
  205. our $KB;
  206. our $office_networks;
  207. our $hotspot_networks;
  208. our $all_networks;
  209. our @office_network_list;
  210. our @hotspot_network_list;
  211. our @all_network_list;
  212. our $free_networks;
  213. our $vpn_networks;
  214. our @free_network_list;
  215. our @vpn_network_list;
  216. our $dhcp_pool;
  217. our $mac_discovery;
  218. our $arp_discovery;
  219. our $default_user_id;
  220. our $hotspot_user_id;
  221. our $history;
  222. our $history_dhcp;
  223. our $router_login;
  224. our $router_password;
  225. our $router_port;
  226. our $org_name;
  227. our $domain_name;
  228. our $connections_history;
  229. our $auth_clear;
  230. our $dbh;
  231. our $urgent_sync = 0;
  232. our $last_refresh_config = time();
  233. mkdir $LOG_DIR unless (-d $LOG_DIR);
  234. 1;
  235. }