参考 部署用于生产的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端口的白名单

sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd –reload
 
cd /opt/redis-4.0.10
./src/redis-server myconf/redis.conf
本地 telnet redis服务器 6379端口 看是否成功
 
 
 
2.安装 Elasticsearch 5.6  参考链接   Elasticsearch在Centos 7上的安装与配置
安装java 1.8.0
yum install java-1.8.0-openjdk -y
安装 Elasticsearch 5.6
cd /opt/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.10.tar.gz
tar -zxvf elasticsearch-5.6.10.tar.gz
Elasticsearch 要求不能使用超级用户root运行,所以我们建立一个es账号
groupadd es          #增加es组
useradd es -g es -p pwd          #增加es用户并附加到es组
chown -R es:es elasticsearch-5.6.10         #给目录权限
su es          #使用es用户
cd /opt/elasticsearch-5.6.10/
./bin/elasticsearch -d          #后台运行es
elasticsearch 外网可访问
cd /opt/elasticsearch-5.6.10/
vim ./config/elasticsearch.yml
找到network.host: 一行,去除#号,修改为:
network.host: 0.0.0.0

默认情况下 elasticsearch需要申请2G内存,我服务器共2G, 解决办法 如下, 设置es的堆大小
ES_JAVA_OPTS="-Xms256m -Xmx256m" ./bin/elasticsearch –d
外网访问下
http://172.30.6.1:9200/?pretty
其他错误 参考下: 这篇博文
使用supervisor 来管理 redis 和elasticsearch

安装 supervisor   参考这篇博文

yum install python-setuptools -y

easy_install supervisor

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

  

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

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

新增 elasticsearch_supervisor.conf 文件

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

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

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon [Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

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

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. Python——使用Pycharm连接数据库

  2. Javascript初识之数据类型

    一.JavaScript概述 1.ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组 ...

  3. JAVA String类型和原型模式

    如上例所述,变量a,b和它们的值10,20都是存在栈里面,声明的所以String类型的引用也都是存在栈里.而字符串abc是存在字符串常量池中,new出来的String对象则是存在堆里. String ...

  4. 配置启动MySQL的Docker容器

    docker run -d -p : --name mysql -e MYSQL_ROOT_PASSWORD= mysql:

  5. BBS 502 BadGateway 原因分析

    说明: LNMP架构. crontab里有每隔20分钟重启php的任务:然后我用python写了个每1分钟检测php-cgi进程是否存在的脚本,如果不存在则调用重启php的脚本,并邮件通知管理员.cr ...

  6. 解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题

    1.选择iis根节点,点击ARR 2.选择代理设置 3.去掉reverse rewrite host in response headers的勾选,点击应用即可

  7. 老是上不了 google scholar...

    这段时间老是上不了 google scholar... 下载了最新的 host 也不行. 难道真是电脑有问题了? 网络有时也老是掉... 也好. 多休息休息. 人生难得几回清闲. 马上就要开学咯. 课 ...

  8. 33. Springboot 系列 原生方式引入Redis,非RedisTemplate

     0.pom.xml <dependency> <groupId>redis.clients</groupId> <artifactId>jedis&l ...

  9. Javaweb学习笔记——(二十四)——————图书商城项目

    图书商城          环境搭建         1.导入原型             *用户模块             *分类模块             *图书模块              ...

  10. ado.net 使用:ExecuteReader 无法获取输出参数

    解决方法: 要获取到输出参数.需要连接关闭之后才行. 一般都是用using把打开数据库连接的reader包起来