开发语言: python
web框架: django
版本:V1.2
作者:老田
Oliver运维管理系统是一款针对中小企业IT环境集中式运维管理平台,提供主机\主机组管理,网站监控,集中化运维管理可自由扩 展功能模块,安全审计及查询统计接口的运维管理系统,也是老田的处女作,水平有限,希望大家批评指正,谢谢。
- 首页图形化展示服务器分类,不同业务平台设备占比,在线与离线服务器情况及维保情况;
- 前端主机管理可添加,修改,删除主机信息,并可查看详细的主机信息;
- 前端可添加与修改主机组,向主机组添加或删除管理IP;
- 网站监控功能可添加,修改,批量删除监控站点,通过站点返回的状态码判断站点访问是否正常;
- 运维管理通过调用ansible的API接口实现日志查看,配置查看,文件分发,端口扫描等多项功能,并提供的功能模块扩展接口,可方便的进行模块扩展;
- 安全审计功能则通过审计代理将操作日志推送到数据库,前端通过读取数据库信息实现实时监视,并可追溯历史数控;
- 统计查询模块则提供了多项条件查询接口,获取满足条件的主机列表信息;
下载Oliver到本地:git clone https://github.com/oldtian/Oliver.git
安装过程略
安装过程略
升级安装python2.7.10
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar -zxf Python-2.7.10.tgz
cd Python-2.7.10
./configure
make all
make install
make clean
make distclean
查看版本
/usr/local/bin/python2.7 -V
建议软链接
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
重新验证版本
python -V
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.2.tar.gz
tar -zxf setuptools-19.2.tar.gz
cd setuptools-19.2
python setup.py install
wget https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz
tar -zxf pip-8.1.1.tar.gz
cd pip-8.1.1
python setup.py install
setenforce 0
sed -i '/^SELINUX=/{s/enforcing/disabled/}' /etc/sysconfig/selinux
sed -i '/^SELINUX=/{s/enforcing/disabled/}' /etc/selinux/config
iptables -I INPUT 4 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
pip install supervisor
pip install uwsgi
pip install ansible==1.9.4
pip install Django==1.8.3
pip install django-users2
pip install MySQL-python
pip install rpyc
建议放置在项目所在目录下
[uwsgi]
socket = /tmp/oliver.sock #nginx需要使用到的socket文件
chdir=/opt/www/oliver #切换到项目所在目录
wsgi-file = Oliver/wsgi.py #wsgi.py主程序入口,加载相应环境
touch-reload=/opt/www/oliver/reload #touch一个空白的reload文件,项目重启
processes = 2 #初始启动进程数
threads = 4
chmod-socket = 664 #socket文件的属性
chown-socket = nginx:nginx #socket文件的属主和属组
echo_supervisord_conf > /etc/supervisord.conf
在/etc/supervisord.conf末尾追加
[program:oliver] #oliver是supervisor管理的进程名
command=/usr/local/bin/uwsgi --ini /www/oliver/uwsgi.ini
directory=/www/oliver
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
supervisord -c /etc/supervisord.conf
查看/tmp/oliver.sock文件是否存在,如果不存在可先将/tmp目录下文件删除,然后再一次执行上面的命令
supervisor管理进程命令: 停止进程:
supervisorctl -c /etc/supervisord.conf stop oliver
启动进程:
supervisorctl -c /etc/supervisord.conf start oliver
重启进程:
supervisorctl -c /etc/supervisord.conf restart oliver
nginx的配置文件中添加虚拟主机配置:
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 8M;
location /media {
alias /opt/www/Oliver/media;
}
location /static {
alias /opt/www/Oliver/static;
}
location / {
uwsgi_pass unix:///tmp/oliver.sock;
include /opt/application/nginx/conf/uwsgi_params;
}
}
django仅在开发模式可加载setting.py配置中指定目录下的静态文件,在生产环境要通过nginx配置来加载静态文件,创建static和media目录。
*/5 * * * * /usr/local/bin/python /opt/www/Oliver/webapi/sniffer.py >/dev/null 2>&1
HISTSIZE=1200
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE
export HISTCONTROL=ignoredups
export HISTFILE=$HOME/.bash_history
export HISTFILESIZE=1200
export HISTTIMEFORMAT="`whoami` %F %T "
export PROMPT_COMMAND="history -a; history -c; history -r;"'/opt/www/OliverAudit/OliverAudit_agent.py $(history 1)'
shopt -s histappend
typeset -r PROMPT_COMMAND
typeset -r HISTTIMEFORMAT
在setting.py中配置STATIC_ROOT来指定搜集静态文件存放目录:
python manage.py collectstatic
每次修改静态文件内容,也需要执行一次以上命令,否则修改后的内容nginx加载不到
python manage.py makemigrations
python manage.py migrate
python OliverServer.py &
service nginx restart
supervisorctl -c /etc/supervisord.conf restart oliver