参考 部署用于生产的Exceptionlees(一个强大易用的日志收集服务)

1. 安装配置 redis 4.0  点击下载redis教学脑图

cd /opt

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

tar -zxvf redis-4.0.10.tar.gz

cd redis-4.0.10

make && make install

将默认的redis.conf (默认配置文件不要动) 拷贝到自己定义好的一个路径下,比如 myconf

cd /opt/redis-4.0.10

mkdir myconf

cp redis.conf myconf

修改 myconf文件夹下 redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动

把 bind 127.0.0.1 注释掉  proteced-mode 改为 false

防火墙放开 redis 端口默认 6379  安全问题 可以让运维控制 6379端口的白名单

  1. sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
  2. sudo firewall-cmd reload
  1.  
  1. cd /opt/redis-4.0.10
  1. ./src/redis-server myconf/redis.conf
  1. 本地 telnet redis服务器 6379端口 看是否成功
  1.  
  1.  
  1.  
  1. 2.安装 Elasticsearch 5.6 参考链接 ElasticsearchCentos 7上的安装与配置
  1. 安装java 1.8.0
  1. yum install java-1.8.0-openjdk -y
  1. 安装 Elasticsearch 5.6
  1. cd /opt/
  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.10.tar.gz
  1. tar -zxvf elasticsearch-5.6.10.tar.gz
Elasticsearch 要求不能使用超级用户root运行,所以我们建立一个es账号
  1. groupadd es          #增加es组
  1. useradd es -g es -p pwd          #增加es用户并附加到es组
  1. chown -R es:es elasticsearch-5.6.10         #给目录权限
  1. su es          #使用es用户
  1. cd /opt/elasticsearch-5.6.10/
  1. ./bin/elasticsearch -d          #后台运行es
  1. elasticsearch 外网可访问
  1. cd /opt/elasticsearch-5.6.10/
  1. vim ./config/elasticsearch.yml
  1. 找到network.host: 一行,去除#号,修改为:
  1. network.host: 0.0.0.0
  1.  
  1. 默认情况下 elasticsearch需要申请2G内存,我服务器共2G, 解决办法 如下, 设置es的堆大小
  1. ES_JAVA_OPTS="-Xms256m -Xmx256m" ./bin/elasticsearch d
  1. 外网访问下
  1. http://172.30.6.1:9200/?pretty
  1. 其他错误 参考下: 这篇博文
  1. 使用supervisor 来管理 redis elasticsearch
  2.  
  3. 安装 supervisor 参考这篇博文
  1.  
  1. yum install python-setuptools -y
  2.  
  3. easy_install supervisor
  4.  
  5. mkdir /etc/supervisor
  6.  
  7. echo_supervisord_conf > /etc/supervisor/supervisord.conf
  1.  

  

建立文件夹  mkdir /etc/supervisor/conf.d

  1. 新增 redis_supervisor.conf 文件 记得把 上文 redis 配置中的 daemonize 改回 yes
  1. [program:redis_supervisor]
  2. command=redis-server myconf/redis.conf ; 运行程序的命令
  3. directory=/opt/redis-4.0./ ; 命令执行的目录
  4. autorestart=true ; 程序意外退出是否自动重启
  5. stderr_logfile=/var/log/redis_supervisor.err.log ; 错误日志文件
  6. stdout_logfile=/var/log/redis_supervisor.out.log ; 输出日志文件
  7. user=root ; 进程执行的用户身份
  8. stopsignal=INT ; INT(类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)

新增 elasticsearch_supervisor.conf 文件

  1. [program:elasticsearch_supervisor]
  2. command=/opt/elasticsearch-5.6./bin/elasticsearch ; 运行程序的命令
  3. directory=/opt/elasticsearch-5.6./bin/ ; 命令执行的目录
  4. autorestart=true ; 程序意外退出是否自动重启
  5. stderr_logfile=/var/log/elasticsearch_supervisor.err.log ; 错误日志文件
  6. stdout_logfile=/var/log/elasticsearch_supervisor.out.log ; 输出日志文件
  7. user=es ; 进程执行的用户身份
  8. stopsignal=INT ; INT(类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)

配置 supervisor开启启动   新建一个“/usr/lib/systemd/system/supervisord.service”文件

  1. # dservice for systemd (CentOS 7.0+)
  2. # by ET-CS (https://github.com/ET-CS)
  3. [Unit]
  4. Description=Supervisor daemon
  5.  
  6. [Service]
  7. Type=forking
  8. ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
  9. ExecStop=/usr/bin/supervisorctl shutdown
  10. ExecReload=/usr/bin/supervisorctl reload
  11. KillMode=process
  12. Restart=on-failure
  13. RestartSec=42s
  14.  
  15. [Install]
  16. WantedBy=multi-user.target

使用supervisor启动时,查看日志仍然报下面的错误

  1. max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

解决办法:

切换到root用户修改vim  /etc/supervisor/supervisord.conf   改下supervisor的操作文件句柄和文件数量

3. windows下 安装 Exceptionless.4.1

  • 下载最新的 latest Exceptionless release artifact ZIP ,下载后解压
  • 在IIS中新建一个网站,路径选择Exceptionless解压目录中的wwwroot目录,端口这里可以自定义,比如用8004,应用程序池选4.0集成
  • 修改web.config中的ElasticSearchConnectionString为es的站点http://:ElasticSearchIP:9200,修改<add key="BaseURL" value="http://IIS站点绑定的IP:8004/#!" />,注意后面的"#"
  • 修改app.config.*.js中的.constant('BASE_URL', 'http://IIS站点绑定的IP:8004')    注意后面没有#
  • 打开http://IIS站点绑定的IP:8004 就能看到登录页面了,然后创建账户-->创建项目,比如创建一个控制台项目,这里就会提示怎么使用Exceptionless
  • ExceptionlessClient.Default.Startup("oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI"),这里的oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI就是api-key

