乌班图配置mysql Java_从零开始的告警平台(1)

本文介绍了如何在乌班图系统上配置MySQL,安装Django,以及利用Nginx和uwsgi搭建告警平台的基础环境。详细步骤包括创建数据库,安装Python环境,设置Django项目,配置uwsgi和Nginx,最后实现简单功能验证。
摘要由CSDN通过智能技术生成

一:平台的主要工作流程

消息源==>数据接收==>数据处理==>存入数据库并推送至用户

以存入数据库的数据为基础,可以开发多种功能,比如周报统计,自动化处理故障,历史告警记录……等等

二:前期准备

首先,我们需要配置基础环境,需要安装数据库,web框架,web服务,开发环境,以及告警消息来源。

在这里选择使用MySQL+Nginx+Django+Uwsgi+Python3+Zabbix,系统镜像为centos8,以下安装教程7同样适用,dnf不可用改为yum也行 乌班图用apt-get

1:首先安装MySQL,配置用户和库

dnf install @mysql

systemctl enable --now mysqld 启动并设置开机自启

systemctl status mysqld 查看是否运行

create database zabbix character set utf8 collate utf8_bin; 创建zabbix所用的库,后续会用到

create user zabbix@localhost identified by 'password'; 创建zabbix的数据库用户

grant all privileges on zabbix.* to zabbix@localhost;  将zabbix库的权限给zabbix用户

create database django character set utf8 collate utf8_bin;创建django用的库

create user django@localhost identified by 'password';创建django的数据库用户

grant all privileges on django.* to django@localhost;将django库的权限给django用户

2:接着安装python3,django框架,开发库,uwsgi

dnf install python3 -y

pip3 install Django -i https://pypi.tuna.tsinghua.edu.cn/simple

pip3 install pymysql

dnf install python3-devel -y

dnf install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel -y

dnf install -y gcc pcre-devel openssl-devel

pip3 install uwsgi

注意检查pymysql等开发包的安装路径,可以通过--target 参数指定安装路径

3:安装zabbix-server agent web全套,按照官网操作一步步往下走即可,在这里顺便装好了Nginx

rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm

dnf clean all

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbixzcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

修改zabbix_server.conf中的DBPassword=”你的密码“

取消ngxin配置文件中zabbix.conf中

# listen 80;

# server_name example.com;

前的注释(此处为安全起见,如果服务器位于公网环境,建议将80端口改为其他空闲端口,如9527,6666等)

systemctl start zabbix-server zabbix-agent nginx php-fpm 启动服务

systemctl enable zabbix-server zabbix-agent nginx php-fpmsystemctl start zabbix-server zabbix-agent nginx php-fpm  设为开机启动

然后上网页进行一些基本配置

1e82411bd9f59a29105556286821f8c8.png这样就算配置好zabbix-web了

到此为止,前期的基础环境搭建算是完成了

以上服务建议将告警用的django数据库和zabbixserver所用的数据库分开放在不同的机器上以提高性能和风险抗性。理想状态是django,zabbix,以及前两者所用的数据库分别放在不同的服务器上并做高可用配置。

三:万事第一步,新建文件夹

1.创建项目

让我们切换到 /opt目录下 输入 django-admin startproject Alarmstation

这个命令就是用django-admin创建项目Alarmstation

本质是调用django-admin.py这个文件,如果环境变量安装的时候没写,找到这个文件直接执行文件也是一个效果 就像这样:

/usr/local/bin/django-admin.py startproject Alarmstation

接下来让我们看看django创建了些什么东西

.

└── Alarmstation  项目的容器。

├── Alarmstation

│   ├── asgi.py  一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。

│   ├── __init__.py  一个空文件,告诉 Python 该目录是一个 Python 包。

│   ├── settings.py  该 Django 项目的设置/配置。

│   ├── urls.py  该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。

│   └── wsgi.py  一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

└── manage.py  一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

2.uwsgi的基本配置

在Alarmstation项目根目录下创建uwsgi.ini文件

内容如下:

[uwsgi]

socket = 127.0.0.1:6666

master = true         //主进程

#vhost = true          //多站模式 只作为报警平台可以不需要

#no-site = true        //多站模式时不设置入口模块和文件 只作为报警平台可以不需要

workers = 2           //子进程数

reload-mercy = 10

vacuum = true         //退出、重启时清理文件

max-requests = 1000

limit-as = 512

buffer-size = 30000

pidfile = /var/run/uwsgi.pid    //pid文件,用于下面的脚本启动、停止该进程

daemonize = /opt/Alarmstation/uwsgi.log

pythonpath = /usr/local/lib/python3.6/site-packages/  //指定python的site-packages路径,之前的开发包和库都必须安装到这个路径下,如果安装到其他路径了,就卸载,然后用target参数指定为这个路径

3.nginx中新增关于django的部分

新增配置如下

server {

listen       8080;

server_name  localhost;

location / {

include  uwsgi_params;

uwsgi_pass  127.0.0.1:6666;              //必须和uwsgi中的设置一致

uwsgi_param UWSGI_SCRIPT Alarmstation.wsgi;  //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录

uwsgi_param UWSGI_CHDIR /opt/Alarmstation;       //项目根目录

index  index.html index.htm;

client_max_body_size 35m;

}

}

重启nginx

4.然后做一些简单的微调

接下来,修改settings.py这个文件

首先,将ALLOWED_HOSTS = []改为 ALLOWED_HOSTS = ["*"] 这表示允许所有ip访问

然后,还记得之前设置的django数据库用户名和密码么?

找到

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': BASE_DIR / 'db.sqlite3',

}

}

改为

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',    # 数据库引擎

'NAME': 'django', # 数据库名称

'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1

'PORT': 3306, # 端口

'USER': 'django',  # 数据库用户名

'PASSWORD': 'passwd', # 数据库密码

}

}

在改为使用mysql作为数据库后,还需要在项目的__init__.py中加两行

import pymysql

pymysql.install_as_MySQLdb()

这是为了告诉django,现在用的是mysql而非自带的数据库

然后创建一个app

django-admin startapp mainwork

django也会创建一个文件目录

── mainwork

├── admin.py

├── apps.py

├── __init__.py

├── migrations

│   └── __init__.py

├── models.py

├── __pycache__

│   ├── __init__.cpython-36.pyc

│   └── views.cpython-36.pyc

├── tests.py

└── views.py

修改settings.py  在INSTALLED_APPS 中增加刚刚创建的app名

就像这样:

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'mainwork',

]

然后修改views.py文件

写上一个简单的小程序

from django.shortcuts import render

from django.shortcuts import HttpResponse

def Get_message(request):

return HttpResponse("

Hi!

")

然后修改urls.py如下

from django.contrib import admin

from django.urls import path

from mainwork import views  //导入刚刚写的小程序 from ‘app’import 文件名

urlpatterns = [

path('admin/', admin.site.urls),

path('Get_message/', views.Get_message),  //像这样增加一条路由

]

然后启动uwsgi

uwsgi --ini uwsgi.ini    建议在脚本中使用uwsgi.ini的绝对路径

在浏览器中输入ip+端口+路径

86858b45c8e1b9b24e2f2f0ba789da24.png

现在让我们再看看项目的目录结构bf76d5423d5a0f18d10d244b8ba90667.png

就这样,我们走出了第一步,建立好了所有基础设施,可以步入下一个阶段了!

下一部分,我们将编写接收告警信息的接口api并设计一张用于存储告警数据的数据库表。

本人联系方式763097329@qq.com,如果文章有误,请联系我指出,我会尽快修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值