开启前 要记得 把 redis, ElasticSearch 都启动

4.  net core 项目中 使用  尝试 启动项目 throw个异常 看看   , 配置到 配置文件中

5. 集成到 NLog

NuGet 安裝 NLog.Extensions.Logging 与 Exceptionless.NLog

装完之后,我们就需要为Nlog添加配置文件了。默认情况下Nlog会在根目录寻找一个叫做nlog.config的文件作为配置文件。那么我们就手动改添加一个nlog.config:

参考下 安装完Exceptionless.NLog 给的 示例文档

最终 Nlog.config文件 内容如下   记得 右键  Nlog.config 属性 改为始终复制

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
    <add assembly="Exceptionless.NLog"/>
</extensions>

  <targets async="true">
    <target xsi:type="Exceptionless" name="exceptionless" >
      <field name="host" layout="${machinename}" />
      <field name="identity" layout="${identity}" />
      <field name="windows-identity" layout="${windows-identity:userName=True:domain=False}" />
      <field name="process" layout="${processname}" />
</target>
<target xsi:type="File" name="logfile" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="exceptionless" />
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>

然后需要把Nlog集成到asp.net core

需要使用的地方

这样 日志 同时记录到 本地 file  又 记录到 elasticsearch 中了

Exceptionless 生产部署笔记的更多相关文章

  1. MongoDB 生产环境笔记

    目录 MongoDB 生产环境笔记 一.vm.zone_reclaim_mode 参数 二.添加 swap 分区 三.设置 swappiness 参数 四.内核和文件系统版本 五.禁用 Transpa ...

  2. HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

    这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...

  3. Exceptionless 本地部署踩坑记录

    仅已此文记录 Exceptionless 本地部署所遇到的问题 1.安装ElasticSearch文本 执行elasticsearch目录中的elasticsearch.bat 没有执行成功. 使用命 ...

  4. tomcat集群机制剖析及其生产部署选型

    为什么要使用集群? 为什么要使用集群?主要有两方面原因:一是对于一些核心系统要求长期不能中断服务,为了提供高可用性我们需要由多台机器组成的集群:另外一方面,随着访问量越来越大且业务逻辑越来越复杂,单台 ...

  5. RocketMQ 简单梳理 及 集群部署笔记【转】

    一.RocketMQ 基础知识介绍Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...

  6. Nextcloud私有云盘在Centos7下的部署笔记

    搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.初一看觉得“口气”不小,刚推出来就重新“定义”了Clo ...

  7. Spark集群基于Zookeeper的HA搭建部署笔记(转)

    原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...

  8. 【Zookeeper】Zookeeper部署笔记

    Zookeeper部署笔记 .上传zk安装包 .解压 .配置(先在一台节点上配置) .1添加一个zoo.cfg配置文件 $ZOOKEEPER/conf mv zoo_sample.cfg zoo.cf ...

  9. MySQL 8 InnoDB 集群生产部署

    生产部署InnoDB集群 1.先决条件 InnoDB集群使用组复制技术,所以InnoDB中的实例需要满足组复制要求.可以查看MySQL文档中组复制相关的部分,也可以通过AdminAPI提供的dba.c ...

随机推荐

  1. MySQL系列:性能优化

    1. 优化简介 MySQL性能优化包括:查询优化.数据库结构优化.MySQL服务器优化等. 2. 查询优化 2.1 分析查询语句 MySQL提供EXPLAIN和DESCRIBE,用来分析查询语句. E ...

  2. 近期学习docker遇到的一些问题

    最近看某谷的springboot视频,看到了docker部分,在实践过程中遇到了一些问题 默认国外镜像,下载软件很慢 linux内核版本过低,与docker运行不匹配 这里记录一下解决方案 第一个问题 ...

  3. Monkey参数介绍

    monkey 参数 参数分类 常规类参数 事件类参数 约束类参数 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将日志分为三个级别 ...

  4. js基础-字符串常用属性合集

    /*   *   * 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法   * 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调 ...

  5. RBAC权限管理系统

    RBAC--基于角色的权限管理系统 优势: 1. 简化了用户和权限的关系 2. 易扩展,易于维护 3. RBAC不用给用户单个分配权限,只用指向对应的角色就会有对应的权限,而且分配权限和收回权限都很方 ...

  6. Java反射、反射练习整理

    反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...

  7. nginx的信号量

    一.官方文档 https://www.nginx.com/resources/wiki/start/topics/tutorials/commandline/ 二.nginx进程说明 一般在nginx ...

  8. 基于ionic4、cordova搭建android开发环境

    前颜(yan)最近公司有一个项目需求是利用h5进行跨平台开发,这里所说的跨平台开发指的是:将h5代码利用某种方式或工具环境进行打包,最后生成android的apk以及ios的ipa. 本文只讲解and ...

  9. SpringBoot入门-2(两种热部署方式)

    在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢?那就是spr ...

  10. 第十四节: EF的三种模式(四) 之 原生正宗的 CodeFirst模式的默认约定

    一. 简介 1. 正宗的CodeFirst模式是不含有edmx模型,需要手动创建实体.创建EF上下文,然后生成通过代码来自动映射生成数据库. 2. 旨在:忘记SQL.忘记数据库. 3. 三类配置:On ...